Kernel 2.6.0-test4 on RH9:

I have been a linux user for many years now. Once the 2.6.0-test series of kernels were released, I figured that it was time to upgrade my main (work) box, to something a bit more functional. Under the old 2.4.x series, I was using OSS for sound, which caused lots of problems with my soundcard, including bizarre things like having to restart X after playing Quake3. So, I decided that it was time to upgrade, and over all, I'm pretty happy with it.

Following is how I went about it...

Update: I've fixed all the dead links due to the lack of a directory index.

Update: Thanks to Chris, if the underneath looks too tricky, and you'd just like to get on with it and build the kernel, or you'd even like to just use a precompiled kernel, you can get it at

Update: 2.6.0-test5 is now working, and ALSA works really well with it. See here for details!

Update: I do not use RedHat/Fedora anymore, and the 2.4.x series of kernels are probably mainly used now in cases where upgrades to 2.6.x would be unlikely. This page is rather out of date. Please don't be surprised if something with it is now wrong. To my knowledge it's still ok, but YMMV.

Stuff To Do Before you Compile:

Get the kernel from a mirror!

Firstly, you have to compile modutils, otherwise your 'make modules' will fail with many unresolved symbol errors. You can get modutils from here, or from this local mirror. I used version 0.9.13 and it worked fine.

This is how I did it:

	$ tar jxf module-init-tools-0.9.13.tar.bz2
	$ cd module-init-tools-0.9.13
	$ ./configure --prefix=/
	$ make
	$ su
	Password: [entered my password]
	# make moveold
	# make install
	# ./generate-modprobe.conf /etc/modprobe.conf

It's really important to do a "make moveold". This backs up your current modutils install by appending .old to their names. If you manage to break modutils, it's probably a good idea to have a working backup :)

After this, we're ready to start compiling...


It's probably a good idea to compile USB support as modules. I've built sound support right into the kernel, and it appears to be working fine. (I'm on a Dell Inspiron 8100, with an ESS Maesto3).

Here's my kernel configuration - I'd suggest that you use your own though... This one's for a Dell Inspiron 8100 :)

After the compile:


After upgrading to 2.6.0-test4, RPM started hanging. Thankfully, I found the solution on a page about 2.6.0-test2, which is linked to in the links section.

rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db3 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm
no packages

I managed to fix this by export LD_ASSUME_KERNEL=2.2.5 If you are using a different shell, the equivalent will fix it too, of course :)

For a permanent fix, I added it to /etc/bashrc


To have this working, you'll need to edit /etc/rc.sysinit Replace all occurances of /proc/ksyms with /proc/kallsyms


To have SysFS working, you'll need to do five things:

1. Create /sys

2. Edit /etc/rc.sysinit (yes, again!)

You'll need to add mount -f /sys on the line underneath mount -f /proc
After action $"Mounting proc filesystem: " mount -n -t proc /proc /proc add:
action $"Mounting sysfs filesystem: " mount -n -t sysfs /sys /sys to /etc/rc.sysinit

3. Do: echo "none /sys sysfs defaults 0 0" >> /etc/fstab

4. Find the function halt_get_remaining in /etc/init.d/halt, and change

awk '$2 ~ /^\/$|^\/proc|^\/dev/{next}


awk '$2 ~ /^\/$|^\/proc|^\/sys|^\/dev/{next}


As I compiled USB support into the kernel, I just commented out the USB module loading section in /etc/rc.sysinit However, if you'd like to use modules, which would probably be best, I suggest that you see Thomer Gil's 2.6.0-test2 page


As I also compiled this into the kernel, I created a /etc/aumixrc file, containing the following:


Obviously, customise to your own liking. I created this file so that RedHat wouldn't keep overwriting it with 0 volume, as the do to /etc/.aumixrc

You then need to add the following to /etc/rc.local to have sound load on startup.

/bin/aumix-minimal -f /etc/aumixrc -L >/dev/null 2>&1;


You'll need to edit /usr/bin/

  1. Replace all occurances of /proc/ksyms with /proc/kallsyms
  2. Untar vmnet.tar in /usr/lib/vmware/modules/source
    • Edit bridge.c
    • On line 368, change: atomic_add(skb->truesize, &sk->wmem_alloc); into atomic_add(skb->truesize, &sk->sk_wmem_alloc);<
    • On line 618, change protinfo into sk_protinfo
    • Likewise, on line 817, change protinfo into sk_protinfo
  3. Tar the vmnet directory, and replace vmnet.tar
  4. Run /usr/bin/ - it should run without a problem.

NVIDIA Drivers:

