ICub laptop: Difference between revisions
(→NFS: enforce NFSv3, improve documentation) |
m (→NFS) |
||
Line 40: | Line 40: | ||
Notes about the NFS client configuration: | Notes about the NFS client configuration: | ||
# we specify the IP address of the server rather than its name: for example, `10.10.1.53:/exports/code` rather than `icub-laptop:/exports/code` | # we specify the IP address of the server rather than its name: for example, `10.10.1.53:/exports/code` rather than `icub-laptop:/exports/code` | ||
# we enforce NFSv3 to fix a problem | # we enforce NFSv3 to fix a problem related to automatic mounting on boot | ||
Successful mounting on client machines shows something link this (where 10.10.1.x is the client IP): | Successful mounting on client machines shows something link this (where 10.10.1.x is the client IP): |
Revision as of 16:56, 20 November 2017
This laptop is used to control the iCub robot.
Note: this laptop replaces Chico3, which was used during 2009-2014.
Specifications
- processor: 4 x i7-4700MQ @ 2.40-3.40 GHz
- memory: 32GB
- graphics card: Nvidia GeForce GTX 770M (compute capability 3.0) with 3072MB of memory; onboard card HD 4600
Setup
Ubuntu LTS Desktop, 64-bit. Computer name: icub-laptop.
Operating system installation
In the Windows 8 preferences, configure the power button to really turn off the machine (as opposed to suspend). In the BIOS, activate CSM instead of UEFI. Now it is possible to boot from a Linux DVD.
Network
See also iCub machines configuration#Network_configuration.
address 10.10.1.53 netmask 255.255.255.0 gateway 10.10.1.254 dns 10.0.0.1, 10.0.0.2
NFS
NFS server configuration: the volumes must be defined in /etc/exports as follows.
/exports/code 10.10.1.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check) /exports/local_yarp 10.10.1.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)
NFS client configuration: the shared volumes are defined in /etc/fstab as follows.
icub-laptop:/exports/code /usr/local/src/robot nfs _netdev,auto,hard,intr,nfsvers=3 0 0 icub-laptop:/exports/local_yarp /home/icub/.local/share/yarp nfs _netdev,auto,hard,intr,nfsvers=3 0 0
Notes about the NFS client configuration:
- we specify the IP address of the server rather than its name: for example, `10.10.1.53:/exports/code` rather than `icub-laptop:/exports/code`
- we enforce NFSv3 to fix a problem related to automatic mounting on boot
Successful mounting on client machines shows something link this (where 10.10.1.x is the client IP):
$ mount ... icub-laptop:/exports/code on /usr/local/src/robot type nfs4 (rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.10.1.x,minorversion=0, local_lock=none,addr=10.10.1.53,_netdev) icub-laptop:/exports/local_yarp on /home/icub/.local/share/yarp type nfs4 (rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.10.1.x,minorversion=0, local_lock=none,addr=10.10.1.53,_netdev)
If automatic mounting at boot time fails, mount the volumes manually:
sudo mount /usr/local/src/robot sudo mount /home/icub/.local/share/yarp # the above commands use settings from /etc/fstab and are equivalent to: # sudo mount icub-laptop:/exports/code /usr/local/src/robot -t nfs -o _netdev,auto,hard,intr # sudo mount icub-laptop:/exports/local_yarp /home/icub/.local/share/yarp -t nfs -o _netdev,auto,hard,intr
Open issues
- brightness: fn+F2 does not work, fn+F3 does not work and hibernates the machine
- shutdown does not work
NFS:
- on icub-laptop, NFS volumes are not mounted at boot - try other flags in /etc/fstab, see also https://www.rodneybeede.com/How_to_fix_NFS__v4__not_mounting__etc_fstab_entries_on_boot.html and https://wiki.archlinux.org/index.php/NFS#Automatic_mount_handling
- we can log onto other machines only when NFS volumes have been successfully mounted (when icub-laptop is up) - insert a robust mechanism (e.g. timeout) to let us log anytime
Customization
Passwordless connections
First, generate a key as follows. You only need to it once; use default choices:
ssh-keygen -t rsa
Then, copy the key to each machine you want to connect to, e.g., for pc104 do the following:
ssh-copy-id -i /home/icub/.ssh/id_rsa.pub icub@pc104
Launcher icons
Bash script icons
To create a launcher on the desktop, create a file with a .sh
extension, make it executable and edit the content like this:
#!/bin/bash source ~/.bash_iCubrc icub-cluster.py vislab-cluster.xml // <- customize this line with the command and arguments exec /bin/bash
GNOME Panel icons
Note: as of Feb. 2015 this method is broken due to this bug in GNOME.
Install gnome-panel
then use gnome-desktop-item-edit
to create/edit launcher icons on the Desktop.
For example, to create a launcher for icub-cluster.py, do
gnome-desktop-item-edit ~/Desktop/cluster-manager.desktop
and select:
Type: Application // <-- runs the command without showing any terminal; use "Application in Terminal" to show it Name: icub-cluster // <-- put your preferred icon name here Command: icub-cluster.py vislab-cluster.xml Comment: Launch iCub cluster manager (yarpserver and yarprun)
More information and troubleshooting:
- xdg-open *.desktop opens text editor
- Running a .desktop file in the terminal
- Hashbang for Gnome .desktop files