====== Installing Debian Lenny on the Cobalt RaQ4 ======
===== Prerequisites =====
* You need a farily working RaQ, i.e. no defective parts (except the odd fan)
* Tested and verified Serial console. The RaQ uses the following communiations settings on the first serial port (ttyS0, marked with a single dot): RS/232, 115200, 8, N, 1
* Working IDA/ATA harddrive.
* Working internet connection.
* Patience
===== Upgrade the ROM =====
Follow the guide at [[raq-romupgrade]]
===== Evaluate a netboot setup. =====
There are guides out there that tell you to do a bare-metal install of Debian onto a RaQ using netboot. I have not had any success using this method whatsoever, as there are always some kind of snag. However I do use Debian Etch Netboot to recover a RaQ if I install a kernel that does not boot. So personally, I would recommend setting up a netboot option as a functional "rescue"-solution. My guide is at [[raq-netboot]]
But really, it can wait until you have completed your first install...
===== Install Debian Lenny on a different computer =====
As previously mentioned, I have had problems doing netboot installs, so I prefer the "out-of-body"-install method. This simply implies:
* Remove the harddrive from the RaQ
* Mount the harddrive in an x86 PC
* Install Debian Lenny as you normally would.
It is important to note that wile doing the install, make sure you install on the device /dev/hda, and that all files needed to bring the system up (not counting /usr, /var and /home) needs to live on /dev/hda1.
Outside of that, install as you see fit. I prefer to install the **base** system only, perhaps including **standard**.
===== Get a Cobalt kernel =====
The kernel that ships with Debian Lenny is not suitable for booting the RaQ. So before you remove the harddrive from the “donor-PC”, you need to install a new kernel. This can be done by installing prebuilt kernel packages, or by compiling a kernel yourself.
The best approach((never trust a file from a public Wiki...)) is to compile the kernel yourself. My howto for Debian-compiling a kernel for the RaQ is located [[raq-kernel|here]]:
* **[[raq-kernel]]**
If you follow the [[raq-kernel|kernel compile howto]], the last steps of that is installing the kernel.
Alternatively, download my kernel-packages:
* [[http://defcon.no/files/cobalt3-kernel-2.6.26.8.tar.bz2]] RaQ Generation III
* [[http://defcon.no/files/cobalt5-kernel-2.6.26.8.tar.bz2]] RaQ Generation V
The tar-balls contain: kernel-image deb, kernel-headers deb, stripped & bzipped vmlinux file.
If you download the prebuilt files, install the deb packages, copy the vmlinux.bz2 from the tarball to /boot.
Then link up the System.map and initrd.img that the .deb install created:
dpkg -i linux-image-2.6.26.8-cobalt3_1_i386.deb
dpkg -i linux-headers-2.6.26.8-cobalt3_1_i386.deb
ln -s /boot/System.map-2.6.26.8-cobalt3 /boot/System.map
ln -s /boot/initrd.img-2.6.26.8-cobalt3 /boot/initrd.img
===== Prepare for RaQ mounting... =====
Update inittab to start a getty on ttyS0, and _not_ start VT's. The last part is simply because the RaQ does not have a KVM-console. We leave the first console enabled, however, in case you need to remove the drive and mount it in a "donor-PC" again later.
sed -e '/^#T0:23/s/9600/115200/' \
-e '/^#T0:23/s/#T0/T0/' -i /etc/inittab
sed -e '/getty 38400 tty/s/^/#/' -i /etc/inittab
sed -e '/^#1:2345:respawn/s/#//' -i /etc/inittab
Also, make sure /etc/securetty includes the line "ttyS0" to allow root logging in over serial console.
Debian uses udev and hotplug since, well, a long time now. It is set up to assign each ethernet adaper
a separate device name, based on the MAC-address and/or the kernel-driver used. So, to allow our RaQ to use
the ethernet device names eth0 and eth1 on first boot, we have to remove the udev-definitions of
"persistent devicenames". The definition for persistent net device names are located in /etc/udev/rules.d/70-persistent-net.rules.
Edit this file by hand, or use the following sed line:
sed -e '/^SUBSYSTEM=="net".*eth/D' -e '/^$/D' \
-e '/^# PCI device/D' \
-e '/^$/D' \
-i /etc/udev/rules.d/70-persistent-net.rules
Last, not related to serial console, but related to getting access to your RaQ, make sure you install SSHd:
apt-get install openssh-server
===== Boot installation on RaQ =====
After installing Debian Lenny on a different computer, and performing the preparations, it is time to move the disk to the RaQ itself.
After mounting the drive, make sure you hook up a serial console, so that you can view the boot process, and log in interactively to the RaQ itself.
===== Make the LCD do something =====
This secion will show up as soon as I have something to show ;-)
====== Links ======
=== RaQ hardware ====
Useful and general information is found on the following links
* http://wiki.parvi.org/index.php/Category:Cobalt_FAQs
* http://www.cobaltfaqs.com/index.php/RaQ_4
* http://www.gurulabs.com/ocontent/rhl-cobalt-howto/redhat.qube3.howto.9.html
* http://www.cyrius.com/debian/cobalt/index.html
=== Install guides ===
The "Defacto install guides" is at :
* http://www.timntina.com/debian-sarge-cobalt-install,
* http://www.cobaltfaqs.com/index.php/Debian_on_Cobalt
* http://www.impactmediaworks.com/index.php?page=30
Tips about serial-console setup, see
* https://help.ubuntu.com/community/SerialConsoleHowto
* http://www.vanemery.com/Linux/Serial/serial-console.html
=== "Known good" Kernels ===
In case of problems with kernel-compile and trouble-shooting, the following are kernels that can be "popped in place" to test..
* For the Raq3/4: http://www.osoffice.co.uk/linux/strongbolt-kernels/RaQ3-4/current/
* For the Raq550: http://www.osoffice.co.uk/linux/strongbolt-updates/RaQ550/kernel-updates/25.07.06/
The basis for the kernel-patching done in this walkthrough is at:
* http://wiki.parvi.org/index.php/Cobalt_Kernel_Patch
* http://files.parvi.org/gentoo-stuff/patches/cobalt-kernel-2.6.x/configs/
* http://files.parvi.org/gentoo-stuff/patches/cobalt-kernel-2.6.x/