Install By Patching and Re-building Kernel 2.6
This document describes how to patch your kernel sources to include pwc 10.0.6.
Download The Linux Kernel Sources
Download the Linux Kernel sources that fits your current kernel. How to do this depends on your distribution. You may already have them installed. You can also choose to download kernel sources from
http://www.kernel.org which will require that you configure the kernel yourself.
Unpack The Source Of The Linux Kernel
If you chose to install the kernel sources from your distribution all you need to do is install the package using the package installer (GUI program, RPM, apt-get etc etc).
tar xvfj linux-2.6.10.tar.bz2
Create a symbolic link to the new kernel sources.
If there is already one you need to delete it first
rm linux
ln -s linux-2.6.10 linux
Remove the kernel tar.bz2 file
rm linux-2.6.10.tar.bz2
Download the pwc 10.0.X patch and patch the kernel
Download pwc patch
Download the patch
http://www.saillard.org/pwc/ that matches your kernel.
Example: linux-2.6.10_pwc-10.0.6.patch.bz2 for a 2.6.10 kernel
Untar the pwc patch
bzip2 -d linux-2.6.10_pwc-10.0.6.patch.bz2
Patch the kernel with new pwc driver, enter the kernel directory and patch
cd /usr/src/linux
patch -p1 < ../linux-2.6.10_pwc-10.0.6.patch
Note the -p1 (number one)
Re-use the configuration from your distribution
Find the latest configuration file
For distributions such as RedHat and Fedora this is how you reuse your current configuration.
List the directory
/usr/boot
ls -al /boot/config*
Find the latest config file that you wish to build on. Example here is the one that came with the Fedora 2.6.8-1.521 kernel. Now copy it to the /usr/src/linux directory and give it the name
.config
cp /boot/config-2.6.8-1.521 /usr/src/linux/.config
If you have nothing to change in kernel
If you have nothing to change all you need to do is run
make oldconfig
Activating modules
However if you need to activate some extra features you need to configure your kernel.
Start up your kernel configurator
make menuconfig
(text mode for text terminal access)
or
make xconfig
(graphical user interface mode - requires X)
Activate any modules needed including the PWC module.
Finally save and exit
Build the new kernel and kernel modules
Compile the kernel - make bzImage
If you have already built a kernel before you can skip this step. You then only have to run 'make modules' and 'make modules_install'.
make bzImage
Compile all the kernel modules - make modules
Next step is to make all the modules. This takes a long time. Depending on your machine from 30 minutes to several hours. Time to open a beer.
make modules
Install the new kernel and kernel modules
Install the modules - make modules_install
Next step will copy all the built modules to /lib/modules/kernel_version. This also takes some minutes.
make modules_install
Install kernel - make install
Now we install the kernel itself. This copies the kernel files into /boot and adds the new kernel to the menu in grub.conf.
make install
Save your configuration for another good time.
I suggest copying your newly made .config to /boot so that you have it for later. Use the standard naming conversion.
cp /usr/src/linux/.config /boot/config-2.6.10
Edit grub.conf
Edit the
/boot/grub.conf
file so that it chooses the kernel you want per default. Remember that it counts from zero.
To activate the new kernel as default set
default=0
.
Using the new kernel modules.
If you built a new kernel you need to boot the machine to activate the new kernel.
Update module dependency and map files
If you booted the machine this should not be needed. It does not harm either.
# depmod -a
Unload old pwc/pwcx modules
If you already had an old version of pwc/pwcx installed you need to unload them first. You can skip this if you rebooted the machine. If you are not sure run the commands anyway. They will not harm anything.
# rmmod pwcx
# rmmod pwc
Load the new module
Finally load the new pwc module. Note that there is no longer any binary pwcx module to worry about. It is all in the pwc module
# modprobe pwc
--
KennethLavrsen - 11 Nov 2004