Building the Atmel NGW Development Kit
Building and setting up the development environment for this embedded network gateway isn't that straightforward. Here are a few notes of how it's done.
1 Building the Development Kit
It's hard to build the development tools, no matter where they come from, Atmel or the now defunct http://avr32linux.org
website. However, Atmel provide a buildroot
utility which can create a complete root filesystem for the NGW100 and creates the toolchain (i.e. gcc
, binutils
and friends) in the process. It will successfully get from the web and build all the necessary dependencies.
- Get
buildroot
from Atmel's website. - Get the source for the various tools needed. Sticking to these versions proved to be successful:
- binutils-2.18.tar.bz2
- gcc-4.2.2.tar.bz2
- gmp-4.2.2.tar.bz2
- linux-2.6.27.6.tar.bz2
- mpfr-2.3.0.patch
- mpfr-2.3.0.tar.bz2
- uClibc-0.9.30.tar.bz2
dl
directory that will be created in thebuildroot
source directory. Alternatively, you can issue amake source
command in thebuildroot
source directory to get the sources according to the configuration you made. However, not all necessary libraries are downloaded by default (e.g.gmp
). - Move all the tool archives to a directory you'll refer to from the
buildroot
directory with a link calleddl
. - Run
make
. A curses interface will show up where you can configure the build:- Set target architecture to
avr32
. - In the Build options, set the Toolchain and header file location to something where you want the toolchains to be installed.
- In the Package Selection for the target, uncheck BusyBox as we don't want to build the BusyBox.
- In the Target filesystem options, unset ext2 root filesystem. No BusyBox → No filesystem.
- Exit to write the
.config
file.
- Set target architecture to
- Run
make
again. You won't have tomake install
– everything will be installed appropriately.
You'll find the cross-compiler in $PREFIX/avr/usr/bin/avr32-linux-gcc
. It's used exactly like gcc
.
2 Network Setup Notes
The eth0
interface is the left one when you look at the back of the board. The address should be changed in /etc/network/interfaces
to make the configuration permanent. Note that the eth0
interface seems to be configured to use DHCP by default.
3 Non-References
- The
http://avr32linux.org
website no longer exists.