Pc104: Difference between revisions

From ISRWiki
Jump to navigation Jump to search
Line 88: Line 88:
   Configuration (libdc1394):
   Configuration (libdc1394):
   libraw1394 support (Linux legacy):  Disabled (libraw1394 not found)
   libraw1394 support (Linux legacy):  Disabled (libraw1394 not found)
  Juju support (Linux new):          Enabled
  Mac OS X support:                  Disabled (Mac OS not detected)
  Windows support:                    Disabled (Windows not detected)
  IIDC-over-USB support:              Disabled (libusb-1.0 not found)
or (if you install libraw1394 before):
  Configuration (libdc1394):
  libraw1394 support (Linux legacy):  Enabled
   Juju support (Linux new):          Enabled
   Juju support (Linux new):          Enabled
   Mac OS X support:                  Disabled (Mac OS not detected)
   Mac OS X support:                  Disabled (Mac OS not detected)

Revision as of 13:55, 25 May 2009

Ubuntu Server 8.04 Installation

On 2009-05-21, we installed Ubuntu Server 8.04 'Hardy Heron' on a brand new 4GB Flash IDE memory.

First of all, we changed the BIOS setting First Boot Device to: USB-CDROM. We had a Ubuntu Server 8.04 CD inside the drive. (It is apparently possible to boot and install directly from a Flash memory, but a CDROM installation is easier.)

Here is our configuration on Ubuntu Server 8.04:

  • hostname: pc104
  • automatic partitioning (which will partition the 4GB drive into an ext3 and a swap partition)
  • username: icub
  • no HTTP proxy
  • software selection: OpenSSH (which includes scp to copy files among machines), nothing else

After a while, the CDROM will eject automatically. Remove it and, after reboot, change the BIOS boot sequence settings to the default, which is:

  • Primary Boot Device: Hard Disk
  • Second Boot Device: Disabled
  • Third Boot Device: Disabled

At this point we have a minimal Linux system (474MB).

Network

Change the IP to 10.10.1.50 by editing /etc/network/interfaces in the following way:

  auto lo
  iface lo inet loopback
  auto eth0
  iface eth0 inet static
  address 10.10.1.50
  netmask 255.255.255.0
  network 10.10.1.0
  broadcast 10.10.1.255
  gateway 10.10.1.254

Add the following lines in /etc/hosts (besides the already-existing lines):

  10.10.1.52	chico2
  10.10.1.1	cortex1
  10.10.1.2	cortex2
  10.10.1.3	cortex3
  10.10.1.4	cortex4
  10.10.1.5	cortex5
  10.10.1.6	cortex6

Then, copy the content of directory ~/.ssh/ from a machine we have used in the past to connect to pc104 (e.g., icubsrv or chico2) to the pc104 itself. This will permit passwordless login sessions, necessary for yarprun and demos. On the other machines of the network which we use to connect to pc104 (e.g., chico2, cortex cluster) you might need to delete a line of your ~/.ssh/known_hosts file (the "offending line" which contains an old key -- follow the ssh error message and just delete that line). Now, passwordless logins to pc104 should be no problem from the other machines.

After the installation

Install the following packages:

  sudo apt-get install gcc g++ cmake make cvs subversion ssh libace-dev libgsl0-dev

Additional RobotCub software

iCub: downloading the repository

In /home/icub, do:

 cvs -d vislab@cvs.robotcub.org:/cvsroot/robotcub co iCub

For now, don't compile iCub but start installing YARP instead.

YARP

Type this from our homedir:

  cvs -d:pserver:anonymous@yarp0.cvs.sourceforge.net:/cvsroot/yarp0 login
  cvs -z3 -d:pserver:anonymous@yarp0.cvs.sourceforge.net:/cvsroot/yarp0 co -P yarp2
  cd yarp2

Enter yarp2/conf and do:

  cp ExternalModules.cmake.template ExternalModules.cmake

then write the following lines in ExternalModules.cmake:

  SET(EXTERNAL_MODULES icub)
  SET(icub_DIR "/home/icub/iCub/src/modules")

TODO: fix firewire. Ubuntu packages don't seem to do the trick:

  (libdc1394-13-dev libraw1394-dev)
  (lib_dc1394  -> /usr/lib/libdc1394_control.so)
  trying with libraw1394-8 libraw1394-dev

Do this instead:

  wget http://downloads.sourceforge.net/libdc1394/libdc1394-2.1.0.tar.gz?modtime=1200479950&big_mirror=0
  tar xzvf libdc1394-2.1.0.tar.gz
  cd libdc1394-2.1.0/
  ./configure --prefix=/usr

says

  Configuration (libdc1394):
  libraw1394 support (Linux legacy):  Disabled (libraw1394 not found)
  Juju support (Linux new):           Enabled
  Mac OS X support:                   Disabled (Mac OS not detected)
  Windows support:                    Disabled (Windows not detected)
  IIDC-over-USB support:              Disabled (libusb-1.0 not found)

or (if you install libraw1394 before):

  Configuration (libdc1394):
  libraw1394 support (Linux legacy):  Enabled
  Juju support (Linux new):           Enabled
  Mac OS X support:                   Disabled (Mac OS not detected)
  Windows support:                    Disabled (Windows not detected)
  IIDC-over-USB support:              Disabled (libusb-1.0 not found)


  make
  sudo make install


TODO: fix the following modules -> lib_plxapi

Now

  ccmake .

In CMake, type 'c' (whenever necessary) and turn on the following modules only:

  CREATE_DEVICE_LIBRARY_MODULES
  CREATE_LIB_MATH
  ENABLE_icubmod_canmotioncontro
  ENABLE_icubmod_dragonfly2
  ENABLE_icubmod_icubarmcalibrat
  ENABLE_icubmod_icubheadcalibra
  ENABLE_icubmod_icublegscalibra
  ENABLE_icubmod_pcan
  ENABLE_icubmod_xsensmtx
  ENABLE_yarpmod_serial
  ENABLE_yarpmod_serialport
  MERGE_DEVICE_LIBRARY_MODULES

iCub: compiling and installing

Enter iCub/ and do:

 ccmake .
 c

Enable these modules only:

 BUILD_IN_ROOT

(to be completed)

Old setup (prior to 2009-05-21)

pc104 booted from a read-only memory.

after booting, it mounted a part of the hard-disk of icubsrv (the laptop, IP address 10.10.1.51).

after that, it ran the scripts that are found in /exports/code-pc104/pc104/hooks. you can use those scripts for making some configuration permanent on pc104 and/or to run programs. they set up the yarp namespace, they start yarp run, configure the keys for passwordless log-ins, etc.