General
General and brief notes on 'how I' do it. There are other ways...
Source
Download the kernel, I usually use The Linux Kernel archives. cd to the src directory (/usr/src) and make sure the existing linux entry is either removed, if it is a link, or renamed to say linux_2.X.Y. Unpack the downloaded kernel (E.g. tar zjf /usr/src/linux-2.X.Y.tar.bz2). This will create a new directory (E.g. linux-2.X.Y) link this new directory to linux E.g. ln -s linux-2.X.Y linux
If patching a previous kernel, the patches are applied to linux directory, so use the something on the lines of: -
<patchfile patch -p0
Build
To build a new kernel; cd into the source directory (/usr/src/linux) and run make xconfig and use the gui to configure all that is required ;-) ! I am being VERY vague here because if you don't know, or cannot infer what is meant by the terms/options in the gui, then don't do it!
Updating from minor versions e.g. 2.6.x to 2.6.x+1 copy the existing .config to the new source directory and run make oldconfig. This will use the previous settings for defaults and then only ask for values for new options.
Once the kernel is configured to your hardware compile it. Pre 2.6 kernels require a 'make dep' to rebuild the dependancies appropriate to your hardware and configured options. To compile and install the kernel and any modules use 'make' and then 'make modules-install'.
Once the kernel is built finish off with: -
cp arch/i386/boot/bzImage /boot/bzImage-2.X.Y
cp System.map /boot/System.map-2.X.Y
cp .config /boot/config_2.X.Y
rm /boot/System.map
ln -s /boot/System.map-2.X.Y /boot/System.map
cd /usr/include
mv linux linux.orig
mv asm asm.orig
ln -s /usr/src/linux/include/linux .
ln -s /usr/src/linux/include/asm .Edit the system files to use the new boot image. I use lilo. So edit the /etc/lilo.conf file and run the lilo command to implement the changes. Remember, never delete the previous running kernel, if something goes wrong with the new kernel, you would have to resort to using CD-ROM or floppy kernels to recover …
Post build
My setup requires re-building of some kernel dependant packages: -
First edit /etc/inittab; making the default run-level 3 prior to re-booting into the new kernel. Build the new packages and once satisfied return the default init level to 5.
Updates
02-Jan-2005 2.6.10
No problems.
21-Oct-2004 2.6.9
CDRW device fixed.
Rebuild of nVidia driver fails
NVidia driver depends on a previously static symbol. For now we get round this by a quick patch to nv.c defining the missing symbol.
#ifndef __VMALLOC_RESERV
# define __VMALLOC_RESERVE (128 << 20)
#endifProper fix is to apply new nVidia drivers when released.
15-Aug-2004 2.6.8.1
NFS fix.
CDRW problems (only writeable by root)
Use root or reboot to 2.6.7 or wait for 2.6.9
14-Aug-2004 2.6.8
Fixes and patches.
No problems encountered
30-Jun-2004 2.6.7
Fixes and patches. Updates include NTFS, USB, …
Problems encountered
Kernel panic
VFS: Cannot open root device ...
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on unknown-block...
Fix. After a few recompiles and some Internet searching I gave up and started again with a make clean; make oldconfig using 2.6.6's .config. I then re-enabled SCSI_PROC_FS and UFS_FS. This time it worked fine !
Corrupt boot-block.
During my attempts at fixing the above kernel panic I created and installed a bad lilo.conf (i.e. I accidentally renamed the boot device !). So when re-booting, instead of the usual 'loading....', it just gave '99 99 99...'
I tried to fix this by booting from CDROM, mounting the relevant partition and reverting the lilo.conf file. However, I could not the correct arguments (boot device mappings) for lilo so that it could overwrite the bad version.
Fix. I resorted to using the SuSE's 'repair' facility found in the installation section of the installation disk. I let it run in automatic mode. It found my previous linux installation (including my repaired lilo.conf) and re-installed a working boot mechanism ! (Be patient with it as it does an fsck of all partitions and it may delete entries in the /etc/fstab file as it progresses.)
11-May-2004 2.6.6
Fixes and patches. Updates include NTFS, USB, …
Problems encountered
- Unable to use vpnclient. /etc/init.d/vpnclient_init start reports
modules/2.6.6/CiscoVPN/cisco_ipsec (version 4.0.3.B) - invalid module
Fix. Updated to version vpnclient-linux-4.0.4.A-k9
05-Apr-2004 2.6.5
Many updates, fixes and patches. Updates include a DMA'd CDROM.
Problems encountered
- Amend 'append' value for 2.6.5 in lilo.conf, from hdb=ide-scsi to hdb=ide-cd
- Changed all links (/dev/cdrom, /dev/dvd) from /dev/sr0 to /dev/hdb
11-Mar-2004 2.6.4
Many updates.
Problems encountered
- Downloaded patched (for 2.6) version of vpnclient, which now works again.
- Sound card now working again.
28-Feb-2004 2.6.3
Problems encountered
- Sound card not working
04-Feb-2004 2.6.2
ACPI and USB updates.
No problems encountered
09-Jan-2004 2.6.1
Major USB update. This may now enable my Canon EOS 300D to connect...
Problems encountered
vpnclient does not work (current version is specifically for the 2.4 kernel) …
The EOS 300D problem was actually a problem with the EOS 300D not linux nor usb nor hotplug …
18-Dec-2003 2.6.0
Problems encountered
- hwscan hangs machine
Initially thought problems with hanging were caused by interactions between the new pre-empting kernel and reiserfs. Thus, I converted all reiserfs file systems to ext3. (See New partition table.) This made no difference ! So stopped hwscan from running at boot time. This works okay.
- NVidia drivers not available for 2.6
Used an unofficial 5328 release (beta?) which works fine.
- Sound not working
Problems with changes to modules.conf,... etc.
Compiled sound card driver into kernel (no modules, thus no module problems !)- khttpd
No longer in the kernel. Remove boot scripts.
Notes
Major USB update going on for imminent(?) release of 2.6.112-Dec-2003 2.4.23
No problems encountered
25-Aug-2003 2.4.22
No problems encountered
ACPI works again !
15-Jun-2003 2.4.21
No problems encountered
All sorted out in the first kernel upgrade.
03-Mar-2003 2.4.20
Problems encountered
- sound
Incorrect /etc/modules.conf (only worked in 2.4.19 due to SuSE supplied module)
Corrected modules.conf (this fix also works for the SuSE supplied 2.4.19)- frame buffer
use vesafb (the 'correct' riva driver does not work.)
- ide
Set bus speed in kernel args in lilo.conf idebus=66
- SMB mounts
Requires 'IP filters'. Rebuild kernel with appropriate options set.
- modem
Link '/dev/modem -> /dev/ttyS4' disappeared. Manually recreate. add 'i82365 bridge' module support, rebuild kernel modules.