Want to compile a firmware now? Follow these instructions:

Install git

You can likely install git easily via your native package management system, using a graphical interface or the command line. Try something like:

apt-get install git-core

or:

yum install git-core

If that does not work, try using a graphical tool or consult your distribution documentation.

Get NXT Improved Firmware sources

Now that git is installed, it is easy to get the sources.

By accessing NXT Improved Firmware, you accept the license.

Now open a terminal and type:

git clone http://git.ni.fr.eu.org/nxt-firmware.git/

That's it! You can now browse source code.

Install GNU Make

Like git, you can likely install make easily via your native package management system, using a graphical interface or the command line. Actually, it may be installed yet. Try something like:

apt-get install make

or:

yum install make

If that does not work, try using a graphical tool or consult your distribution documentation.

Install CodeSourcery prebuilt toolchain

CodeSourcery provides prebuilt toolchain for Linux.

Download the 2010q1-188 release and store it in your home directory, then open a terminal and type:

cd /usr/local
sudo tar xjf $HOME/arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
cd
rm arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
PATH=/usr/local/arm-2010q1/bin:$PATH

The last step will change the PATH for the current shell. To enable it permanently, add this line to your .profile. This can be done by:

echo 'PATH=/usr/local/arm-2010q1/bin:$PATH' >> $HOME/.profile

Build NXT Improved Firmware

If you followed previous instructions, everything should be ready to compile the firmware:

cd $HOME/nxt-firmware/AT91SAM7S256/SAM7S256/gcc
make

Check that no error is displayed, you can then use your favorite firmware update tool to send it to your NXT:

nexttool -firmware=nxt_firmware.bin