ICub laptop: Difference between revisions
m (→NFS: fix formatting) |
|||
(25 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
* processor: 4 x [http://ark.intel.com/products/75117/ i7-4700MQ] @ 2.40-3.40 GHz | * processor: 4 x [http://ark.intel.com/products/75117/ i7-4700MQ] @ 2.40-3.40 GHz | ||
* memory: 32GB | * memory: 32GB | ||
* graphics card: Nvidia GeForce GTX 770M with | * graphics card: Nvidia GeForce GTX 770M (compute capability 3.0) with 3072MB of memory; onboard card HD 4600 | ||
= Setup = | = Setup = | ||
Line 21: | Line 21: | ||
== Network == | == 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. | |||
10.10.1.53:/exports/code /usr/local/src/robot nfs _netdev,auto,hard,intr,nfsvers=3 0 0 | |||
10.10.1.53:/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, <code>10.10.1.53:/exports/code</code> rather than <code>icub-laptop:/exports/code</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 = | = Customization = | ||
== Passwordless | == Passwordless connections == | ||
First, generate a key as follows. You only need to it once; use default choices: | |||
ssh-keygen -t rsa | 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 | 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 <code>.sh</code> 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 [https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/378783 this bug] in GNOME.''' | |||
Install <code>gnome-panel</code> then use <code>gnome-desktop-item-edit</code> 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: | |||
* [https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/378783 xdg-open *.desktop opens text editor] | |||
* [http://askubuntu.com/questions/5172/running-a-desktop-file-in-the-terminal Running a .desktop file in the terminal] | |||
* [http://stackoverflow.com/questions/6020106/hashbang-for-gnome-desktop-files/ Hashbang for Gnome .desktop files] | |||
= See also = | = See also = |
Latest revision as of 17:08, 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.
10.10.1.53:/exports/code /usr/local/src/robot nfs _netdev,auto,hard,intr,nfsvers=3 0 0 10.10.1.53:/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 thanicub-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