The NVIDIA Drivers caused the biggest problem that I had. I had to patch the source and recompile them manually. Download the latest NVIDIA drivers from, and grab the patch from or from a local mirror here.

I then needed to do the following:

	$ sh --extract-only
	$ cd NVIDIA-Linux-x86-1.0-4496-pkg2/usr/src/nv
	$ patch ../../../../NVIDIA_kernel-1.0-4496-2.6.diff
	$ ln -s Makefile.kbuild Makefile
	$ cd ../../..
	$ su
	Password: [enter password here]
	# make install

After compiling the drivers, you'll need to manually add them to /etc/rc.local To do this, do echo "/sbin/modprobe nvidia" >> /etc/rc.local

After adding that last line, it's all done, and you're ready to go! So far, I haven't had any crashes with 2.6.0-test4, and am really happy.







Subject: Hehehe
Posted by LlamaMaster on 2003-09-09 07:38:50
IP: Logged

Subject: VMWARE and Kernel 2.6
Posted by Marco Ghirlanda on 2003-09-22 08:51:57
make: Entering directory `/tmp/vmware-config1/vmmon-only'
make[1]: Entering directory `/tmp/vmware-config1/vmmon-only'
make[2]: Entering directory `/tmp/vmware-config1/vmmon-only/driver-2.6.0-test5'
make[2]: Leaving directory `/tmp/vmware-config1/vmmon-only/driver-2.6.0-test5'
make[2]: Entering directory `/tmp/vmware-config1/vmmon-only/driver-2.6.0-test5'
In file included from /lib/modules/2.6.0-test5/build/include/asm/processor.h:18,
from /lib/modules/2.6.0-test5/build/include/asm/thread_info.h:13,
from /lib/modules/2.6.0-test5/build/include/linux/thread_info.h:21,
from /lib/modules/2.6.0-test5/build/include/linux/spinlock.h:12,
from /lib/modules/2.6.0-test5/build/include/linux/capability.h:45,
from /lib/modules/2.6.0-test5/build/include/linux/sched.h:7,
from /lib/modules/2.6.0-test5/build/include/linux/module.h:10,
from ../linux/driver.c:16:
/lib/modules/2.6.0-test5/build/include/asm/system.h: In function `__set_64bit_var':
/lib/modules/2.6.0-test5/build/include/asm/system.h:193: warning: dereferencing type-punned pointer will break strict-aliasing rules
/lib/modules/2.6.0-test5/build/include/asm/system.h:193: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from /lib/modules/2.6.0-test5/build/include/asm/smp.h:18,
from /lib/modules/2.6.0-test5/build/include/linux/smp.h:17,
from /lib/modules/2.6.0-test5/build/include/linux/sched.h:23,
from /lib/modules/2.6.0-test5/build/include/linux/module.h:10,
from ../linux/driver.c:16:
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:6:25: mach_mpspec.h: No such file or directory
In file included from /lib/modules/2.6.0-test5/build/include/asm/smp.h:18,
from /lib/modules/2.6.0-test5/build/include/linux/smp.h:17,
from /lib/modules/2.6.0-test5/build/include/linux/sched.h:23,
from /lib/modules/2.6.0-test5/build/include/linux/module.h:10,
from ../linux/driver.c:16:
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h: At top level:
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:8: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:9: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:10: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:12: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:19: error: `MAX_APICS' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:20: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:20: error: conflicting types for `mp_bus_id_to_type'
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:8: error: previous declaration of `mp_bus_id_to_type'/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:22: error: `MAX_IRQ_SOURCES' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:24: error: `MAX_MP_BUSSES' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:24: error: conflicting types for `mp_bus_id_to_pci_bus'
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:12: error: previous declaration of `mp_bus_id_to_pci_bus'
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:54: error: `MAX_APICS' undeclared here (not in a function)
In file included from /lib/modules/2.6.0-test5/build/include/asm/smp.h:20,
from /lib/modules/2.6.0-test5/build/include/linux/smp.h:17,
from /lib/modules/2.6.0-test5/build/include/linux/sched.h:23,
from /lib/modules/2.6.0-test5/build/include/linux/module.h:10,
from ../linux/driver.c:16:
/lib/modules/2.6.0-test5/build/include/asm/io_apic.h:120: error: `MAX_IRQ_SOURCES' undeclared here (not in a function)
/lib/modules/2.6.0-test5/build/include/asm/io_apic.h:120: error: conflicting types for `mp_irqs'
/lib/modules/2.6.0-test5/build/include/asm/mpspec.h:22: error: previous declaration of `mp_irqs'
In file included from /lib/modules/2.6.0-test5/build/include/linux/smp.h:17,
from /lib/modules/2.6.0-test5/build/include/linux/sched.h:23,
from /lib/modules/2.6.0-test5/build/include/linux/module.h:10,
from ../linux/driver.c:16:
/lib/modules/2.6.0-test5/build/include/asm/smp.h:73:26: mach_apicdef.h: No such file or directory
In file included from /lib/modules/2.6.0-test5/build/include/linux/smp.h:17,
from /lib/modules/2.6.0-test5/build/include/linux/sched.h:23,
from /lib/modules/2.6.0-test5/build/include/linux/module.h:10,
from ../linux/driver.c:16:
/lib/modules/2.6.0-test5/build/include/asm/smp.h: In function `hard_smp_processor_id':
/lib/modules/2.6.0-test5/build/include/asm/smp.h:77: warning: implicit declaration of function `GET_APIC_ID'
../include/vm_asm.h: In function `Div643264':
../include/vm_asm.h:1095: warning: use of memory input without lvalue in asm operand 4 is deprecated
make[2]: *** [driver.o] Error 1
make[2]: Leaving directory `/tmp/vmware-config1/vmmon-only/driver-2.6.0-test5'
make[1]: *** [driver] Error 2
make[1]: Leaving directory `/tmp/vmware-config1/vmmon-only'
make: *** [auto-build] Error 2
make: Leaving directory `/tmp/vmware-config1/vmmon-only'
Unable to build the vmmon module.
IP: Logged

