= 1. Patching the Linux Kernel =
== 1.1 Downloading the Kernel Source == you can always get the latest (and previous) Kernels from http://www.kernel.org/ ... <code> # cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.9.tar.bz2 Resolving www.kernel.org... done. Connecting to www.kernel.org[204.152.189.116]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 36,261,440 [application/x-bzip2] 100%[========================>] 36,261,440 4.57M/s ETA 00:00 14:49:41 (4.57 MB/s) - `linux-2.6.9.tar.bz2' saved [36261440/36261440] </code> == 1.2 Downloading the Patch(es) == the latest 'released' patches can be downloaded from > http://www.13thfloor.at/vserver/ experimental patches > can be found at http://vserver.13thfloor.at/Experimental/ <code> # wget http://www.13thfloor.at/vserver/d_rel26/v1.9.3/patch-2.6.9-vs1.9.3.diff.bz2 ... </code> == 1.3 Unpacking the Kernel == the kernel source can be unpacked anywhere, but given > that you have enough disk space /usr/src is a good place. <code> # tar xjf linux-2.6.9.tar.bz2 </code> == 1.4 Applying the Patch == the simplest way is to make a 'shallow' copy of the > unpacked source tree (a bunch of hardlinks) which will > not use up significant diskspace, but might help if > you want to change the patch or check for differences. <code> # cp -la linux-2.6.9 linux-2.6.9-vs1.9.3 # cd linux-2.6.9-vs1.9.3 # bzcat ../patch-2.6.9-vs1.9.3.diff.bz2 | patch -p1 </code> = 2. Configuring the Linux Kernel = == 2.1 Existing Config == <code> # cp /path/to/existing/.config . # make oldconfig </code> == 2.2 Default Config == <code> # make defconfig </code> = 3. Building the Linux Kernel = <code> # make </code> = 4. Installing the Linux Kernel = <code> # make modules_install # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.9-vs1.9.3 # cp System.map /boot/System.map-2.6.9-vs1.9.3 </code> |