You are here

Add new comment

rncbc's picture

Failing to find an answer to the previous post question, I decided to build the kernel-rt on openSUSE 10.3 from scratch, and for documentation sake here goes the fine instructions:

  1. First you have to grab the latest kernel-source.src.rpm, either from the openSUSE build service (factory) if you want the bleeding edge latest or from the official update source repository, for example, the one I've just built takes this:

    http://download.opensuse.org/update/10.3/rpm/src/kernel-source-2.6.22.9-0.4.src.rpm

  2. Install the source package:
    # rpm -ivh kernel-source-2.6.22.9-0.4.src.rpm
  3. Unpack the supplied kernel source:
    # cd /usr/src
    # tar -jxf packages/SOURCES/linux-2.6.22.tar.bz2

    Rename the new kernel source tree directory to fit openSUSE standards.

    # mv linux-2.6.22 linux-2.6.22.9-0.4
  4. Unpack all the supplied patches. These are all the official kernel.org and the openSUSE ones including the most precious Ingo Molnar's realtime-preempt (-rt) ones too, all in the same package.
    # cd /usr/src/packages/SOURCES
    # for x in patches.*.tar.bz2; do tar -jxf $x; done
    
  5. Now comes that part where one has to find out which patch to apply and in what order. Just apply it all in one step with the following magic trick:
    # cd /usr/src/packages/SOURCES
    # for x in $(./guards $(./arch-symbols) RT < series.conf); do \
          patch -d /usr/src/linux-2.6.22.9-0.4 -p1 < $x \
      done
    

    yes, take special note of the "RT" particle above, without it the kernel source tree won't be patched with Ingo's stuff.

  6. One word about kernel configuration: the openSUSE folks have one already packed, just copy it to the desired location:
    # cd /usr/src/packages/SOURCES
    # tar -jxf config.tar.bz2
    # cp config/i386/rt /usr/src/linux-2.6.22.9-0.4/.config
    

    that just makes a factory kernel-rt configuration available for the build that follows. Replace i386 by x86_64 if you're into a 64bit kernel.

  7. By this time you already have a proper kernel-rt source tree, fully patched as openSUSE knows best and ready for building with the usual manners.
    # cd /usr/src/linux-2.6.22.9-0.4
    # make oldconfig

    just in case you want to tweak some options,

    # make menuconfig
    

    now ready for the real work:

    # make -j3 all
    # make modules_install
    # make install
    

You know the rest of the drill: configure the bootloader, if not done already by make install, reboot into the new kernel and, voilá you now also need to build any external modules, namely the nvidia, the whole purpose this very post was setup ;)

Cheers.
--
rncbc aka Rui Nuno Capela