Compiling trolley software
The trolley computer uses a low-power ARM processor with limited resources. It does not have the resources to compile the trolley software, hence it is necessary to use a cross-compiler on a desktop PC to compile the code. This was fairly straightforward in 2005 when the COAST group started development for this board, but the computer world has moved on a very long way since then. Here is how EBS solved the problem.
The essence of the solution is to generate a virtual PC on your desktop PC and install an old Linux distribution, circa 2006, in that.
What you will need
- A copy of the Arcom Embedded Linux development kit CD.
- A 32-bit Linux installation CD circa 2006. EBS used Debian Etch.
You can download old Debian network install CDs from here.
Installing a virtual machine
There are two major free virtual machines available for Linux, these are VirtualBox and KVM. EBS used KVM but there is no compelling reason to choose one over the other. Set up your virtual machine, ensuring that the resulting machine has:
- A 32 bit Intel i386 CPU architecture.
- Network access.
- Access to the host computer's CD-ROM drive.
- Boot priority is the CD-ROM, followed by the hard drive.
Installing your retro Linux distribution
This depends on your distribution. You want something with an early 2.6 Linux kernel. For Debian etch using a network install:
- Place the install CD in the drive.
- Boot the virtual machine.
- Follow the instructions. As this is an environment that only exists to compile the trolley code, there's no need to install anything beyond the basic installation at this stage.
- The installation will complete, with errors (the default etch repository no longer exists online).
- Log in to the new virtual machine and edit /etc/apt/sources.list to read:
deb http://archive.debian.org/debian-archive/debian/ etch main
deb-src http://archive.debian.org/debian-archive/debian/ etch main
- This will hopefully complete the previously failed installation. Some packages might be "held back", you should be able to get these to install manually:
apt-get install some-held-back-package.deb
- Install a Linux 2.6 kernel if it isn't installed by default (you'll need to reboot the virtual machine after this step):
apt-get install linux-image-2.6-686
- Finally, install anything else you need. This will include the gcc, subversion, and lsb packages.
Install the Arcom development environment
- Put the Arcom development kit in the CD-ROM drive and mount it.
- As root, type:
perl [your CD mount point]/.install
- EBS had data corruption problems doing this, he ended up copying the entire CD directory tree onto the host computer and copying that over to the virtual machine with scp.
- The virtual machine should chug away for a very long time before telling you that the installation is complete.
- Add the Arcom binaries to your search path, by adding the following to your virtual machine .bash_profile:
Build the Arcom kernel source
This step is necessary to allow the compilation of the trolley kernel modules.
- Change to the package directory on the CD-ROM. As root:
dpkg -i ./linux-source-18.104.22.168-arcom3_22.214.171.124-3_all.deb
- As an ordinary user, create a subdirectory called "src" containing two further subdirectories, "3rdparty" and "svn". The "svn" subdirectory should have a further subdirectory, "dl".
- Change to the "3rdparty" subdirectory and do the following:
tar -xvf /usr/src/linux-source-126.96.36.199-arcom3.tar.gz
make ARCH=arm viper_defconfig
ael-kernel-build --architecture=arm image
Compile the trolley software
svn checkout http://appcs.ra.phy.cam.ac.uk:8080/svn/coast-repos/dl/commonlibs
svn checkout http://appcs.ra.phy.cam.ac.uk:8080/svn/coast-repos/dl/trolley
- Change to commonlibs. You'll have to build it for both the host architecture and the development environment.
make install (as root)
make arch=arm install
- Change to the trolley subdirectory.
That last command packages up the executables, to be sent to the trolley computer for later unpacking and installation using the included scripts.
Attachments for MROIDelayLine.TrolleySoftware
Click here to upload file to attach to this page.