Subject: No autoload of modules
Posted by ardya - on 2003-10-09 17:23:33
I enabled autoloading of modules. When I boot the newly compiled 2.6.0-test7, the fs modules for nfs, and vfat do not autoload, why?
IP: Logged

Posted by Kai Thomsen on 2003-11-21 12:06:31
I recommend against using older thread semantics by setting LD_ASSUME_KERNEL to 2.2.5 or 2.4.19; the updated RPM version at has been working fine for me under 2.6.x kernels.
IP: Logged

Subject: Great Work Mr Mcleay
Posted by Ludwig BeatOven - on 2003-11-23 04:48:48
Thank you for providing such a wonderful and informing website on something that i dont really use. this kernel stuff is quite interesting for the person who would be interested in it.

Kindest Regards,
Can you guess who this is?

Clue: look at the name
IP: Logged

Subject: kernel 2.6.0 nvidia drivers
Posted by Adrian on 2003-12-21 04:37:58
I get this:

[root@Ares NVIDIA-Linux-x86-1.0-4496-pkg2]# make install
cd usr/src/nv; make install
make[1]: Entering directory `/home/admin/maresal/rpm/Nvidia/NVIDIA-Linux-x86-1.0-4496-pkg2/usr/src/nv'
make[2]: Entering directory `/usr/src/linux-2.6.0'
*** Warning: Overriding SUBDIRS on the command line can cause
*** inconsistencies
make[3]: `arch/i386/kernel/asm-offsets.s' is up to date.
Building modules, stage 2.
*** Warning: "kdev_val" [/home/admin/maresal/rpm/Nvidia/NVIDIA-Linux-x86-1.0-4496-pkg2/usr/src/nv/nvidia.ko] undefined!
make[2]: Leaving directory `/usr/src/linux-2.6.0'
FATAL: Error inserting nvidia (/lib/modules/2.6.0/kernel/drivers/video/nvidia.ko): Unknown symbol in module, or unknown parameter (see dmesg)
make[1]: *** [package-install] Error 1
make[1]: Leaving directory `/home/admin/maresal/rpm/Nvidia/NVIDIA-Linux-x86-1.0-4496-pkg2/usr/src/nv'
make: *** [kernel_module_install] Error 2

How can I fix this problem?
Thank you.
IP: Logged

Subject: Did you try this patch?
Posted by Dan on 2003-12-21 23:32:42

After that, use "Makefile.kbuild" in your
ln -s Make.kbuild Makefile

Good luck.
IP: Logged

Subject: Nvidia 5328 patch not working nor ppp0e
Posted by Scuti on 2003-12-24 08:46:36
I managed to boot up 2.6 on my third intent. I even applied the Nvidia Kernel patch as you suggested. X started okay. But,now trying to recompile the kernel to see where I left off my ppp options, network wouldn´t work, I screwed up everything and the kernel won´t boot.

I updated several utilities as suggested in Later on today I will continue with my itent to boot the kernel (2.6.0)

How can I view my log file (boot log) and the kernel config log? Where is it?

IP: Logged

Subject: Boot log and kernel log
Posted by Robert - on 2003-12-27 19:36:29
To see a boot log, you can do: dmesg | more - that'll show the boot/kernel log.

To see other messages that may help, more /var/log/messages will do the trick nicely.

I'll email that off to you as well :)

IP: Logged

Subject: great job!
Posted by valentin on 2003-12-28 06:19:36
I'm a RH9 user and i wanted compile the new kernel. I have the
stable version kernel 2.6. This doc. was wonderful for me. Now all mi hardware is supported and running perfectly.
P.D: Sorry for my english ... ;-)
IP: Logged

Subject: Some feedback
Posted by John on 2004-01-05 10:07:51
I have installed 2.6.1-rc1 while glancing a bit at your, and Thomer's, site.
Thought I'd give some feedback (so far).

I tried upgrading RPM as suggested, but it does not resolve the problems with it.
"export LD_ASSUME_KERNEL=2.2.5" works though.

I would recommend having another name than "none" in fstab, since that way you can avoid getting cryptic errormessages like "umount: none: device is busy".
Thus I have named all my pseudofilesystems' mountpoints after filesystem type ("proc", "sysfs", "tmpfs" and "devpts").

Your instructions regarding VMware are probably assuming that "VMware Workstation" is used?
I ran my tests on a "VMware ESX Server 2.0.1" and well, let's just say that I haven't sorted those problems out yet... :-/
If I resolve these problems I might report back the resolution.

IP: Logged

Subject: ...forgot...
Posted by John on 2004-01-05 10:12:24
Oh, yeah, I forgot to say: I also tried using the precompiled RPMS from .
Hmmm, to be kind I'll just say "I'm amazed RedHat even has those on their server".
Extremely poor results for me anyway.
Unresolved dependencies, left pieces of old kernel laying about, could not create initrd and so on.
But your milegae may vary I suppose...

IP: Logged

Subject: VMWare Server
Posted by Robert - on 2004-01-10 06:12:23
Thanks very much for the feedback. Yes, the VMWare section is for VMWare Workstation. I should update the page to mention that...

If you could report back your findings for VMWare ESX Server, that'd be great :)

I'm just about to install 2.6.1 on another RH9 box of mine, so we'll see how that goes :)

Thanks for the feedback everybody!

IP: Logged

Subject: VMWare
Posted by OldOne on 2004-01-13 17:27:40
I spend 3 days fighting with it before I found this link:

It works with Workstation and GSX Server. The link is from VMWare forums.

Sometimes a copule of weeks in laboratory will save us a hour in the library ;-) Like in my case.

I am using 2.6.1 vanilla kernel.

Thank You for your time Dan.
IP: Logged

Subject: VMWare
Posted by OldOne on 2004-01-13 17:31:22
I am sorry Robert. The thanks are for you. I am too tired and I am going to bed...

Be Well ;-)
IP: Logged

Subject: patching NVIDIA drivers
Posted by Wieland E. Kublun - on 2004-01-25 17:15:06
u said user must type: <br>
<pre> $ patch ../../../../NVIDIA_kernel-1.0-4496-2.6.diff</pre><br>Actually user must type: <br>
<pre>$ patch -p1 < ../../../../NVIDIA_kernel-1.0-4496-2.6.diff</pre><br>
This howto is awesome btw, i got my new kernel working perfectly! ;) thanks, hope there would be new howtos on how to upgrade from this one to 2.8 kernels :)
IP: Logged

Subject: <correct> patching NVIDIA drivers</correct>
Posted by Wieland E. Kublun - on 2004-01-25 17:17:17
u said user must type:
$ patch ../../../../NVIDIA_kernel-1.0-4496-2.6.diff</pre><br>Actually user must type:
$ patch -p1 < ../../../../NVIDIA_kernel-1.0-4496-2.6.diff
This howto is awesome btw, i got my new kernel working perfectly! ;) thanks, hope there would be new howtos on how to upgrade from this one to 2.8 kernels :)

Btw, i'll have a howto like this one in spanish on how to do this on my webpage:

IP: Logged

Subject: New NVIDIA driver
Posted by Francisco Jose on 2004-01-27 06:15:21
I've realised NVIDIA has released a new driver that works with 2.6 kernels it can be downloaded in I've tryed it but it hangs after agreeing the license. I've had the same error with all the versions in Can anybody help me?


PS: sorry if y commite many mistakes but i'm spanish and my english isn't very good :S
IP: Logged

Subject: NVIDIA drivers
Posted by Wieland E. Kublun on 2004-01-27 17:33:59
FRancisco, yo tambiñen hablo español, soy de México , y con gusto te ayudaría, mi e.mail es , y mi nick en es Wieland canales: #jaws,#unixmexico , mi MSN es:, ahi me puedes contactar y después voy a poner un howto[en español] sobre como instalar el kernel 2.6.1 en RH 9 con todos los pasos como en este manual, al igual que las NVIDIA drivers :)

saludos ! ;)
IP: Logged

Subject: mkinitrd and root=
Posted by John Franey on 2004-02-03 11:56:42

I got 2.6.1 booted to single user on my HP zt 1170 laptop.

There were two gotchas, for me, that were not mentioned above:

I picked up elsewhere that if you use initrd, you will have to make a new img file. Do this AFTER you upgrade module-init-tools (because it copies in insmod):
mkinitrd initrd-2.6.1 2.6.1

Then modify your boot loader config to use the img for this kernel. In grub
initrd /boot/initrd-2.6.1.img

[I removed initrd because it wasn't working for me. Mount of the new root failed, error 19, which means: incorrect invocation or permissions, system error, and problems writing or locking /etc/mtab. I don't know how to approach this error.]

The other missing step is the in RH 9, the kernel root= argument (in my grub.conf file, had a value of: root=LABEL=/1. WIth this value, the root file system could not be mounted and I got a panic. Looking at the kernel code, well, it just doesn't know how to parse this format. You can use the format <maj>:<min>.

I removed initrd from grub.conf and using <maj>:<min> got me to single user. I haven't init'ed to multiuser yet.


IP: Logged

Subject: How to install NVIDIA DRIVERS... Works!!!
Posted by Zone on 2004-02-13 01:12:50

From runlevel 3 (Xwindows must be down - do this from textmode shell)

$su -
Password: XXXXX
#sh -x
#cd NVIDIA-Linux-x86-1.0-5336-pkg1/usr/X11R6/lib/modules/extensions
#cp /usr/X11R6/lib/modules/extensions
Overwrite (y/n): y

Now, you have your system ready to execute glx apps., open a shell from XWindows and try

TESTING: glxgears -> will show glx graphics and you will be ready to execute any glx app.


IP: Logged

Subject: root on LVM
Posted by Marco on 2004-03-15 07:05:09
Hello there!
I've installed kernel 2.6.1 on fedora core 1 (downloaded from the test branch on fedora website) but when I try to boot with this kernel there is a kernel panic caused from an missed activation of volume group.

All my FS are on LVOL except (of course) /boot.

Anyone has got the same problem and has solved it?


IP: Logged

Subject: re: root on LVM
Posted by Cecil on 2004-04-30 08:36:45
Marco, the problem is that in kernel 2.6.x for some reason you have to include support for your file system type (assuming it's ext3 or ext2) INTO the kernel, and not as a module. If you've already done this, edit the /boot/grub/grub.conf file and where it says root=

write your root partition's name, for example, hda1 hda2, etc... So that it looks like root=hda2 or something along those lines.

To find out which one is your root partition, type df -h at the shell...
IP: Logged

Subject: Fedora Core 1
Posted by Stanley Douglish on 2004-07-01 04:14:04
Hi ppl, thakx for this "howto" ... I have FC1 and it's without problem too ... great :-) ... bye
IP: Logged

Subject: rh-9 easy upgrade
Posted by lunar dee on 2004-08-12 12:11:28
thanks for your posting. so far, no major problem encountered after the upgrade, except xdm is hiding now.. :)
but i'll try to make it work myself..
your website is definitely a great how-to (at least for a simple system like mine)!!
IP: Logged

Subject: also update hotplug scripts
Posted by wolfmanjm on 2005-03-01 00:04:07
Thanks very helpfull, finally seem to have 2.6.10 working on rh9. However if you use USB, you will need to upgrade the hotplug scripts from
IP: Logged

Subject: Comment Spam Zapped
Posted by Robert - on 2005-08-08 20:26:38

I killed a pile of comment spam, I will have to come up with one of those type in the number things or similar. Idiot spammers should go and die.

IP: Logged

Subject: Return of the spammers
Posted by Robert - on 2005-08-22 22:24:15
Hi Again,

I've written a quick and dirty spam filter, so hopefully that stops it. Since the spam doesn't seem to be using any tricks in particular, I've written a quick word/phrase/style set of regexps. Hopefully that gets it all.

IP: Logged


Post a comment:

Email: (Either don't enter it, or you should obfuscate it).
Website: (Make it valid - eg: )
Magic Word: (Enter exiguous as the word) (Without this, your comment won't be posted!)