ICub laptop: Difference between revisions

From ISRWiki
Jump to navigation Jump to search
(→‎NFS: mount commands)
m (→‎NFS: fix formatting)
 
(11 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 CUDA and 3072MB of memory; onboard card HD 4600
* 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 [[VisLab machines configuration#Network_configuration]]''.
''See also [[iCub machines configuration#Network_configuration]]''.


  address 10.10.1.53
  address 10.10.1.53
Line 30: Line 30:
== NFS ==
== NFS ==


These NFS filesystems are exported according to '''/etc/exports''':
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/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)
  /exports/local_yarp    10.10.1.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)


The NFS filesystems are mounted as defined in '''/etc/fstab''':
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   0    0
  10.10.1.53:/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   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):
Successful mounting on client machines shows something link this (where 10.10.1.x is the client IP):
Line 49: Line 53:


If automatic mounting at boot time fails, mount the volumes manually:
If automatic mounting at boot time fails, mount the volumes manually:
  sudo mount icub-laptop:/exports/code        /usr/local/src/robot          -t nfs  -o _netdev,auto,hard,intr
  sudo mount /usr/local/src/robot
  sudo mount icub-laptop:/exports/local_yarp  /home/icub/.local/share/yarp  -t nfs  -o _netdev,auto,hard,intr
sudo mount /home/icub/.local/share/yarp
# or simply (if the corresponding entries exist in /etc/fstab):
# the above commands use settings from /etc/fstab and are equivalent to:
# sudo mount /usr/local/src/robot
# sudo mount icub-laptop:/exports/code        /usr/local/src/robot          -t nfs  -o _netdev,auto,hard,intr
# sudo mount /home/icub/.local/share/yarp
  # sudo mount icub-laptop:/exports/local_yarp  /home/icub/.local/share/yarp  -t nfs  -o _netdev,auto,hard,intr


== Open issues ==
== Open issues ==
Line 63: Line 67:
NFS:
NFS:


* on icub-laptop, NFS volumes are not mounted at boot - try other flags in /etc/fstab and scripts such as this one https://www.rodneybeede.com/How_to_fix_NFS__v4__not_mounting__etc_fstab_entries_on_boot.html
* 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
* 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
= Additional software =
== Nvidia graphics card ==
== YARP and iCub ==


= Customization =
= Customization =
Line 84: Line 82:


== Launcher icons ==
== 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.
Install <code>gnome-panel</code> then use <code>gnome-desktop-item-edit</code> to create/edit launcher icons on the Desktop.
Line 95: Line 106:
  Comment: Launch iCub cluster manager (yarpserver and yarprun)
  Comment: Launch iCub cluster manager (yarpserver and yarprun)


Troubleshooting: if you click the icons and you obtain "There was an error launching the application" or "No running instance of xfce4-panel was found", do the following: tbc
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.

Toshiba Qosmio X70 17" iCub laptop.

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:

  1. 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
  2. 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:

  • 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:

See also