ICub laptop: Difference between revisions

From ISRWiki
Jump to navigation Jump to search
m (→‎NFS: fix formatting)
 
(6 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 66: Line 70:


* 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 =


= Customization =
= Customization =

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