Disclaimer: Use at own risk!
Corrections, simplifications, etc. welcomed. Tell me.
Note: in the instructions, replace 2.4.* with the current version (2.4.3, 2.4.4, etc.).
During/after every step, check the output to make sure nothing has gone wrong!
IBM has instructions for compiling the kernel which are a lot more detailed than mine. If that URL doesn't work, try finding it from here: http://www.ibm.com/developerworks/linux/.
Download linux-2.4.*.tar.gz from a Kernel.org mirror http://www.kernel.org/mirrors/ .
cd /usr/src, if there is a linux subdirectory, move it to another name. Ex: mv linux linux_2_2_16
Extract the source into /usr/src (in /usr/src, type tar xzvf linux-2.4.*.tar.gz)
This should create a linux directory in /usr/src with the 2.4.* kernel source.
Move the source to linux-2.4.* and add a symbolic link to it:
mv /usr/src/linux /usr/src/linux-2.4.*
ln -s /usr/src/linux-2.4.* /usr/src/linux
Patching
Check here to find out what the latest patch level is and to find a link to
a description of what's in the patch. You can download the patch from here.
Copy the patchfile into /usr/src/linux
While in /usr/src/linux, for a gzipped patch, do: gzip -cd patchfilename.gz | patch -p1
If Netscape has gunzipped the patch for you, do: cat patchfilename | patch -p1
Note: always apply the patch before your final reading of the documentation, as the patch may change the documentation!
Read at least the Readme and Documentation/Changes and make sure all the programs needed are the correct versions.
RPMFIND is a good way to find specific versions of RPMs. Failure to update your programs will doom your attempt.
In an xterminal...
Change directory into the /usr/src/linux subdirectory
This step is even more Red Hat-centric than the rest of this document: edit /usr/src/linux/Makefile:
1) Uncomment the export INSTALL_PATH line and set it to /boot if it's not already and you use /boot :-)
2) Change each instance of gcc to kgcc
3) Save your changes :-)
make mrproper
make xconfig
Load Configuration from file; here's mine for 2.4.*.
Make any changes you need/want. Save the updated configuration to a file. Watch the terminal from which you launched
xconfig. If you see error messages, go back and check the kernel configuration relating to them, then save to a file again, and
save and exit xconfig when finished.
make dep; make clean
make bzImage
make modules; make modules_install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.*-acn
cp /usr/src/linux/System.map /boot/System.map-2.4.*-acn
Edit /etc/lilo.conf and copy the existing linux entry so you have two entries
Edit the second one to image=/boot/vmlinuz-2.4.*-acn, label=newlinux
Example:
image=/boot/vmlinuz-2.2.16-22
label=old
read-only
root=/dev/hda5
image=/boot/vmlinuz-2.4.*-acn
label=newlinux
read-only
root=/dev/hda5
Thanks to Andy Nguyen for these instructions:
- Distr: Redhat 7.0, but this should be generic for all other dist
- C1VM, which is the Australian version of the C1VN.
- Kernel 2.4.1-ac10
- When configuring the kernel (I use "make menuconfig"), enable Sound card
support, OSS sound modules (Also Verbose and Persistent DMA buffer),
and Yamaha YMF7xx PCI audio.
CONFIG_SOUND=y
CONFIG_SOUND_OSS=m
CONFIG_SOUND_TRACEINIT=y
CONFIG_SOUND_DMAP=y
CONFIG_SOUND_YMFPCI=m
CONFIG_SOUND_YMFPCI_LEGACY=y
- Include YMFCPI in /etc/modules.conf
alias char-major-116 snd
alias snd-card-0 ymfpci
alias sound-slot-0 snd-card-0
Note: If you experience a buzzing noise after doing this, follow Andy's further
advice:
"I had the buzz sometimes when changing config, but never on a clean boot.
When that happens I just turn down the volume in text mode with "aumix"
and run sound either in text mode or in X. Another quick fix is to run
mpg123 in text mode and play a MP3 file."
I've included Andy's change in my kernel configuration file above. You should be
able to just add the three lines to /etc/modules.conf before restarting with the new kernel.
Memorystick Patch
Thanks to Marc Boucher for e-mailing me the latest version of his patch!
--- linux-2.4.0-ac10-mb/drivers/usb/storage/unusual_devs.h 2001/01/21 19:05:34 1.1
+++ linux-2.4.0-ac10-mb/drivers/usb/storage/unusual_devs.h 2001/01/21 19:08:37
@@ -132,6 +132,12 @@
US_SC_UFI, US_PR_CB, NULL,
US_FL_SINGLE_LUN | US_FL_START_STOP ),
+UNUSUAL_DEV( 0x054c, 0x0032, 0x0131, 0x0131,
+ "Sony",
+ "Memorystick MSC-U01",
+ US_SC_UFI, US_PR_CB, NULL,
+ US_FL_SINGLE_LUN | US_FL_START_STOP ),
+
UNUSUAL_DEV( 0x057b, 0x0000, 0x0000, 0x0299,
"Y-E Data",
"Flashbuster-U",