Table of Contents

Installation of the build environment

Required disk storage

The toolchain and the BSP require approximately 4 GB of disk space:

Directory Required space
/opt ca. 2GB
/home ca. 2GB

Preparation

Installation of additional packages

Required packages

At least the following packages should be installed:

In Ubuntu or Debian you can install these packages with this command:

sudo apt-get install patch libncurses5-dev tftpd-hpa subversion nfs-kernel-server fakeroot tofrodos

The NFS server has to be enabled:

sudo update-rc.d nfs-kernel-server enable
sudo service nfs-kernel-server start
sudo apt-get install meld geany geany-plugins tftp-hpa glibc-doc manpages-posix manpages-posix-dev

Changing the symlink /bin/sh

In Ubuntu or Debian the symbolic link /bin/sh has to be changed to call /bin/bash:

sudo ln -sf /bin/bash /bin/sh

Configuration of sudo

Sudo should preferably be configured in such a way, that the required environment variables are adopted. Therefore the following line should be added to the file /etc/sudoers:

Defaults env_keep += "PATH ELDK ELDKDIR RFS_TOP SYSTOPDIR GCC_PATH LIB_BASE CROSS_COMPILE"

Software working copy

Get your working copy from the subversion repository:

svn co --username <user> https://svn.reccoware.de/tq/system/trunk tq

Falls noch kein Benutzername (<user>) für Sie eingerichtet wurde, wenden Sie sich bitte an Ihren Ansprechpartner bei TQ If you don't already have a user account (<user>), please ask your contact at TQ.

The following question should be answered with 'p' like permanent:

Error validating server certificate for 'https://svn.reccoware.de:443
...
Certificate information:
 - Hostname: recconet.de
 - Valid: from Mon, 13 Jun 2011 04:09:50 GMT until Thu, 14 Jun 2012 12:59:52 GMT
 - Issuer: Domain Validated SSL, GeoTrust Inc., US
 - Fingerprint: f5:d4:31:b8:db:15:60:71:f1:11:d2:61:55:b4:21:11:ca:3e:61:8d
(R)eject, accept (t)emporarily or accept (p)ermanently?

Afterwards just interrupt by pressing Ctrl-C in order to reconfigure subversion. The current version 1.6 of the subversion client uses the gnome password manager to store the password. This can cause problems with the Eclipse SVN plug-in.

To avoid this set the parameter password-stores in section [auth] of the subersion config file .subversion/config to (empty):

nano ~/.subversion/config
[auth]
password-stores =

This only has to be done once.

Now start subversion once again:

svn co --username <user> https://svn.reccoware.de/tq/system/trunk tq

Answer the question “Store password unencrypted” with “yes”.

Finally change to directory tq and store the absolute path of the working copy directory in the shell variable $TOPDIR.

cd tq; TOPDIR=$(pwd)

The variable $TOPDIR now contains the top level directory of the build environment. It is required for the following steps.

Network boot via TFTP

Usually the TFTP root directory on the server is /var/lib/tftpboot. The Linux kernel image uImage should be stored in a directory named after the IP address of the target, e.g.:

/var/lib/tftpboot/172.16.135.170/uImage

The following variables in the U-Boot environment have to be set or customised:

Name Description Default value
ipaddr Target IP address 172.16.135.170
serverip Server IP address (TFTP and NFS) 172.16.135.107
gatewayip Gateway IP address 172.16.135.254
netmask Netmask 255.255.255.0
kernel Filename of kernel image on TFTP server 172.16.135.170/uImage
bootcmd Default boot command
(set to run boot_net_debian for network boot)
run boot_mmc

After customising the variables, permanently save the environment to flash using the command saveenv.

Example:

setenv ipaddr 192.168.145.129
setenv serverip 192.168.145.8
setenv gatewayip 192.168.145.254
setenv netmask 255.255.255.0
setenv kernel $ipaddr/uImage
setenv bootcmd run boot_net_debian
saveenv

Root file system ("rootfs")

The archive of the Debian rootfilesystem tree is available here:

Download the rootfs to tmp/, extract it and set up as follows:

rfsarch=rootfs-squeeze-yyyymmdd-nn.tgz
pushd /tmp; wget http://repository.reccoware.de/stuff/tq0412/$rfsarch; popd
cd $TOPDIR
mkdir -p rootfs
sudo tar -C rootfs -xzf /tmp/$rfsarch
rm -f rootfs/debian; ln -s tqma28.squeeze rootfs/debian

Share rootfs via NFS

sudo -s
ipaddr=<ipaddr>
mkdir -p /exports/rootfs/$ipaddr
ln -s $TOPDIR/rootfs/debian /exports/rootfs/$ipaddr/debian
echo "/exports/rootfs/$ipaddr/debian	$ipaddr(rw,no_root_squash,async,no_subtree_check)" >>/etc/exports
exportfs -a
exit

Replace <ipaddr> with the actual IP address of the targets.

Launch Debian rootfs

The Debian System can be launched from U-Boot using

run boot_net_debian

The very first run will take a while untill the X11 system shows up on the screen (2-3 minutes).

The root password is root. The debian system can also be accessed via SSH.

Installation of the ELDK

The ELDK ISO image is available for download from http://repository.reccoware.de/stuff/tq0412/arm-2008-11-24.iso.

Donwloading and Installing the ELDK

pushd /tmp; wget http://repository.reccoware.de/stuff/tq0412/arm-2008-11-24.iso; popd
sudo mount -o loop,ro /tmp/arm-2008-11-24.iso /mnt
pushd /mnt; sudo ./install -d /opt/eldk; popd
sudo umount /mnt

It is recommended to answer 'y' when asked “Do you really want to install into /opt/eldk directory[y/n]?:”.

The error message “error: failed to stat …/.gvfs: Permission denied” is not critical.

Prepare the ELDK

cd $TOPDIR/build
source setenv-eldk
sudo ./setup-eldk-toolchain.sh

Prepare the build environment

cd $TOPDIR; make prepare

Environment

To automatically set the alias tq every time you login, you can add the following line to .bashrc:

cat >>~/.bashrc <<EOF
alias tq="cd $(echo $TOPDIR); . ./build/setenv-eldk; PS1='[\[\033[43m\]TQ\[\033[0m\] \W]\$ '"
EOF

Now you can change to the tq directory by executing tq. Additionally the environment is properly configured for cross compiling.


FIXME: Testing required for Ubuntu, validated to work on Fedora 14