User Tools

Site Tools


Differences

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

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
mission:log:2015:01:20:gentoo-crossdev-compile-avr-gcc-for-arduino-and-cura [2015/01/20 16:07] – created chronomission:log:2015:01:20:gentoo-crossdev-compile-avr-gcc-for-arduino-and-cura [2015/04/06 17:09] chrono
Line 1: Line 1:
 ====== Emerge gentoo crossdev avr-gcc for Arduino and Cura ====== ====== Emerge gentoo crossdev avr-gcc for Arduino and Cura ======
  
- 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