ICub PC104 Linux Image - Detailed info

From Wiki for iCub and Friends
Revision as of 17:48, 20 November 2014 by Matteo.brunettini@iit.it (talk | contribs) (Additional Packages)
Jump to: navigation, search

NOTE : this page is valid ONLY for the PC104 image with version 5.0 and above for older versions read this page

This page contains detailed information about the Linux distribution running inside the iCub's pc104 and keep track of important if all files and configurations which make this image different from a vanilla Debian GNU/Linux LIVE (at the time of writing Debian 7 wheezy)

Additional Packages

build-essential
sudo
gcc
g++
make
cmake
cmake-curses-gui
pkg-config
ssh
openssh-server
libtinyxml-dev
nfs-common
vim
less
ntpdate
libportaudio2
libace-dev
libgsl0-dev
libcv-dev
iperf
dnsutils
resolvconf
libpcap-dev
glade
libglademm-2.4-dev
libgtkmm-2.4-dev
libhighgui-dev
libcvaux-dev
libncurses5-dev
alsa-utils
subversion
git
bash-completion
meld
gedit
libraw1394-dev
libdc1394-22-dev
ethtool
usbutils
libpcap0.8
netcat-traditional
fxload
audacity
festival
nmap

The kernel

Customized files

README, VERSION and ChangeLog

iCub startup scripts

Kernel modules

Network configuration

The configuration is done via /etc/network/interfaces as follows

# The primary network interface (Motors network)
allow-hotplug eth0
iface eth0 inet static
  address 10.0.1.104
  netmask 255.255.255.0
auto eth0
# The secondary network interface (External network)
allow-hotplug eth1
iface eth1 inet static
  address 10.0.0.2
  netmask 255.255.255.0
  network 10.0.0.0
  broadcast 10.0.0.255
  gateway 10.0.0.1
  dns-nameservers 10.0.0.1 8.8.8.8 
  dns-domain icub.local
  dns-search icub.local
auto eth1

SSH configuration

NTP configuration

We use icub-srv (10.0.0.1) as NTP server.
The package ntp is installed but not executed, so we add the followng line to /etc/ntp.conf

server 10.0.0.1

and we change the file /etc/default/ntp as follows

STARTUP_DISABLED='yes'

NFS configuration

we mount the following two remote NFS shares from icub-srv

icubsrv:/exports/code /usr/local/src/robot nfs _netdev,auto,hard,intr
icubsrv:/exports/local_yarp /home/icub/.local/share/yarp nfs  _netdev,auto,hard,intr

So, the startup script is use to try to mount those shares, see /etc/rc_iCub.d/s90_mount-remote-fs.sh Moreover, inorder to mount the aboive share with the correct user rights, we add the following line to the file /etc/default/nfs-common

NEED_IDMAPD=yes

User environment

Other improvements

The following files are modified in order to obtain better real time netowrking performaces

  • /etc/security/limits.d/icub.conf
 icub	soft	rtprio	99
 icub	hard	rtprio	99
  • /etc/sysctl.d/20-net-rbuffer.conf
# This sets the max OS receive buffer size for all types of connections
net.core.rmem_max=8388608

Live-related customization

How the iCub LIVE image is built

The iCub live ISO image is built with a script based on the Debian LIVE tools (included in the package live-build).