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
buildrootfrom 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
dldirectory that will be created in thebuildrootsource directory. Alternatively, you can issue amake sourcecommand in thebuildrootsource 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
buildrootdirectory 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
.configfile.
- Set target architecture to
- Run
makeagain. 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.orgwebsite no longer exists.
