The Sidious CD includes three kernels. The default one, which the boot CD uses, and first installs, is fine for most cases. There are several cases where the default kernel installation is not optimal:
The following table summarizes the differences between the kernels:
ia32 Linux Kernel Features | 2.4.26-si4 | 2.4.26-i386 | 2.4.26-smp4 | 2.4.19-smp8 |
(default) | (servers) | (legacy) | ||
Critical Security | same as 2.4.26 | |||
386 CPUs supported | Y | |||
"586" (non-MMX pentiums) | Y | Y | ||
Symmetric Multi-Processing | Y | Y | ||
Can use memory 1GB-4GB | Y | Y | ||
Can use memory 4GB-64GB | Y | Y | ||
Works with OLD VMWare | Y | try | ||
APM Power Management | M(1) | M(2) | M(2) | |
ACPI Power Management | Y | |||
Software Suspend | Y | |||
File Quota Support | Y | Y | ||
RAID Support | M | Y | Y | Y |
IP Multicast | Y | Y | Y | |
IP Advanced Router options | Y | Y | Y | |
IP Syn Cookies | Y | Y | Y | |
IP NAT Local support | Y | Y | ||
IDE Auto-DMA | Y | Y | Y | |
IDE Promise tuning | Y | Y | Y | |
IDE Slaves Reliable? | ?(4) | ?(4) | N(4) | Y |
SCSI Support | M(3) | Y | Y | Y |
XFS Support | M(3) | Y | Y | Y |
Supermount Support | M | M | M | M |
NFS3 Client Support | M | Y | Y | Y |
NFS-Root Support | Y | Y | Y | |
NFS3 Server | M | M | M | M |
Frame Buffer Support | Y | Y | Y | |
Net, USB, I/O drivers | M | Y | Y | Y |
The default 2.4.26-si4 kernel will boot with ACPI Power Management support enabled. The default /etc/lilo.conf configuration includes an entry sidious-noacpi which should be used before enabling the APM options in reconfig, because ACPI and APM support cannot be loaded at the same time. APM is required for suspending to RAM, and may also be the only way to get the backlight to turn off on some laptops.
If your BIOS does not support APM, or if suspending to RAM does not conserve enough power (e.g., your battery dies while suspended) then suspending to the swap partition is probably a good option. For this two entries in /etc/lilo.conf must be uncommented and edited so that resume2= points to your largest swap partition. Use ``reconfig'' to make sure the ``Start Power Management Daemon'' option is selected.
The rsync-sidious script will never change your kernel version when upgrading. For laptops, if everything is working, you don't want to change your kernel version. If you need to test a new kernel, it can be a little tricky. Laptops should be running the 2.4.*-si* kernels. These kernels are compiled with most support as modules. Even XFS, the default root filesystem type, is built as modules. A subset of the modules is contained in an initial RAM disk that is loaded during the boot process. The reason for this complication is mainly to allow special mount options to be passed to the kernel for the root-XFS partition, without which your disk would be spinning up all the time. (See Appendix A for details on exactly how this is done.) A matching initial RAM disk for each -si* kernel is provided. The name of the image is:
/boot/kernel-2.4.*-si*.initrd
After an initial installation, /etc/lilo.conf is not touched by upgrades. Here are the steps to take to try a new kernel on a laptop (or desktop, but desktops do not usually require the extra complication of an initrd.) Let's say you are running 2.4.26-si4 and 2.4.27-si1 is out and you want to try it:
. . . image = /boot/kernel-2.4.26-si4 label = sidious initrd = /boot/kernel-2.4.26-si4.initrd append = ``root=0100 init=/etc/initrc pci=noacpi'' . . .
would get ammended with:
. . . image = /boot/kernel-2.4.26-si4 label = sidious initrd = /boot/kernel-2.4.26-si4.initrd append = ``root=0100 init=/etc/initrc pci=noacpi'' image = /boot/kernel-2.4.27-si1 label = sidious-new initrd = /boot/kernel-2.4.27-si1.initrd append = ``root=0100 init=/etc/initrc pci=noacpi'' . . .
Leave both sections in there so the old kernel can still be booted also, if there is a problem.
# lilo Added sidious * Added sidious-new
Whenever selecting any image=*-si, the initrd= line must point to an initrd that contains matching modules for that kernel, and a proper modules.dep file. To verify this manually, first load the loop driver (modprobe loop) and then mount the .initrd file as if it were a disk:
# mount -o loop,ro /boot/kernel-2.4.27-si1.initrd /mnt
Then check to see that /mnt/lib/modules/2.4.27-si1/ (or whatever version kernel you are trying to switch to) has the right modules. For example:
# ls -l /mnt/lib/modules/2.4.27-si1/ -rw-rw-r-- 1 root root 19520 Apr 26 05:13 apm.o -rw-rw-r-- 1 root root 2088 Apr 26 05:13 dummy.o -rw-rw-r-- 1 root root 14128 Apr 26 05:13 loop.o -r--r--r-- 1 root root 131 Apr 26 12:48 modules.dep -rw-rw-r-- 1 root root 522356 Apr 26 05:13 xfs.o
If you mount the initrd without the ro option, it is possible to add new modules to the disk image manually, but this is not how it is done normally. The .initrd is actually produced by typing
make SIDIOUS_CONFIG=./etc/sidious.config.xfs-initrd install
in the Sidious 8 (embedded linux) development tree. Ask Sidik about this.
Servers use the kernel-2.4.*-smp[246...] (and if they are uni-processor, they still use this kernel, but with the ``noapic'' boot option if required by the BIOS or chipset.) To try a different kernel, change the entry in /etc/lilo.conf, re-run lilo, and reboot. It is possible to add an entry to /etc/lilo.conf so that the old kernel can be selected from the boot menu in case the new kernel does not boot.
Net-booted hosts get their kernel from the tftpboot directory on their boot server. This directory contains etherboot-2.4.*-smp and etherboot-2.4.*-up kernels, which are just versions of the kernel-2.4.*-smp image run through etherboot with some kernel command line options. Edit /etc/dhcpd.conf.HOSTNAME on the boot server to select a different kernel for a net-booted client. After editing the dhcpd.conf file, be sure to restart the dhcpd:
server# /etc/rc.d/rc.nfsd
(Note: The dhcpd does not understand the HUP signal.)