Skip to content

Adding ARM builds (2nd round) #4457

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 19 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,53 @@
Arduino IDE for ARM
===================

![Header](header.png)

This repository contains patches and precompiled binaries of the Arduino IDE for ARM.
The binaries were compiled on a raspberry pi or an x64 linux machine via cross compilation.

Compatible Devices
==================

Tested devices are:

* Raspberry Pi2
* [Open a ticket if your device works](https://github.com/NicoHood/Arduino/issues)

Download + Installation
=======================

Please refere to the [releases page](https://github.com/NicoHood/Arduino/releases)
to get the latest working IDE. I will try to tag each version that compiles fine for me.
**The current git state might not work, please refere to the tags of the releases!**

To install the software just extract the package with `tar -xf arduino-1.x.x.tar.xz`.
You can also run the `install.sh` script to install the IDE on your ARM device.

Special Thanks
==============

The Arduino IDE for ARM would not be possible with a lot of work from other people.
In this section I want to give credit for them and provide some additional resources.
Thanks a lot for all the help and work you've done!

* https://github.com/arduino/Arduino/pull/4457
* https://github.com/arduino/Arduino/pull/3549
* https://github.com/ShorTie8/Arduino_IDE
* https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=92662

[Contact me.](http://www.NicoHood.de)

Changelog
=========

```
1.6.8-rc1 Release (29.01.2015)
* Release of the first working Arduino IDE compilation
* Last upstream commit was: fa0d5808462a435c7178121585f90668223e017d
* libserials is actually version 1.0.7 not 1.0.5
```

Arduino
========

Expand Down
1 change: 1 addition & 0 deletions build/arduino-builder-arm-1.3.10.tar.bz2.sha
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
afadb12e74f62bb5506e27a97ed34009ed55486d
79 changes: 77 additions & 2 deletions build/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,34 @@
<condition property="platform" value="windows"><os family="windows" /></condition>
<condition property="platform" value="linux32"><os family="unix" arch="i386" /></condition>
<condition property="platform" value="linux64"><os family="unix" arch="amd64" /></condition>
<condition property="platform" value="arm"><os family="unix" arch="arm" /></condition>

<condition property="macosx"><equals arg1="${platform}" arg2="macosx" /></condition>
<condition property="windows"><equals arg1="${platform}" arg2="windows" /></condition>
<condition property="linux32"><equals arg1="${platform}" arg2="linux32" /></condition>
<condition property="linux64"><equals arg1="${platform}" arg2="linux64" /></condition>
<condition property="linux"><equals arg1="${platform}" arg2="linux32" /></condition>
<condition property="linux"><equals arg1="${platform}" arg2="linux64" /></condition>
<condition property="linux"><equals arg1="${platform}" arg2="arm" /></condition>

<condition property="staging_folder" value="macosx"><equals arg1="${platform}" arg2="macosx" /></condition>
<condition property="staging_folder" value="windows"><equals arg1="${platform}" arg2="windows" /></condition>
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linux32" /></condition>
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="linux64" /></condition>
<condition property="staging_folder" value="linux"><equals arg1="${platform}" arg2="arm" /></condition>

<condition property="staging_hardware_folder" value="Arduino.app/Contents/Java/hardware"><equals arg1="${platform}" arg2="macosx" /></condition>
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="windows" /></condition>
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linux32" /></condition>
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="linux64" /></condition>
<condition property="staging_hardware_folder" value="hardware"><equals arg1="${platform}" arg2="arm" /></condition>

<condition property="arch-bits" value="32">
<equals arg1="${platform}" arg2="linux32"/>
</condition>
<condition property="arch-bits" value="32">
<equals arg1="${platform}" arg2="arm"/>
</condition>
<condition property="arch-bits" value="64">
<equals arg1="${platform}" arg2="linux64"/>
</condition>
Expand Down Expand Up @@ -582,7 +589,9 @@
<fileset dir="linux/work" includes="arduino" />
<fileset dir="linux/work" includes="**/*.sh" />
</chmod>
</target>

<target name="linux-libastyle-x86" depends="linux-build" description="Download libastyle.so for x86/x64 arch">
<antcall target="unzip">
<param name="archive_file" value="./libastylej-2.05.1.zip" />
<param name="archive_url" value="http://downloads.arduino.cc/libastylej-2.05.1.zip" />
Expand All @@ -607,7 +616,64 @@

</target>

<target name="linux32-build" depends="linux-build" description="Build linux (32-bit) version">
<target name="linux-libastyle-arm" depends="linux-build" description="Download libastyle.so for ARM">
<antcall target="unzip">
<param name="archive_file" value="./libastylej-2.05.1.zip" />
<param name="archive_url" value="http://downloads.arduino.cc/libastylej-2.05.1.zip" />
<param name="final_folder" value="${staging_folder}/libastylej" />
<param name="dest_folder" value="${staging_folder}" />
</antcall>
<copy file="linux/libastylej-2.05.1/libastylej_arm.so" tofile="linux/work/lib/libastylej.so" />
<chmod perm="755" file="linux/work/lib/libastylej.so" />

<antcall target="portable-${portable}">
<param name="parentdir" value="linux/work" />
</antcall>

<antcall target="unzip">
<param name="archive_file" value="./liblistSerials-1.0.5.zip" />
<param name="archive_url" value="http://downloads.arduino.cc/liblistSerials/liblistSerials-1.0.5.zip" />
<param name="final_folder" value="${staging_folder}/liblistSerials-1.0.5" />
<param name="dest_folder" value="${staging_folder}" />
</antcall>
<copy file="linux/liblistSerials-1.0.5/arm/liblistSerialsj.so" todir="linux/work/lib/" />
<chmod perm="755" file="linux/work/lib/liblistSerialsj.so" />

</target>

<target name="arm-build" depends="linux-libastyle-arm" description="Build linux (32-bit) version">
<antcall target="linux-jvm-${linux-bundle-jvm-task}">
<param name="JVM" value="${LINUX32_BUNDLED_JVM}"/>
</antcall>

<delete dir="${staging_folder}/arduino-builder-arm" includeemptydirs="true"/>
<mkdir dir="${staging_folder}/arduino-builder-arm"/>
<antcall target="untar">
<param name="archive_file" value="./arduino-builder-arm-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
<param name="archive_url" value="http://downloads.arduino.cc/tools/arduino-builder-arm-${ARDUINO-BUILDER-VERSION}.tar.bz2" />
<param name="final_folder" value="${staging_folder}/arduino-builder-arm/arduino-builder" />
<param name="dest_folder" value="${staging_folder}/arduino-builder-arm" />
</antcall>
<copy file="${staging_folder}/arduino-builder-arm/arduino-builder" tofile="linux/work/arduino-builder" />
<chmod perm="755" file="linux/work/arduino-builder" />
<move file="${staging_folder}/arduino-builder-arm/tools" tofile="linux/work/tools-builder"/>
<copy todir="linux/work/hardware" overwrite="true">
<fileset dir="${staging_folder}/arduino-builder-arm/hardware" includes="*.txt"/>
</copy>
<delete dir="${staging_folder}/arduino-builder-arm" includeemptydirs="true"/>

<antcall target="avr-toolchain-bundle">
<param name="unpack_target" value="untar"/>
<param name="gcc_archive_file" value="avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2"/>
<param name="gcc_version" value="4.8.1-arduino5"/>
<param name="avrdude_archive_file" value="avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2"/>
<param name="avrdude_version" value="6.0.1-arduino5"/>
</antcall>

<antcall target="package-library-index-json-bundle"/>
</target>

<target name="linux32-build" depends="linux-libastyle-x86" description="Build linux (32-bit) version">
<antcall target="linux-jvm-${linux-bundle-jvm-task}">
<param name="JVM" value="${LINUX32_BUNDLED_JVM}"/>
</antcall>
Expand Down Expand Up @@ -639,7 +705,7 @@
<antcall target="package-library-index-json-bundle"/>
</target>

<target name="linux64-build" depends="linux-build" description="Build linux (64-bit) version">
<target name="linux64-build" depends="linux-libastyle-x86" description="Build linux (64-bit) version">
<antcall target="linux-jvm-${linux-bundle-jvm-task}">
<param name="JVM" value="${LINUX64_BUNDLED_JVM}"/>
</antcall>
Expand Down Expand Up @@ -687,6 +753,8 @@

<target name="linux64-run" depends="build,start"/>

<target name="arm-run" depends="build,start"/>

<target name="linux32-start">
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
</target>
Expand All @@ -695,6 +763,10 @@
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
</target>

<target name="arm-start">
<exec executable="./linux/work/arduino" spawn="false" failonerror="true"/>
</target>

<!-- Set '${dist_file}_available' property if toolchain dist_file is downloaded -->
<!-- Set '${dist_file}_installed' property if toolchain is installed in working directory -->
<!-- hardware/tools/${dist_check_file} is checked for existence -->
Expand Down Expand Up @@ -779,6 +851,9 @@
<target name="linux64-dist" depends="linux-dist"
description="Build .tar.xz of linux version" />

<target name="arm-dist" depends="linux-dist"
description="Build .tar.xz of linux version" />

<!-- - - - - - - - -->
<!-- Windows -->
<!-- - - - - - - - -->
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0c8070d4dbec5fc9f2d794672402acc3b3c21edd
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
78fd8aa9a98b05c6a8590c43b579322d795fc421
Binary file added header.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.