ICub laptop: Difference between revisions

From ISRWiki
Jump to navigation Jump to search
mNo edit summary
m (→‎NFS: fix formatting)
 
(27 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 ==


= Additional software =
''See also [[iCub machines configuration#Network_configuration]]''.


== Nvidia graphics card ==
address 10.10.1.53
netmask 255.255.255.0
gateway 10.10.1.254
dns 10.0.0.1, 10.0.0.2


== YARP and iCub ==
== 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 connection to other machines ==
== 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 <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 =
 
* [http://wiki.icub.org/wiki/ICub_laptop_installation_instructions ICub laptop installation instructions]
* [http://wiki.icub.org/wiki/Generic_iCub_machine_installation_instructions Generic iCub machine installation instructions]


[[Category:Vislab]]
[[Category:Vislab]]

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