Kenneth's step by step instruction
custom kernel with PWC 10.0.4 and K8000
I am writing this for my own use. But others may use it for inspiration.
I am building my own custom kernel for Fedora Core 2 with included support for pwc (the new 10.0.4) and k8000 support (Velleman kit).
Download and unpack the kernel tree
Download kernel
Download the kernel from from
http://www.kernel.org.
This was built with
linux-2.6.8.1.tar.bz2
Untar the kernel sources in /usr/src
If you downloaded the tar.gz files to /usr/src use the commands below. Otherwise change your current directory to /usr/src and put the path to the tar.gz in front of the filenames.
tar xvfj linux-2.6.8.1.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.8.1 linux
Remove the kernel tar.bz2 file
rm linux-2.6.8.1.tar.bz2
Download the pwc 10.0.4 patch and patch the kernel
Download the new pwc 10.0.4 driver
Download the new generation pwc 10.0.4 driver from
http://www.saillard.org/pwc/
The file I used was
linux-2.6.8_pwc-10.0.4.patch.bz2
Untar the pwc patch
bzip2 -d linux-2.6.8_pwc-10.0.4.patch.bz2
Patch the kernel with new pwc driver, enter the kernel directory and patch
cd /usr/src/linux
patch -p1 < ../linux-2.6.8_pwc-10.0.4.patch
Note the -p1 (number one)
Re-use the configuration from Fedora
Find the latest configuration file
List the directory
/usr/boot
ls -al /boot/config*
Find the latest config file that you wish to build on. I chose 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 (such as i2c-parport-light for Velleman K8000)
However if you need to activate some extra features you need to configure your kernel. In this example I am activating the modules needed for a Velleman K8000 kit.
Start up your kernel configurator
make menuconfig
(text mode for text terminal access)
or
make xconfig
(graphical user interface mode - requires X)
For activating the modules needed for Velleman K8000 navigate to
Device Drivers ->
I2C Support ->
I2C Hardware Bus Support and activate
Parallel Port Adapter and
Parallel Port Adapter (light)
The one that is known to work with kernel 2.6.10 is Parallel Port Adapter (i2c-parport module). Activate both as
Module so that you can choose one or the other.
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.8.1
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.
To activate the pwc simply do
modprobe pwc
To activate the k8000 this is known to work with kernel 2.6.10
#Make parallel port free for velleman
rmmod lp
rmmod parport_pc
rmmod parport
#Load i2c driver modules for velleman
modprobe i2c-parport type=2
modprobe i2c-dev
Old pwc 9.0.2 / pwcx 9.0 installation.
See
HowToPatchPWC9PWCX9OnKernel2dot6
--
KennethLavrsen - 10 Oct 2004