Installation of the build environment

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

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

Required packages

At least the following packages should be installed:

  • patch - Apply a diff file to an original
  • ncurses-dev - Unit Testing Library for C (ncurses) – development files
  • tftpd-hpa - HPA's tftp server
  • subversion - Advanced version control system
  • nfs-kernel-server - support for NFS kernel server
  • fakeroot - Gives a fake root environment
  • unix2dos, tofrodos - Converts DOS ↔ Unix text files

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
  • meld - graphical tool to diff and merge files
  • geany, geany-plugins - A fast and lightweight IDE
  • tftp-hpa - HPA's tftp client
  • glibc-doc - GNU C Library: Documentation
  • manpages-posix, manpages-posix-dev - Manual pages about using a POSIX system (for development)
sudo apt-get install meld geany geany-plugins tftp-hpa glibc-doc manpages-posix manpages-posix-dev

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

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

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"

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.

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

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
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.

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.

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

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.

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

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

  • Last modified: 2022/08/04 15:02