Red Hat Linux 9 kernel from Severn (beta)
Red Hat are busy working on the new beta, code named Severn, which is going be the first officially released version of Fedora. They have released an updated version of the Linux kernel, based on 2.4.22 and with updates from the 2.4.23-preX series. Important things like ACPI have been included. If you'd like to try this kernel out on Red Hat Linux 9, you can download this patch and build the kernel yourself.
In order to apply this patch, you'll have to obtain this RPM from one of the mirrors:
kernel-2.4.22-1.2087.nptl.src.rpm
Once you install the above RPM, the source for building the kernels will
be in /usr/src/redhat.
This patch includes includes variable HZ setting, which defaults to 1000. I did not apply preemptive kernel patch here, mostly because it would be a lot of work and my tests have shown that with HZ=1000 interactivity seemed quite OK.
That patch is here:
To patch, run this from the /usr/src/redhat directory:
bunzip2 -c /path/to/linux-2.4.22-Xrxv-source-2087.patch.bz2 | patch -p1
To build the kernels, you can run this from /usr/src/redhat/SPECS
directory:
rpmbuild --sign -ba --target i386,i586,i686,p4,athlon kernel-2.4.spec
Yes, you can build a Pentium 4 specific kernel too! This will, of
course, take huge amount of time, so be prepared to do something else in
the meantime. The --sign option is only necessary if you want to sign
those kernels with a GPG key. Also, list only the architectures that you
want to build, of course.
Regular procps package shipped with Red Hat Linux 9 won't work
properly with this kernel, due to HZ changes, but you can obtain a newer
version that should be fine from here (2.0.16 or better should be OK):
Alternatively, read on and download my own package that has HZ=1000 hard coded.
I have tested this kernel with my HP-ZE4201
notebook and it seems to work fine. To
enable ACPI, you have to add acpi=on to your grub.conf file, in the
kernel line. Also, you'll have to force load ACPI modules in order to
get ac, battery, fan, button, thermal and processor support. Something
like this placed in /etc/rc.d/rc.local file:
/sbin/modprobe -q ac 2>/dev/null
/sbin/modprobe -q battery 2>/dev/null
/sbin/modprobe -q fan 2>/dev/null
/sbin/modprobe -q button 2>/dev/null
/sbin/modprobe -q thermal 2>/dev/null
should do the trick. The processor module will be pulled in by the
thermal module.
WARNING: DO NOT REMOVE YOUR RED HAT SUPPLIED KERNEL! INSTALL THIS KERNEL WITH
rpm -ivh INSTEAD!
Some older patches for Severn kernel are here:
procps package for HZ=1000
After running Red Hat Linux 9 kernel with my interactivity patch, I have
noticed that system monitoring tools like top didn't work as expected.
At one point I had 3 processes using 99.9% of the CPU, at the same time,
on a single CPU machine. How's that for efficiency ;-)
Seriously, the problem is that HZ detection in procps doesn't detect
that the HZ setting is 1000, so some of the calculations are performed
with HZ 100. This then results in unrealistic process statistics.
To avoid the issue, I have hardcoded Hertz=1000 into the appropriate
file if the release of the kernel contains the string "rxv" (i.e.
command uname -r). If you're using HZ other than 1000, please review
the patch from the source RPM, modify it and rebuild the binary.
The downloads are here:
My GPG key to verify the above RPMS:
Red Hat Linux 9 kernel interactivity patch
The Linux kernel shipped with Red Hat Linux 9 (and the updates) is based on stock kernel 2.4.20, plus a series of selected updates. Some of those updates are quite useful on the desktop (low latency patches, O1 scheduler), but there are some others that complete the set (e.g. preemptive kernel patch), which are missing.
So, this patch, based in part on work by Con Kolivas (CK) and in part on the preemptive patch by Robert M. Love (RML, http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/v2.4/), includes the following:
- RML: Preemptive kernel patch for 2.4.20 (preempt-kernel-rml-2.4.20-3.patch)
- CK: ACPI patch (1070_ACPI_0305221422_2.4.20-ck7.patch.bz2)
- CK: Andrea Arcangeli's newest VM addons (1010_AAVM_0306011525_2.4.21-ck1.patch.bz2)
- CK: Read Latency2 disk hack by Andrew Morton (003_rl2_021215_ck.2.4.20.patch.bz2)
- CK: Variable HZ setting (008_VH_030409_ck_2.4.20.patch.bz2)
- CK: Scheduler Tunables (009_ST_030412_ck_2.4.20.patch.bz2)
- CK : Desktop Tuning (010_DT_030426_ck_2.4.20.patch.bz2)
Please note that most of the above patches were modified in order to
apply them to Red Hat Linux 9 kernel, which is itself heavily patched.
Also, Red Hat supplied patches were modified as well. Rik van Riel's VM
(RMAP), which is part ot the Red Hat supplied kernel (but not part of
the stock kernel) has been ripped out. RMAP VM is not compatible with
Andrea's VM. I was looking hard into 2.5.68 preemptive related stuff
(mostly file kernel/sched.c), because that part of the kernel
2.4.20-20.9 from Red Hat looks a lot like 2.5. Some of the modifications
in all these patches were not trivial, so there could be quite
significant errors. Also, Red Hat has recently included some of the
stuff that CK patches used to provide, so those parts from CK patches
have been removed.
Also, Desktop Tuning patch was changed to be more agressive: HZ is set
to 1000 and latencies are really, really low. If you don't like that,
you can either change the patch or set latencies through /proc
filesystem and using elvtune. It is a good idea to get the
procps packages for HZ=1000 setting, because if you
don't, your process monitoring tools might get a bit crazy ;-)
WARNING: IF THIS PATCH DOESN'T COMPILE, DOESN'T WORK, EATS THE CONTENT OF YOUR HARD DISK OR SETS YOUR COMPUTER ON FIRE, DON'T COME CRYING TO ME. THERE IS NO WARANTY OF ANY KIND!
Still with me? OK, the patches can be had in two forms. The first one
applies to the installed kernel-source-2.4.20-20.9.i386.rpm source
tree (i.e. /usr/src/linux-2.4.20-20.9). This is quite simple to do and
I recommend this method. That patch is here:
The second option is a set of changes for the source RPM (i.e.
kernel-2.4.20-20.9.src.rpm). Now, to get this going, you'll have to
install the mentioned RPM, apply the patch to Red Hat source tree (i.e.
/usr/src/redhat) and then build source and binary RPM yourself. This
takes quite a bit of time, but if you insist, here is that patch too:
Please inspect the kernel-2.4.spec file before proceeding.
I don't intend to provide the actual RPMS because they are simply too big.
If you still running the older kernels, 2.4.20-9, 2.4.20-13.9, 2.4.20-18.9 or 2.4.20-19.9 (you shouldn't, but hey, do what you like :-), here are the original patches for them:
Note that the above patches might be based on slightly different versions of CK and ACPI patches, available at the time of their creation.
PPP RPMS with PPPoE support
These packages enable PPPoE support in PPP, something that's very useful for connecting to various ADSL providers. Note that these packages rely on kernel (that is Linux kernel 2.4.x) PPPoE support, so you'll have to compile that in or build as modules. These should work on RedHat Linux 7.3. As the matter of fact, they are based on RedHat PPP RPM for 7.3. One of the main features that I wanted to have is to be able to reconnect when the ISP drops the PPP connection and these packages seem to do that quite well. The PPPoE support from the current PPP CVS version (2.4.2b1) do not seem to work very well in that area.
This is what should be in /etc/ppp/options file:
plugin /usr/lib/pppd/plugins/pppoe.so
And something like this should be put into /etc/ppp/options.ethX file:
linkname pppX
name username@provider
mtu 1492
mru 1492
noipdefault
defaultroute
persist
lcp-echo-failure 3
lcp-echo-interval 60
holdoff 10
Make sure you have TCPMSS support in your kernel and iptables rule that enables it, if you intend to use the machine as a router.
UPDATE 16 May 2003: The GPG key used to sign the packages below has been changed. Please make sure you verify the packages against the new public key.
Here are the downloads:
My GPG key to verify the above RPMS: