In June 2009, we installed Ubuntu 8.04 LTS Server ('Hardy Heron') on the "1U Twin" servers that are to be used as '''iCub Brain''' (hence the name). The box includes a SC808T-980 1U chassis and two twin X7DWT serverboards. Each of the two boards hosts an Intel Xeon 8-core processor. In other words, they are two independent computers, each one with its hard disk, power button, reset button.
[[File:SYS-6015TW-INFB.jpg|frame|right|caption|Front and rear view of iCubBrain rack.]]
* left half of the chassis: '''icubbrain1''' - has Ubuntu 8.04 LTS '''64bit'''
iCubBrain is a cluster of 2 machines used by VisLab to run the computation behind stable robot '''demos'''.
* right half of the chassis: '''icubbrain2''' - has Ubuntu 8.04 LTS '''32bit'''
For full system specifications, go [http://www.supermicro.com/products/launch/Intel/files/seaburg/6015TW-T_6015TW-INF.pdf here (PDF)] or on [http://www.tsunami.pt/produtodescricao.aspx?idtipo=6&idlinha=18&idgama=62&idproduto=389 the entry] on tsunami.pt
''Old information can be consulted at [[iCubBrain/Archive]].''
== Operating system installation ==
= Specifications =
The chassis contains two separate machines, each one having two hard disk drive drawers. Next, we will explain how we configured the left part of the server, called '''icubbrain1'''. The settings for icubbrain2 will be just about the same, with the last octet of the IP address being 42 instead of 41.
This twin server was purchased from Tetragon in June 2009. The box includes a SC808T-980 1U chassis (1U Twin size) with two twin X7DWT serverboards. Each of the two boards hosts an Intel Xeon 8-core processor (8 x [http://ark.intel.com/products/33079/Intel-Xeon-Processor-E5405-(12M-Cache-2_00-GHz-1333-MHz-FSB) E5405] @ 2.00 GHz). Each machine is an independent computer, having two hard disk drive drawers and its own power and reset buttons.
=== Boot ===
Memory: 4GB for each machine (<code>sudo dmidecode --type 17</code> to see RAM speed and type).
We booted the Ubuntu Server CD from an external USB CD drive without problems. We then had to manually confirm the usage of a 'cdrom' module within the installation (following all the default selections).
For full system specifications, go [http://www.supermicro.com/products/launch/Intel/files/seaburg/6015TW-T_6015TW-INF.pdf here (PDF)] or on [http://web.archive.org/web/20100609080705/http://www.tsunami.pt/produtodescricao.aspx?idtipo=6&idlinha=18&idgama=62&idproduto=389] on tsunami.pt (archived page).
=== Network interface ===
= Setup =
icubbrain1 has two Gbit interfaces. First we plugged an Ethernet cable into the first one (which turns on the "'''1'''" led in the chassis front). Then, when Ubuntu asked us to choose between eth0 and eth1, we picked up eth0.
We chose the 'Guided - use entire disk' option, which yielded the following:
Next, we will explain how to configure the left part of the server, called '''icubbrain1'''. The settings for icubbrain2 will be just about the same, with the last octet of the IP address being 42 instead of 41. In general, we follow the guidelines at [[iCub machines configuration]].
{| border="1"
== Boot ==
|+ Hard disk partitioning
! size !! mountpoint !! filesystem
|-
|133GB || / || ext3
|-
|5GB || || swap
|-
|}
=== Ubuntu installation parameters ===
Boot the Ubuntu Server CD from an external USB CD drive. Press the 'Del' key if you need to access the BIOS boot order.
* machine name: icubbrain1
Sometimes, you have to manually confirm the usage of a 'cdrom' module within the installation (following all the default selections).
* user name: icub
* software selection: OpenSSH
=== Operations after first boot ===
== Network interface ==
* choose Main server (rather than Portugal server, which is incomplete) as the software repository. We do this by removing all the "pt." strings from /etc/apt/sources.list
icubbrain1 has two Gbit interfaces. First we plug an Ethernet cable into the first one (which turns on the "'''1'''" led in the chassis front). Then, when Ubuntu asks to choose between eth0 and eth1, we pick up eth0.
* sudo apt-get update; sudo apt-get upgrade
== Other operations performed ==
== Network configuration ==
=== Network configuration ===
* manually configure the internet connection (<code>/etc/network/interfaces</code>):
* manually configured the internet connection (/etc/network/interfaces):
auto lo
auto lo
iface lo inet loopback
iface lo inet loopback
Line 58:
Line 44:
broadcast 10.10.1.255
broadcast 10.10.1.255
gateway 10.10.1.254
gateway 10.10.1.254
* added the following lines to /etc/hosts, to enable running commands like: ping cortex1.
10.10.1.50 pc104
10.10.1.51 icubsrv
10.10.1.52 chico2
10.10.1.53 chico3
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.41 icubbrain1
10.10.1.42 icubbrain2
=== Additional packages and environment variables ===
* Create a file called ~/.bash_env (used by non-interactive sessions, namely commands launched via yarprun from another machine) containing these lines:
export ICUB_DIR=/home/icub/iCub
export ICUB_ROOT=$ICUB_DIR
export YARP_DIR=/home/icub/yarp2
export YARP_ROOT=$YARP_DIR
export PATH=$PATH:$ICUB_DIR/bin
export PATH=$PATH:$YARP_DIR/bin
export ICUB_ROBOTNAME=iCubLisboa01
export IPOPT_DIR=/opt/Ipopt-3.5.5-linux-x86_32-gcc4.2.4 // TO BE CONFIRMED...
* ''[TO BE FIXED] Regarding IPOPT, we tried to copy various precompiled versions in /opt, without success. We then tried to compile manually, after having apt-get'ted libblas-dev and having done configure+make+sudo make install in ThirdParty/HSL (we need to put MA27 and MC19 routine codes there). A successful IPOPT installation should give a positive "make test" output...''
* Copy all that stuff at the bottom of ~/.bashrc, too:
cat ~/.bash_env >> ~/.bashrc
* Then, before the following line of /etc/bash.bashrc
[ -z "$PS1" ] && return
add this:
# per-user environment variables (non-interactive and interactive mode)
cvs -d vislab@cvs.robotcub.org:/cvsroot/robotcub co iCub
For now, don't compile iCub but start installing YARP instead. ''(This is the most general approach which always works. However, since this machine does not have special iCub hardware to be found by YARP, like in the case of the PC104, then in this case we could've probably compiled straight ahead.)''
This twin server was purchased from Tetragon in June 2009. The box includes a SC808T-980 1U chassis (1U Twin size) with two twin X7DWT serverboards. Each of the two boards hosts an Intel Xeon 8-core processor (8 x E5405 @ 2.00 GHz). Each machine is an independent computer, having two hard disk drive drawers and its own power and reset buttons.
Memory: 4GB for each machine (sudo dmidecode --type 17 to see RAM speed and type).
For full system specifications, go here (PDF) or on [1] on tsunami.pt (archived page).
Next, we will explain how to configure the left part of the server, called icubbrain1. The settings for icubbrain2 will be just about the same, with the last octet of the IP address being 42 instead of 41. In general, we follow the guidelines at iCub machines configuration.
Boot
Boot the Ubuntu Server CD from an external USB CD drive. Press the 'Del' key if you need to access the BIOS boot order.
Sometimes, you have to manually confirm the usage of a 'cdrom' module within the installation (following all the default selections).
Network interface
icubbrain1 has two Gbit interfaces. First we plug an Ethernet cable into the first one (which turns on the "1" led in the chassis front). Then, when Ubuntu asks to choose between eth0 and eth1, we pick up eth0.
Network configuration
manually configure the internet connection (/etc/network/interfaces):
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.10.1.41
netmask 255.255.255.0
network 10.10.1.0
broadcast 10.10.1.255
gateway 10.10.1.254