7

I am trying to compile the iscsi-target software SCST. It wants me to apply a patch to my Linux kernel in order to allow for certain performance gains. The problem is I still new to Linux development. Where do I begin? How do I apply the patch? Do I need to recompile the kernel? Help!

I am running Ubuntu 10.04.3 amd64

Kernel version 2.6.32-28-server

1
  • Yes, you'll need to compile - a patch is a modification of source code, not the binary. How you apply the patch should be in their README (or INSTALL, if they have it).
    – new123456
    Aug 18, 2011 at 20:08

1 Answer 1

7

Your Linux distribution usually has its own instructions. Search their website or ask on IRC – or at least tell us the distro; without knowing it, it's impossible to provide a reliable anwer.


The generic instructions are:

  1. Download the kernel source from Kernel.org. "Stable" is probably the best choice. Extract to a convenient place (I use ~/src/linux).

    • Read the file named README.
  2. Once inside the source directory, copy the current kernel's configuration, with:
    zcat /proc/config.gz > .config

    If /proc doesn't have it, look for /boot/config-[version] instead.

  3. Apply the patch, with:
    patch -p1 < foo.patch (try -p0 if it gets rejected).

  4. Compile the kernel with:
    make silentoldconfig
    make

  5. Install the modules with:
    sudo make modules_install

  6. Install the kernel image .../linux/arch/i386/boot/bzImage to wherever your bootloader wants it. (For example, /boot/vmlinuz-custom.)

  7. Build an initramfs for the new kernel, if your distribution uses it, and again make sure the bootloader knows its location. For example, on Arch Linux you would use:
    mkinitcpio -k /boot/vmlinuz-custom -g /boot/initramfs-custom

3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.