How to install a toolchain and QtSDK for the Eee Note EA-800:

How to build the EeeNote toolchain from scratch.

By mp035 (Mark Pointing) 27 June 2011.

This page is outlines how to compile a toolchain and Qt SDK for the Asus EeeNote EA800.  If you are using Linux, and can not be bothered going through the steps, I have tarballed the resulting binaries after building on Ubuntu so that you can untar and start coding straight away.  See here (http://freenote.peterbarrette.com/pages/devkit_howto.html) for the binary install and instructions.

Thanks to pbarrett from the Tablet PC Review Forum for setting up this site, and the effort in sharing the workings of the Eee Note, Trey Weaver who provided the howto for the beagle board, which answered most of my questions, and wahaha432 for the crosstool-ng .config file I based my config on.

Lets Get Started!

a) Download crosstool-ng (tested with 1.9.3)  

cd ~
mkdir eeenote   
cd ~/eeenote
wget http://ymorin.is-a-geek.org/download/crosstool-ng/crosstool-ng-1.9.3.tar.bz2

b) Unpack it to a folder in your home directory

cd ~/eeenote
tar -xjf crosstool-ng-1.9.3.tar.bz2

c) Configure and build Crosstool-NG

cd ~/eeenote/crosstool-ng-1.9.3/
./configure --prefix=$HOME/eeenote/crosstool-ng
make
make install
export PATH=$PATH:$HOME/eeenote/crosstool-ng/bin

d) Dowload and move the eeenote crosstool-ng configuration file into place

cd ~/eeenote/crosstool-ng
wget http://freenote.peterbarrette.com/downloads/devkit/eeenote_ctng.config 
mv eeenote_ctng.config .config

e) Get the kernel source and getline patch.  (The source should be linux 2.6.21 with the documented 'getline' issue patched.)

cd ~/eeenote
wget http://freenote.peterbarrette.com/downloads/devkit/Enote_kernel_sourcecode.zip
wget http://freenote.peterbarrette.com/downloads/devkit/linux-2.6.21-unifdef_getline.patch
 

f) Patch the kernel and reorganize it into a useable tarball.  NOTE the name and location of the tar.gz is important becuse it is in the crosstool-ng .config file.

cd ~/eeenote
unzip Enote_kernel_sourcecode.zip
cd ~/eeenote/Enote_kernel_sourcecode/linux/scripts
patch unifdef.c ~/eeenote/linux-2.6.21-unifdef_getline.patch
cd ~/eeenote/Enote_kernel_sourcecode
tar -czf ~/eeenote/linux-2.6.21_getline_patch.tar.gz linux

g) Build the compiler

cd ~/eeenote/crosstool-ng
ct-ng build.4

h) Get a beer (or 6), sit back and watch the toolchain compile. ( It took about 27 minutes on my T6600 2.2Ghz Core2 Duo Laptop )

i) Copy the toolchain into place

cd ~/eeenote
sudo cp -r ea800-toolchain /opt/
sudo chmod -R o+r /opt/ea800-toolchain

j) Get the QT source tarball and configuration for eeenote

cd ~/eeenote
wget http://freenote.peterbarrette.com/downloads/devkit/qt-everywhere-opensource-src-4.6.2.tar.gz
wget http://freenote.peterbarrette.com/downloads/devkit/ea800_qt_config.tar.gz

k) Untar Qt, and place the configuration in the appropriate location

cd ~/eeenote
tar -xf qt-everywhere-opensource-src-4.6.2.tar.gz
cd ~/eeenote/qt-everywhere-opensource-src-4.6.2/mkspecs/qws
tar -xf ~/eeenote/ea800_qt_config.tar.gz

l) Configure and build Qt for the EA800 (Note that "-j3" tries to run 3 concurrent jobs. It speeds up builds on dual core processors)

*Note that the second command in the frame below spans 2 or 3 lines on most displays.  Be sure to place it all in a single command

cd ~/eeenote/qt-everywhere-opensource-src-4.6.2/
./configure -opensource -confirm-license -prefix /usr/local/Trolltech/QtEmbedded-4.6.2-arm -no-qt3support -no-multimedia -embedded arm -little-endian -xplatform qws/linux-EA800-g++
make -j3

m) Grab what's left of those 6 beers, grab another 6 and sit back and watch it compile. (1hr 50 min on same 2.2Ghz Core2 Duo Laptop)

n) Install the toolchain (to /usr/local/Trolltech/QtEmbedded-4.6.2-arm)


sudo make install
sudo chmod -R a+rX /usr/local/Trolltech

And we're done!  Now you'll need to configure Qt Creator to use the toolchain.  There are details about this at the end of this page