You are here

opensuse realtime kernel in 10.3

Well, it's hard to say why I'm writting this here… Maybe due the great warm feeling inside. The arising Opensuse 10.3 (still beta now) contains realtime kernel in base repository again:

http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/sus...

What a good news! Of course I can use kernel-rt from jacklab.org in 10.2, but it breaks o lot of dependencies I have in system e.g. nvidia drivers etc. And now there could be latency under 1ms out of the box. And no xruns.

It's reason for a small celebration.
$cd /local/pub && more beer > /dev/mouth

Forums: 
rncbc's picture

That is really good news.

I think I'll consider getting rid of my own custom -rt kernels, which takes ages to build and misses some opensuse goodies. And still, I do have an old nvidia fx5700 card on one of my boxes, and have no complaints about the proprietary driver besides tainting the kernel.

Currently running with 2.6.23-rc4-rt1 which is newer than the one in the base repository (2.6.22.5), but I guess I can borrow some of those goodies if I peek in the kernel-source .src.rpm :)

Another issue, which comes to mind and is of relative importance wrt MIDI, is whether the supplied kernel-rt is configured with tickless (NOHZ) or 1000Hz resolution timers ...

Cheers.
--
rncbc aka Rui Nuno Capela

subzero's picture

doh, no luck in midi timing...

http://forum.jacklab.net/viewtopic.php?t=562

rncbc's picture

I guess someone should point the issue to the opensuse factory build team. There's no big point in having a -rt build without higher timer resolution set up. At least make it tickless (CONFIG_NOHZ). Anyway, given that the kernel-source rpm is available, one can tweak it and fit to purpose. That's what I gonna do, sure. OTOH I will certify that myself in the first place, as soon as I can get it built here.

cheers
--
rncbc aka Rui Nuno Capela

subzero's picture

anyway, here goes my "bugreport" on this issue. I hope the kernel devs will look at it after weekend.

https://bugzilla.novell.com/show_bug.cgi?id=310880

rncbc's picture

the rosegarden folks have stated this issue in their FAQ:

cheers
--
rncbc aka Rui Nuno Capela

rncbc's picture

Hip hip hurray,
- https://bugzilla.novell.com/show_bug.cgi?id=310880#c3
cheers
--
rncbc aka Rui Nuno Capela

rncbc's picture

I have a problem with this kernel-rt package from openSUSE 10.3.

Specifically, the one I've made some strides, kernel-rt-2.6.22.9-0.4.

I boots, runs and works fine and I really ought to adopt it as my official kernel. However I could not figure how to build the nvidia external kernel module over it. Tried with kernel-source-2.6.22.9-0.4 installed but it misses the necessary contents (include/linux/version.h) under

  /lib/modules/linux-2.6.22.9-0.4-rt/build

which is a symlink to:

  /usr/src/linux-2.6.22.9-0.4-obj/i386/rt

Nothing wrong about that, problem is that the contents in there has NOT the necessary files for building an external module as read on README.SUSE (instructions found in kernel-source.src.rpm).

So, my question is: HOW do I (re)generate that stuff?

I'm still wandering.
--
rncbc aka Rui Nuno Capela

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

Hello Rui,

Why don't you help us all, and publish the new kernel binaries under the new build service repository?

http://en.opensuse.org/Publish_your_Software

Sorry,

I think the rt kernel is already there, if you search for "kernel-rt" in http://software.opensuse.org/search.
I didn't test any of them, but i think the result would be the same, right ?

Cheers

rncbc's picture

Yes, kernel-rt is the official package name and I guess its already available from the openSUSE 10.3 repositories for quite some time. Notice that, if you won't need to build external modules like nvidia, you'll be fine with the official package. The mini-howto above just gives the precise instructions to build an exact image of kernel-rt from kernel-source, but with the extra bonus :)

bye now

rncbc's picture

today I've done my custom kernel-rt, as is now routine ;)
the updated official source package has been found here:

http://download.opensuse.org/update/10.3/rpm/src/kernel-source-2.6.22.13-0.3.src.rpm

cheers,
--
rncbc aka Rui Nuno Capela

rncbc's picture

heads-up: another custom kernel has been build and, fact is, now already in production ;)

kernel-source-2.6.22.18-0.2.src.rpm

or, from the most recent and latest release, openSUSE 11.0 Update:

kernel-source-2.6.25.9-0.2.src.rpm

and, better yet, from the bleeding-edge (ie. openSUSE Factory)

kernel-source-2.6.25.9-3.src.rpm

cheers
--
rncbc aka Rui Nuno Capela

Finally a rt kernel in a big distro!

$ cd /local/pub && more beer > /dev/mouth - lol. now that is my kind of code!

Thank you! This is not usually!

$cd /local/pub && more beer > /dev/mouth - what does it mean? One month of drinking beer?

$cd /local/pub && more beer - :))))

Add new comment