Autonomous Underwater Vehicles : AUV Software Install on Debian 4.0 This page last changed on Mar 31, 2009 by tm. #### Debian 4.0 (Etch) Install Warning: 5GB harddisk will run out of space if config'd during debian install for separate /home partition when building linux kernel to config the serial port. Debian install time: ~45 min depending on harddisk format time and machine speed Burn DVD with Debian 4.0 r7 net install and boot internet connected PC from DVD Hostname: mvc-debian4 Domain: shore.mbari.org Partitioning: Guided - use entire disk. Either "all files in one partion' (or 'separate /home partition). This creates ext3 file system in the partitions. users: auv (for development) and dorado1 (for runtime) Use network mirror for complete package list (if internet connected) Software install: For embedded Linux machine Standard (only), For desktop development Standard+Desktop Install Grub to the master boot record Remove DVD and allow boot from harddisk Standard installs require additional debian packages, these are installed by running the script included in auv-pkgs/debian-pkg directory. Login as root and type: source /home/dorado1/prj/auv-pkgs/debian-pkg/deb-packages Java Installation Create a java installation specific to the auv-linux and auv-autonomy development and decouple from the debian system java: Install in a named directory in opt, example: /opt/jdk_1.6u12. Download jdk to /home/dorado1/tools/java login as root and enter root password. Change directory to /opt. Type: cd /opt cp /home/dorado1/tools/java/jdk-6u12-linux.i586.bin . Change the permission of the bin file to be executable. Type: chmod a+x jdk-6u12-linux-i586.bin Verify that you have permission to execute the file. Type: ls -l Start the installation process.Type: ./jdk-6u12-linux-i586.bin Press the spacebar to display the next page. At the end, enter yes. For this procedure the jdk is installed in the /opt/jdk1.6.0_12 directory. When the installation has completed, you will see the word Done. exit from root back to user dorado1 In the dorado1 user profile, set the java environment variable to /opt/jdk_1.6u12 #### AUV-Linux Install and Setup Setup the auv-linux development environment (build and install auv-pkgs (1.5hrs), auv-shared and auv-linux) as user 'auv' or 'dorado1' create the 'prj' directory. mkdir /home/auv/prj. cd /home/auv/prj export CVSROOT=':pserver:tm@moonjelly.shore.mbari.org:/home/cvs' cvs login cvs checkout auv-pkgs cvs checkout auv-shared cvs checkout auv-linux cd /home/auv/prj/auv-pkgs edit 'set-auv-env' and make appropriate edits to match the install directory (ex. /home/dorado1/prj) source set-auv-env (or ". set-auv-env") edit /home/auv/.bash_profile, add source /home/auv/prj/auv-pkgs/set-auv-env for persistance setup, build and install auv-pkgs su root cd $AUV_PKGS . 1_omniORB.bat . 2_omniNotify.bat . 3_gctpc.bat . 4_apr.bat . 5_apr-util.bat . 6_log4cxx.bat . 7_netcdb.bat . 8_newmat.bat . 9_cppunit.bat . final.bat (changes owner ship of prj directory to 'auv' As root, add auv startup script to /etc/init.d: /etc/init.d/auv-startup.sh #!/bin/sh # auv startup script # initialize Posix mqueue infrastructure mkdir /dev/mqueue mount -t mqueue none /dev/mqueue chmod 777 /dev/mqueue chmod a+x auv-startup.sh Then (as root) update the startup sequence: update-rc.d -f auv-startup.sh start 80 2 3 4 5 . #** Note to remove: update-rc.d S80auv-startup.sh remove to disable the script - rename S80auv-startup.sh to K80auv-startup.sh. read the README in /etc/rcS.d/README exit back to user 'auv' build auv-shared in auv-shared/utility/Makefile - change LIBPATH to: LIBPATH = $AUV_PKGS/omniORB/build/lib/ apt-get install xutils-dev to get gccmakedep build auv-linux edit taskIF Makefile - comment out idlj and javac lines Run supervisor (this creates logs/latest link) from auv-linux/onboard, run supervisor -proc sampleConfig/simprocesses.cfg -plan sampleConfig/simWaypoint.cfg ##### Autonomy Software checkout: cd /home/dorado1/prj svn co svn+ssh://kahuna.shore.mbari.org/svn/repos/TREX/trunk TREX copy Europa from threadfish (Yikes! NASA version is moving ahead of TREX) Build failed (jam in TREX) due to missing boost regex loadable module. To resolve this, a debian package was installed (developer version) which is a bit of a sledge hammer. Need to determine of this is a standard component of the OS or a developer package specific to TREX (judged it to be an OS component) apt-get install libboost-regex-dev Build failed due to libSystem.so missing Fix: add $PLASMA_HOME/lib to LD_LIBRARY_PATH Rebuilding the linux kernel to enable the serial drivers on the Xtreme PC104 serial card (start 3:45 Note: Procedure for Xtreme 104 12 port serial card is at http://www.connecttech.com/ftp/installguides/s_install_EC-LN26.htm&nbsp; logged in as root cp serial.conf /etc cd /usr/src tar jxf linux-source-2.6.18.tar.bz2 cd linux-source-2.6.18 make clean && make mrproper uname -r to get /boot/config-'uname -r' name cp /boot/config-2.6.18-6-686 ./.config (copy the previous kernel config) make menuconfig Go to Load an Alternate Configuration File (page down) and choose .config (which contains the configuration of your current working kernel) Device Drivers --> Character devices deselect (no *) the 'Non-standard serial port support (config: CONFIG_SERIAL menuconfig: (Character Devices -> Standard/generic (dumb) serial support) config: SERIAL_8250 menuconfig: (Device Drivers -> Character Devices -> Serial drivers -> 8250/16550 and compatible serial support) config: CONFIG_SERIAL_8250_EXTENDED menuconfig: (Device Drivers -> Character Devices -> Serial drivers -> Extended 8250/16550 serial driver options) config: CONFIG_SERIAL_8250_MANY_PORTS menuconfig: (Device Drivers -> Character Devices -> Serial drivers -> Support more than 4 legacy serial ports) config: CONFIG_SERIAL_8250_SHARE_IRQ menuconfig: (Device Drivers -> Character Devices -> Serial drivers -> Support for sharing serial interrupts) I also enabled Number of 8250/16550 serial ports to register at runtime to be 12 (was 4), this was not in manufacturers instructions. make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers (note the space after custom (your string) and kernel_image) After the append to version, you can write any string (replace custom with your string). Restrictions are all lower case and must not contain whitespace or special chars (dash ok). dpkg -i linux-image-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb dpkg -i linux-headers-2.6.21.3-custom_2.6.21.3-custom-10.00.Custom_i386.deb Optional: Remove (comment out) the unwanted kernel from /boot/grub/menu.lst. The board will boot the newly built kernel so no action required. serial.conf was editted to change IRQ from 10 to 9 as there was a PC104 reconfig at some point. To finish workstation setup (if you want to run debian as a workstation with DHCP and seen on MBARI network do the following: First, see if your host name is set correclty using the following commands: uname -n hostname -a hostname -s hostname -d hostname -f hostname edit /etc/network/interfaces. Add the line 'hostname mvc-debian4.shore.mbari.org' under iface eth0 inet dhcp iface eth0 inet dhcp hostname mybox.mydomain.com In /etc/dhcp3/dhclient.conf, uncomment and edit #send host-name "andare.fugue.com"; To auto start omniNames and omniNotify services at bootup: create a file called 'startCorba.sh' #!/bin/bash # Start CORBA (omniORB and omniNotify) services - name service and notification service. # . /etc/init.d/functions export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):/usr/local/lib export OMNIORB_HOME=/home/auv/prj/auv-pkgs/omniORB export OMNIORB_CONFIG=$OMNIORB_HOME/omniORB.cfg export OMNINAMES_LOGDIR=$OMNIORB_HOME/nameServiceLog export OMNINOTIFY_DIR=/home/auv/prj/auv-pkgs/omniNotify # Start name service echo "Start name service" /usr/local/bin/omniNames & # Start notification service echo "Start notification service" /usr/local/bin/notifd -c $OMNINOTIFY_DIR/channel.cfg & make sure startCorba has execute permissions (chmod a+x startCorba.sh) Create a symbolic link using update-rc.d (Debian command) mvc-debian4:/etc/init.d# update-rc.d startCorba defaults Adding system startup for /etc/init.d/startCorba ... /etc/rc0.d/K20startCorba -> ../init.d/startCorba /etc/rc1.d/K20startCorba -> ../init.d/startCorba /etc/rc6.d/K20startCorba -> ../init.d/startCorba /etc/rc2.d/S20startCorba -> ../init.d/startCorba /etc/rc3.d/S20startCorba -> ../init.d/startCorba /etc/rc4.d/S20startCorba -> ../init.d/startCorba /etc/rc5.d/S20startCorba -> ../init.d/startCorba TODO: Get rid of boot up issues (kahlua audio, etc.) that are relics from installing on workstation Moving the harddrive from a workstation to the AUV (Lippert Coorunner (II?) AMD Geode PC104) Before shutdown on workstation (just prior to move), delete the ethernet address bound in the file /etc/udev/rules.d/z25_persistent-net.rules). If this file is not deleted, the eth0 interface will not come up and a message at boot "SIOCSIFADDR: no such device eth0" with no eth0 will result ifup eth0 will also show the error Network Settings (/etc/network/interfaces) change from workstation setup to auv setup (dhcp to static and mvc-debian4 to mvc-debian for AUV) edit /etc/hosts and change mvc-debian4 to mvc-debian edit /etc/dhcp3/dhclient.conf to add the following line: send host-name "foce2.shore.mbari.org" 127.0.0.1 localhost.localdomain localhost 134.89.32.16 mvc-debian.shore.mbari.org mvc-debian hostname mvc-debian.shore.mbari.org copy the interfaces (see attachment to this wiki) file to /etc/network address 134.89.32.16 netmask 255.255.254.0 gateway 134.89.32.1 broadcast 134.89.32.255 to check the hostname is set properly uname -n hostname -a hostname -s hostname -d hostname -f hostname For future apt-get usage - edit /etc/apt/sources.list and comment out the cdrom drive. This will get packages by ftp from debian mirror. Notes: Corba It might be better to pull in the omniORB4 from Debian since there are build errors and complexity associated with omniORB. The default config file location is /etc/omniORB4.cfg. Looks like the serial.conf file borrowed from debian 3.1 is not setting up the serial ports correctly - not sure if this was ever tested (likely not). Resolution: Need to rebuild the linux kernel to enable standard serial, etc. Instructions added above Tar up the built prj directory for transfer to another hard disk: tar -pczf auv-prj-built.tar.gz prj Debian Packages required to build auv-linux and TREX: apt-get install ant apt-get install ant-optional apt-get install autoconf apt-get install autogen apt-get install automake apt-get install binutils apt-get install bison apt-get install cvs apt-get install doxygen apt-get install flex apt-get install g++ apt-get install libtool apt-get install make apt-get install subversion apt-get install libtool apt-get install gdb apt-get install openssl apt-get install ssh apt-get install minicom apt-get install python-all apt-get install python-all-dev apt-get install lirc setserial apt-get install linux-source-2.6.18 apt-get install kernel-package libncurses5-dev fakeroot wget build-essential apt-get install xutils-dev apt-get install linux-doc-2.6.18 apt-get install linux-manual-2.6.18 apt-get install manpages-dev apt-get install xutils-dev apt-get install jam apt-get install swig apt-get install libboost-regex-dev

Document generated by Confluence on Feb 04, 2026 08:05