Pc104: Difference between revisions
m (→Software: clarify and cleanup) |
m (→Software: CREATE_LIB_MATH -> YARP_COMPILE_libYARP_MATH) |
||
(31 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
''See [[pc104/Archive]] for information about | ''See [[pc104/Archive]] for information about previous setups.'' | ||
The '''pc104 CPU board''' is located into the iCub's head and | The '''pc104 CPU board''' is located into the iCub's head and it runs a full (read/write) Debian distribution that boots from a USB pen drive. | ||
= Booting and | = Booting and mounting = | ||
During boot, the pc104 does two things: 1) it loads a Debian Live USB Flash Drive with Persistence; 2) it mounts remote NFS shares from the [[iCub laptop]]. | |||
== | == USB Flash Drive == | ||
With respect to the standard image provided by the official iCub support, our configuration differs in the following files: | |||
.bashrc_iCub | |||
/etc/network/interfaces | |||
/etc/hosts | |||
/etc/fstab | |||
/etc/rc.iCub.d/mounts.list | |||
/etc/rc.iCub.d/S90_mount-remote-fs.sh | |||
/etc/timezone | |||
/etc/resolv.conf | |||
/etc/udev/rules.d/70-persistent-net.rules | |||
/etc/default/ntpdate | |||
== NFS shares == | |||
The mounted volume contains the yarp and iCub repositories (both code and binaries) and configuration files. The binaries are located in the respective '''build-pc104''' subdirectories. | |||
= Software = | = Software = | ||
* | * Dependencies for 640x480@30Hz images with Bayer encoding | ||
sudo apt install libraw1394-dev libdc1394-22-dev | |||
* yarp CMake configuration | |||
CMAKE_BUILD_TYPE Release | |||
CREATE_DEVICE_LIBRARY_MODULES ON | |||
YARP_COMPILE_libYARP_MATH ON | |||
ENABLE_yarpmod_portaudio ON | |||
ENABLE_yarpmod_serialport ON | |||
CREATE_OPTIONAL_CARRIERS | |||
ENABLE_yarpcar_bayer ON | |||
ENABLE_yarpcar_mjpeg ON | |||
* | * icub-main CMake configuration | ||
CMAKE_BUILD_TYPE Release | |||
ENABLE_icubmod_canBusAnalogSensor ON | |||
ENABLE_icubmod_canBusSkin ON | |||
ENABLE_icubmod_canBusVirtualAnalogSensor ON | |||
ENABLE_icubmod_canmotioncontrol ON | |||
ENABLE_icubmod_cartesiancontrollerclient ON | |||
ENABLE_icubmod_cartesiancontrollerserver ON | |||
ENABLE_icubmod_cfw2can ON | |||
ENABLE_icubmod_dragonfly2 ON | |||
ENABLE_icubmod_gazecontrollerclient ON | |||
ENABLE_icubmod_parametricCalibrator ON | |||
ENABLE_icubmod_sharedcan ON | |||
ENABLE_icubmod_skinWrapper ON | |||
ENABLE_icubmod_xsensmtx ON | |||
* yarp configuration | |||
# <code>yarp namespace /icub</code> | # <code>yarp namespace /icub</code> | ||
# | # <code>yarp conf 10.10.1.53 10000</code> (yarpserver runs on [[iCub laptop]]) | ||
The last command writes the information of the YARP server located on [[iCub laptop]] into the file specified by <code>yarp conf</code>, which is typically <code>/home/icub/.config/yarp/_icub.conf</code>. Warning: that command overwrites previous content. | |||
* tuning and optimization | |||
# make sure that <code>CMAKE_BUILD_TYPE=Release</code> for both yarp and icub-main | |||
# <code>cat /proc/sys/net/core/rmem_max</code> // should return 8388608 | |||
= Updating = | |||
In addition to yarp and icub-main, '''icub-firmware-shared''' must also be updated (these are scripts, not the firmware itself). | |||
In order to update the firmware, use the binaries in '''icub-firmware-build''' and follow the official iCub manual. | |||
= See also = | = See also = | ||
* [http:// | * [http://wiki.icub.org/wiki/The_Linux_on_the_pc104 The Linux on the pc104] | ||
* [http:// | * [http://wiki.icub.org/wiki/ICub_PC104_Linux_Image_-_Detailed_info ICub PC104 Linux Image - Detailed info] | ||
* [http://wiki.icub.org/wiki/Compilation_on_the_pc104 Compilation on the pc104] | |||
* [http://wiki.icub.org/wiki/Generic_iCub_machine_installation_instructions Generic iCub machine installation instructions] | |||
* [http://wiki.icub.org/wiki/CFW002_PC104_linux_driver CFW002 PC104 linux driver] | |||
[[Category:Vislab]] | [[Category:Vislab]] |
Latest revision as of 16:08, 28 July 2019
See pc104/Archive for information about previous setups.
The pc104 CPU board is located into the iCub's head and it runs a full (read/write) Debian distribution that boots from a USB pen drive.
Booting and mounting
During boot, the pc104 does two things: 1) it loads a Debian Live USB Flash Drive with Persistence; 2) it mounts remote NFS shares from the iCub laptop.
USB Flash Drive
With respect to the standard image provided by the official iCub support, our configuration differs in the following files:
.bashrc_iCub /etc/network/interfaces /etc/hosts /etc/fstab /etc/rc.iCub.d/mounts.list /etc/rc.iCub.d/S90_mount-remote-fs.sh /etc/timezone /etc/resolv.conf /etc/udev/rules.d/70-persistent-net.rules /etc/default/ntpdate
The mounted volume contains the yarp and iCub repositories (both code and binaries) and configuration files. The binaries are located in the respective build-pc104 subdirectories.
Software
- Dependencies for 640x480@30Hz images with Bayer encoding
sudo apt install libraw1394-dev libdc1394-22-dev
- yarp CMake configuration
CMAKE_BUILD_TYPE Release CREATE_DEVICE_LIBRARY_MODULES ON YARP_COMPILE_libYARP_MATH ON ENABLE_yarpmod_portaudio ON ENABLE_yarpmod_serialport ON
CREATE_OPTIONAL_CARRIERS ENABLE_yarpcar_bayer ON ENABLE_yarpcar_mjpeg ON
- icub-main CMake configuration
CMAKE_BUILD_TYPE Release ENABLE_icubmod_canBusAnalogSensor ON ENABLE_icubmod_canBusSkin ON ENABLE_icubmod_canBusVirtualAnalogSensor ON ENABLE_icubmod_canmotioncontrol ON ENABLE_icubmod_cartesiancontrollerclient ON ENABLE_icubmod_cartesiancontrollerserver ON ENABLE_icubmod_cfw2can ON ENABLE_icubmod_dragonfly2 ON ENABLE_icubmod_gazecontrollerclient ON ENABLE_icubmod_parametricCalibrator ON ENABLE_icubmod_sharedcan ON ENABLE_icubmod_skinWrapper ON ENABLE_icubmod_xsensmtx ON
- yarp configuration
yarp namespace /icub
yarp conf 10.10.1.53 10000
(yarpserver runs on iCub laptop)
The last command writes the information of the YARP server located on iCub laptop into the file specified by yarp conf
, which is typically /home/icub/.config/yarp/_icub.conf
. Warning: that command overwrites previous content.
- tuning and optimization
- make sure that
CMAKE_BUILD_TYPE=Release
for both yarp and icub-main cat /proc/sys/net/core/rmem_max
// should return 8388608
Updating
In addition to yarp and icub-main, icub-firmware-shared must also be updated (these are scripts, not the firmware itself). In order to update the firmware, use the binaries in icub-firmware-build and follow the official iCub manual.