User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mission:log:2015:01:20:gentoo-crossdev-compile-avr-gcc-for-arduino-and-cura [2015/01/26 06:12] – [Emerge gentoo crossdev avr-gcc for Arduino and Cura] chronomission:log:2015:01:20:gentoo-crossdev-compile-avr-gcc-for-arduino-and-cura [2016/01/18 09:27] (current) chrono
Line 1: Line 1:
 ====== Emerge gentoo crossdev avr-gcc for Arduino and Cura ====== ====== Emerge gentoo crossdev avr-gcc for Arduino and Cura ======
  
-In  order to update the firmware of our [[mission:resources:picoprint|3D printer]] for dual head extrusion and to compile [[https://github.com/daid/Cura/|Cura]] (an alternative gcode slicer) a working crossdev toolchain was needed. +In  order to update the firmware of our [[mission:resources:picoprint|3D printer]] for dual head extrusion and to compile [[https://github.com/daid/Cura/|Cura]] (an alternative gcode slicer) a working AVR crossdev toolchain was needed. 
  
 The printer firmware uses the Arduino toolkit so the dependency was obvious, the Cura build unfortunately needs a working avr-gcc as well (not that obvious), because it also ships with Ultimaker firmware, which cannot be disabled, even if you don't have an Ultimaker (kinda stupid).  The printer firmware uses the Arduino toolkit so the dependency was obvious, the Cura build unfortunately needs a working avr-gcc as well (not that obvious), because it also ships with Ultimaker firmware, which cannot be disabled, even if you don't have an Ultimaker (kinda stupid). 
  
-Currently, the stable crossdev avr-gcc suite with gcc 4.8.3 did not compile so it was a bit of a hassle to get it running again. In order to save somebody else the time to figure this out, here's the install trace that was already tested verbatim on another gentoo amd64 box and worked as well:+Currently, the stable crossdev avr-gcc suite with gcc 4.8.3 did not compile so it was a bit of a hassle to get it running again. In order to save somebody else the time to figure this out, here's the install trace that was already tested verbatim on another gentoo amd64 box and worked as well
 + 
 +Let's start with a clean slate and unmerge any cross-avr chain:
  
 <code> <code>
 crossdev -C avr crossdev -C avr
 +</code>
 +
 +This was used originally:
 +
 +<code>
 USE="multilib -cxx" crossdev -v -s1 --without-headers --target avr --gcc 4.5.2 --binutils 2.21 --libc 1.7.0 USE="multilib -cxx" crossdev -v -s1 --without-headers --target avr --gcc 4.5.2 --binutils 2.21 --libc 1.7.0
 USE="multilib cxx" crossdev -v -s4 --target avr --gcc 4.5.2 --binutils 2.21 --libc 1.7.0 USE="multilib cxx" crossdev -v -s4 --target avr --gcc 4.5.2 --binutils 2.21 --libc 1.7.0
 +</code>
 +
 +As of 2015-04-05 the above combination doesn't work anymore, please use this instead:
 +
 +<code>
 +USE="multilib -cxx" crossdev -v -s1 --without-headers --target avr --gcc 4.5.4 --binutils 2.21.1-r1 --libc 1.7.0
 +USE="multilib cxx" crossdev -v -s4 --target avr --gcc 4.5.4 --binutils 2.21.1-r1 --libc 1.7.0
 +</code>
 +
 +And to finish it up:
 +
 +<code>
 ln -nsf /usr/x86_64-pc-linux-gnu/avr/lib/ldscripts /usr/avr/lib/ldscripts ln -nsf /usr/x86_64-pc-linux-gnu/avr/lib/ldscripts /usr/avr/lib/ldscripts
 ln -nsf /usr/x86_64-pc-linux-gnu/avr/lib/ldscripts /usr/x86_64-pc-linux-gnu/avr/binutils-bin/2.20.1/ldscripts ln -nsf /usr/x86_64-pc-linux-gnu/avr/lib/ldscripts /usr/x86_64-pc-linux-gnu/avr/binutils-bin/2.20.1/ldscripts
Line 23: Line 42:
 ln -s /usr/bin/avr-ar /usr/share/arduino/hardware/tools/avr/bin/avr-ar ln -s /usr/bin/avr-ar /usr/share/arduino/hardware/tools/avr/bin/avr-ar
 ln -s /usr/bin/avr-as /usr/share/arduino/hardware/tools/avr/bin/avr-as ln -s /usr/bin/avr-as /usr/share/arduino/hardware/tools/avr/bin/avr-as
 +ln -s /usr/bin/avr-size /usr/share/arduino/hardware/tools/avr/bin/avr-size
 </code> </code>
 +
 +If you want to use the Software Serial and monitoring feature, you need to install rxtx-2.2_pre2 or newer. This version is still masked in the main portage tree, so you will need to unmask it by adding
 +
 +<code>
 +=dev-java/rxtx-2.2_pre2 ~x86 ~amd64
 +</code>
 +
 +to /etc/portage/package.keywords/arduino and then (re)emerge it
 +
 +<code>
 +$ emerge dev-java/rxtx
 +</code>
 +
 +Also, if you don't want to use the crappy JAVA based Arduino IDE, you can simply use a Makefile like this: https://github.com/sudar/Arduino-Makefile
  
 {{tag>gentoo avr-gcc crossdev arduino cura}} {{tag>gentoo avr-gcc crossdev arduino cura}}