--- Begin base install --- --Simple method wget http://web.barrett.com/support/WAM_Installer/sysroot-precise.tar.bz2 sudo tar xvjf sysroot-precise.tar.bz2 --Full method wget http://mirrors.us.kernel.org/ubuntu//pool/main/d/debootstrap/debootstrap_1.0.40~precise1_all.deb sudo dpkg -i debootstrap_1.0.40~precise1_all.deb mkdir sysroot sudo debootstrap precise sysroot http://ubuntu.media.mit.edu/ubuntu sudo chroot sysroot apt-get clean exit sudo tar cvjf sysroot-precise.tar.bz2 sysroot --- End base install --- --- Begin kernel build --- sudo mount --bind /dev sysroot/dev sudo mount --bind /proc sysroot/proc sudo mount --bind /sys sysroot/sys sudo chroot sysroot echo "deb http://security.ubuntu.com/ubuntu precise-security main" >> /etc/apt/sources.list echo "deb http://ubuntu.media.mit.edu/ubuntu precise universe" >> /etc/apt/sources.list apt-get update apt-get install language-pack-en-base apt-get install grub man gcc gdb make patch ncurses-dev wget screen openssh-server subversion rsync apt-get install g++ cmake python-dev libeigen2-dev libgsl0-dev libboost-dev libboost-program-options-dev libboost-python-dev libboost-thread-dev libboost-signals-dev libboost-math-dev libboost-regex-dev libboost-filesystem-dev libboost-date-time-dev apt-get clean cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2 wget http://download.gna.org/xenomai/stable/xenomai-2.6.1.tar.bz2 wget http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux_2.6.38-8.42.diff.gz wget http://kernel.ubuntu.com/~kernel-ppa/configs/natty/i386-config.flavour.generic wget http://web.barrett.com/support/WAM_Installer/adeos-ipipe-2.6.38.8-x86-2.11-02-barrett.patch wget http://web.barrett.com/support/WAM_Installer/menu.lst.2638 -O /boot/grub/menu.lst tar xjf linux-2.6.38.tar.bz2 tar xjf xenomai-2.6.1.tar.bz2 cd linux-2.6.38 gunzip ../linux_2.6.38-8.42.diff.gz -c |patch -p1 patch -p1 < ../adeos-ipipe-2.6.38.8-x86-2.11-02-barrett.patch ../xenomai-2.6.1/scripts/prepare-kernel.sh --linux=`pwd` --arch=x86 cp ../i386-config.flavour.generic .config yes "" |make oldconfig make ARCH=i386 menuconfig General setup: Local version => -ipipe, IRQ subsystem => no Support sparse irq (Geode) Processor type/features: no Symmetric multi-processing, Processor family => Pentium-III, no HPET Timer, no Enable -fstack-protector (Atom) Processor type/features: Processor family => Core2 Power management:ACPI:no Processor, no APM, no CPU Frequency scaling, no CPU idle PM Device Drivers:Input Device:Misc: no PC speaker (Geode) Device Drivers:Graphics support:Support for frame buffer:no Enable firmware EDID Real-time sub-system: add Shared interrupts, add Machine:SMI:Enable SMI, add Drivers:Serial:16550A, add Drivers:CAN:Philips:Standard ISA, PEAK PCI Card Kernel hacking: no Kernel debugging time make bzImage modules modules_install make install (keep existing menu.lst) make clean rm ../*.bz2 --- End kernel build --- --- Begin environment setup --- adduser robot password = WAM addgroup xenomai addgroup admin echo '%admin ALL=(ALL) ALL' >> /etc/sudoers usermod -G adm,cdrom,audio,video,plugdev,admin,xenomai robot echo 'WAM' > /etc/hostname echo '127.0.0.1 localhost WAM' > /etc/hosts echo 'America/New_York' > /etc/timezone dpkg-reconfigure -f noninteractive tzdata apt-get clean wget http://web.barrett.com/support/WAM_Installer/fstabAtom -O /etc/fstab wget http://web.barrett.com/support/WAM_Installer/interfacesAtom -O /etc/network/interfaces wget http://web.barrett.com/support/WAM_Installer/rc.isa -O /etc/rc.local exit sudo umount sysroot/dev sudo umount sysroot/proc sudo umount sysroot/sys --- End environment setup --- --- Format new disk --- umount /media/* sudo parted /dev/sdb (or wherever the new disk is) print (make sure this is the device you want to use) mklabel msdos mkpart primary ext2 1 64 mkpart primary ext4 64 8000 set 1 boot on quit sudo mkfs.ext2 /dev/sdb1 (or wherever the first new partition is) sudo mkfs.ext4 /dev/sdb2 (or wherever the second new partition is) --- Copy to CF and install bootloader --- sudo mkdir /media/cf sudo mount /dev/sdb2 /media/cf sudo mkdir /media/cf/boot sudo mount /dev/sdb1 /media/cf/boot sudo cp -av sysroot/* /media/cf sudo mount --bind /dev /media/cf/dev sudo mount --bind /proc /media/cf/proc sudo mount --bind /sys /media/cf/sys sudo chroot /media/cf cp /usr/lib/grub/i386-pc/* /boot/grub grub find /grub/grubenv <--look for the proper boot partition, probably 'hd1,0') root (hd1,0) <--use your boot partition here setup (hd1) <--use your boot device here (normally the part before the ',0') quit # Exit the chroot environment and unmount everything exit sudo umount /media/cf/dev sudo umount /media/cf/proc sudo umount /media/cf/sys sudo umount /media/cf/boot sudo umount /media/cf --- Install Xenomai user-space --- Remove disk from host PC Install disk in target PC Boot target PC --- (Geode BIOS setup) Enter the BIOS setup (press DEL during startup) Standard CMOS Features: Drive A = None Advanced Chipset Features: Video Memory Size = 8M PnP/PCI Configurations: IRQ Resources: IRQ-10 assigned to = Reserved Save & Exit Setup --- (End Geode BIOS setup) User: robot Pass: WAM sudo bash cd /usr/src/xenomai-2.6.1 ./configure && make && make install echo /usr/xenomai/lib/ | cat > /etc/ld.so.conf.d/xenomai.conf ldconfig exit --- Reboot required --- sudo shutdown -r now bash /usr/xenomai/bin/xeno-test (look for any errors, ctrl-c to exit) --- Install Barrett Technology Software --- cd # Get the Barrett-patched libconfig which supports simultaneous C/C++ bindings wget http://web.barrett.com/support/WAM_Installer/libconfig-1.4.5-PATCHED.tar.gz tar xzf libconfig-1.4.5-PATCHED.tar.gz cd libconfig-1.4.5 ./configure && make && sudo make install cd .. rm -Rf libconfig-1.4.5/ libconfig-1.4.5-PATCHED.tar.gz # Get the latest version of libbarrett wget http://web.barrett.com/support/WAM_Installer/libbarrett-1.1.0.tar.gz tar xzvf libbarrett-1.1.0.tar.gz cd libbarrett-1.1.0/ cmake . time make sudo make install cd .. rm -Rf libbarrett-1.1.0/ libbarrett-1.1.0.tar.gz # Get the WAM UDP daemon (for wamdiscover) sudo wget http://web.barrett.com/support/WAM_Installer/wamudpd -O /usr/local/sbin/wamudpd sudo chmod 744 /usr/local/sbin/wamudpd echo "Unnamed WAM" > /etc/barrett/serial sudo shutdown -h now --- Done! --- # Make images of the CF card partitions (boot/root) # sudo umount /media/* time sudo fsarchiver -v -z 7 -L "Kernel 2.6.38.2-ipipe, P3, no EDID" savefs wamBootGeode1204.fsa /dev/sdb1 time sudo fsarchiver -v -z 7 -L "Ubuntu 12.04, Xenomai 2.6.1, SocketCAN" savefs wamRootGeode1204.fsa /dev/sdb2