This page provides instructions for setting up your Linux machine for working on the AOS project. These instructions will be distribution specific (for Ubuntu) but they should at least give you an idea of how to set up other distributions.
The components you will need to install are:
- Build dependencies
- A serial terminal program (we recommend picocom)
- TFTP server
- An NFS server/share
Once installed, the installation can be tested by following the milestone 0 instructions.
Follow the seL4 build dependencies (you only need to install the Base Build Dependencies and the Python Dependencies) instructions on the seL4 docsite. Note: that you only require the aarch64 cross-compilers.
Once this stage is completed successfully, you should be able to compile the AOS project.
Install the following packages in order to run the project and communicate with the hardware:
sudo apt-get install git sudo apt-get install netcat.traditional update-alternatives --set nc /bin/nc.traditional sudo apt-get install picocom sudo apt-get install tftpd-hpa tftp-hpa sudo apt-get install nfs-kernel-server
Setting up the network
Insert the USB to Ethernet adapter into a spare USB port on your Linux host machine and run the following:
The name that your system assigned to the Ethernet port should appear near the bottom of the output. For example:
ax88179_178a 2-2:1.0 eth1: register 'ax88179_178a' at usb-0000:00:14.0-2, D-Link DUB-1312 USB 3.0 to Gigabit Ethernet Adapter, e4:6f:13:f3:e3:93
You may find that the port was immediately renamed:
ax88179_178a 2-2:1.0 enxe46f13f3e393: renamed from eth1
The following instructions assume that the Ethernet port was named
eth1 and that no renaming occurred. If this is not the
enxe46f13f3e393 in the above example).
Add the following lines to
iface eth1 inet static address 192.168.168.1 netmask 255.255.255.0
Bring up the interface:
sudo ifup eth1
Setting up the TFTP server
After installing the
tftpd-hpa package, the default
Ubuntu tftp directory will be
/var/lib/tftpboot. You will
either need to modify our helper scripts to match the new default, or
/etc/default/tftpd-hpa, i.e. change
TFTP_DIRECTORY to match our source.
You may need to adjust ownership and/or permissions to allow you
access to the directory (e.g.
/var/lib/tftpboot) if you are in a benign environment.
Our source expects the tftp directory to be
Make sure to enable and start the tftp server with:
$ sudo systemctl enable tftpd-hpa && sudo systemctl start tftpd-hpa
Set up an NFS share
Make sure NFS server is installed:
$ sudo apt-get install nfs-kernel-server nfs-common
Then set up the exports by editing
adding the following lines (adjusted for the location of your tftp
root directory and your username):
/var/tftpboot/USERNAME to whatever is set
TFTP_DIRECTORY to in your tftpd configuration.
UID with your Unix user ID (usually 1000 --
find out using
GID with your Unix group ID (usually 1000 --
find out using
To restart the nfs server with the updated exports, run:
$ sudo service nfs-kernel-server restart
Serial Line Access
Add your account to group
dialout to give access to
/dev/ttyUSB0. You'll need to logout and back in to update
your groups. If you skip this picocom may need root permissions to
You may be required to change the settings for picocom. Use
dmesg to work out which port the USB to serial converter
has been attached to (its usually
/dev/ttyUSB0). Then set
picocom to use that serial port, 115200 baud rate, 8N1, and no
hardware flow control, using
sudo picocom -b 115200