The Cobalt Hacking FAQ Tim Hockin cobaltfaq@hockin.org Q: Is this FAQ official? A: Hell no. I wrote this so I'd stop getting questions so often. Q: Does this FAQ cover MIPS hardware? A: No, this document just x86 compatible hardware. That is: * RaQ 3 * RaQ 4 * Qube 3 * RaQ XTR * RaQ 550 Q: What hardware is in my Cobalt? A: Cobalt hardware us roughly broken into three generations: 2000 series (MIPS based), 3000 series or GEN_III (K6 based), and 5000 series or GEN_V (Pentium III based). 2000 series systems are beyond the scope of this document. 3000 series systems are: RaQ 3, RaQ 4, Qube 3. 5000 series systems are: RaQ XTR and RaQ 550. * RaQ 3 and RaQ4 (3000 series): - AMD K6-2 processor (300 or 450 MHz) - ALi M1541/1533 chipset - 2 PC100 DIMM slots - optional NCR 53c875 SCSI - 1 optional 32 bit PCI slot - 1 or 2 Intel 82559ER 10/100 ethernet controllers - 1 or 2 ATA33 disks - 1 USB 1.1 port - 2 RS232 serial ports * Qube 3 (3000 series): - AMD K6-2 processor (300 or 450 MHz) - ALi M1541/1533 chipset - 2 PC100 DIMM slots - optional NCR 53c875 SCSI - 1 32 bit PCI slot - 2 National Semiconductor DP83815 10/100 ethernet controllers - 1 or 2 ATA33 disks - 1 USB 1.1 port - 1 RS232 serial port * RaQ XTR (5000 series): - Intel Pentium III (Coppermine only) processor - 1 extra CPU socket with terminator - ServerWorks LE chipset with OSB4 south bridge - 4 PC133 DIMM slots (registered ECC DIMMs required) - 1 32/64 bit PCI slot - 2 National Semiconductor DP83815 10/100 ethernet controllers - 2 HighPoint HPT370 ATA100 IDE controllers - 1-4 ATA100 disks - 1 USB 1.1 port - 2 RS232 serial ports * RaQ 550 (5000 series): - Intel Pentium III (Coppermine or Tualatin) processor - ServerWorks LE chipset with CSB5 south bridge - 2 PC133 DIMM slots (registered ECC DIMMs required) - 1 32/64 bit PCI slot - 2 National Semiconductor DP83815 10/100 ethernet controllers - 1 or 2 ATA100 disks Q: Can I put a second CPU in my RaQ XTR? A: Not reliably. There are issues with the chipset and motherboard that may cause the system to lockup, crash, or corrupt data. Newer flash ROM versions should support SMP, if you decide to try anyway. Q: Can I run a 2.4.x kernel on my Cobalt? A: Yes! RaQ 550 systems ship with a 2.4.x kernel already, and need no special preparations. All the other systems ship with a 2.2.x kernel, and need some extra work to ready them for a 2.4.x kernel. See ftp://ftp-eng.cobalt.com/pub/users/thockin/2.4 for more information. Q: Can I run a 2.6.x kernel on my Cobalt? A: I have never tried. As far as I know, no one has ported the Cobalt-specific code to the 2.6 kernel. I'd love to do it, if someone wanted to fund it ;). Q: How do I tell what version of the flash ROM do I have installed? A: If your system is alive, you can run the 'cmos' tool to check: cmos -c romrev If your system is not alive, you'll need to attach a serial console, and check as the system boots. Q: How do I enable/disable the serial console? A: The console state can be changed via software, with the 'cmos' tool or with a special button held at startup. To see the state of the console setting with the 'cmos tool: cmos -c console To change the console setting: cmos -c console [on|off] You must reboot for the change to take full effect. The console setting can also be toggled by holding a special button while the system powers on. For 3000 series systems, the special button is the 'Password Reset' button (the little recessed button). For 5000 series systems, the special button is the left arrow (these systems do not have a 'Password Reset' button). Hold the button down, then power on the system. Keep the button pressed until you see the message "console ON" or "console OFF" appear. This process is a toggle. If you do it again, it will change the setting back. Q: What serial console settings should I use? A: The serial console is set to 115200 bits per second, 8 data bits, no stop bit, 1 parity bit. These settings are hard coded. Q: How do I restore the CMOS? A: You should never need to do this. Restoring the CMOS will return the system to it's unconfigured state. It will lose it's serial number as well as the current boot configuration. For some systems, this means it will attempt to boot from the network. If you still want to do this, power the system off, hold down the 'E' button, and power the system back on. You will eventually see a message that says "CMOS restored". Q: How do I get to the LCD boot menu? A: Hold down the 'S' button while powering the system on. You will eventually be presented with a menu. Use the 'S' button or the up/down or left/right buttons to navigate the menu. Use the 'E' button to select options or sub-menus. Q: How do I upgrade the flash ROM? A: See ftp://ftp-eng.cobalt.com/pub/users/thockin/2.4 for instructions. Q: Where can I get new flash ROM versions? A: There are two options. Flash ROM images that have been tested by Sun/Cobalt are available at ftp://ftp-eng.cobalt.com/pub/users/thockin/2.4 - read the docs. The Cobalt ROM source was also released under the GPL, and has seen some development outside of Sun/Cobalt. Check http://sourceforge.net/projects/cobalt-rom for the latest. Q: Where can I get source code for the Cobalt ROM? A: http://sourceforge.net/projects/cobalt-rom Q: What boot and root options do I have? A: That depends on your flash ROM version. The flash ROM stores the desired boot device in CMOS, but may not use it, depending on the boot option selected. The 2.3.x flash ROMs can boot from: * Disk: the kernel image is read from the boot device's / or /boot. The boot device is also the root device. * ROM: the kernel image is read from flash ROM, but mounts the boot device as the root filesystem. * Net: the kernel image is read from flash ROM, but mounts an NFS share as the root filesystem. The 2.9.x and 2.10.x flash ROMs can boot from: * Disk, ROM, and Net, as in 2.3.x * Net/Net: the kernel image is read from an NFS share, which is also mounted as the root filesystem. * Settings: the kernel is read from the specified kernel source. The specified filesystem source is mounted as the root filesystem. For example, it is possible to load a kernel from disk, but mount an NFS share as the root filesystem. Q: How do I change the boot/root device? A: Either use the 'cmos' tool or the LCD boot menu. To use the 'cmos' tool: cmos -c bootdev [dev] (e.g. hda1 or md1) To use the LCD boot menu, navigate to the "Config boot disk" option, then select the device you want. If the device you want is not listed, you will have to use the serial console ROM interface, or the 'cmos' tool. Q: How do I change the default boot method? A: Either use the 'cmos' tool or the LCD boot menu. To use the 'cmos' tool: cmos -c defboot [d|r|n] (disk, rom, or network) To use the LCD boot menu, navigate to the "Configure boot" option, then select the method you want. Q: What version of the flash ROM should I use? A: You should stick with whatever you have unless it doesn't work. Seriously, flashing the ROM is risky business, and if it fails, the system is dead until you solder in a new flashrom. If you need to upgrade because of a ROM bug, you should upgrade to the latest version in your current series. 2.3.x ROMs should stay 2.3.x. If you want to upgrade beyond your current ROM series (the most likely case being that you want to boot a newer kernel), you should upgrade to the latest 2.9.x or 2.10.x ROM. 2.9.x ROMs are well tested and should work in all systems, provided you run a recent kernel. 2.10.x adds a few minor things, like ext3 support. These should also work in all systems. Q: What size disks can I put in my Cobalt? A: All Cobalt systems used LBA24 disk controllers. This means that the largest disks you can put into a Cobalt are approximately 137 GB. Even if you put LBA48 capable disks into your system, it will not work. In fact, putting LBA48 disks on an LBA24 controller may cause some kernel version not to boot at all (see 'My Cobalt hangs at "Partition check:"'). Q: Can I install Red Hat on my Cobalt? A: Yes. See http://www.gurulabs.com/rhl-cobalt-howto/ for one method. Q: Can I install Debian/Slackware/whatever on my Cobalt? A: Maybe. See http://www.traumatized.org/linux/cobalt/index.php for some information, or just use google. Google is your friend. If it isn't in google, then I don't know. Q: Can I use ext3 on my Cobalt? A: Yes, but you need flash ROMs from the 2.10.x series. Q: My Cobalt hangs at "Partition check:". Why is this? A: The only known cause of this is an alignment of couple things. Firstly, you put LBA48 capable disks into your Cobalt (e.g. ATA133). Secondly, you are trying to boot a 2.4.19 kernel. The 2.4.19 kernel was the first kernel to introduce LBA48 support. However, it did not handle the case of an LBA48 disk on an LBA24 controller (such as in Cobalts) very well. The result is that the kernel is trying to send LBA48 messages to the disk, but not getting any reply, and hanging when it tries to read the disk. You can either use LBA24 (e.g. ATA100) disks, or you can revert to a kernel before 2.4.19, or you can get a kernel newer than 2.4.19, if one is available. Q: I'm compiling a kernel, but the build complains about "as86: Command not found"! A: Don't build a bzImage. Cobalt's boot from a gzipped or bzip2ed vmlinux. Q: I installed (some distribution) on my Cobalt, but it hangs when starting 'init'! A: It could be that you've installed an i686 libc (or more) on a 3000 series Cobalt. The 3000 series systems need i386 binaries.