opensuse realtime kernel in 10.3

Forums

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/su…

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

Permalink

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

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

Permalink

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

Permalink

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

Permalink

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

Add new comment

The content of this field is kept private and will not be shown publicly.

Markdown

  • Parses markdown and converts it to HTML.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type='1 A I'> <li> <dl> <dt> <dd> <h2 id='jump-*'> <h3 id> <h4 id> <h5 id> <h6 id> <img src alt height width> <strike>
  • Lines and paragraphs break automatically.

Filtered HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <b> <i> <pre> <img src alt height width> <strike>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
File attachments
Unlimited number of files can be uploaded to this field.
2 MB limit.
Allowed types: jpg jpeg gif png txt doc docx xls xlsx pdf ppt pps odt ods odp zip gz bz2 xz patch diff wav ogg flac ogv mp4 qtz.