[PlanetCCRMA] Re: Preemptible kernel patch

Fernando Pablo Lopez-Lezcano nando@ccrma.Stanford.EDU
Sat Nov 2 15:20:03 2002


> The preemptible patch included in the ccrma kernel conflicts with my modem 
> driver (hsflinmodem). Is there any way to disable it? ...maybe using the 
> source rpms??... or maybe it's time to learn how to compile my own 
> kernel... :-(

The only way is to recompile the kernel without that option turned on. It 
is not something you can disable at runtime. I should probably expand on 
the "rebuild your kernel" section of the planet pages. 

I'm working on a new kernel. So far 2.4.20-rc1 is not working rigth. I'm 
currently looking at the Jussi Lako's patches, they seem to produce a very 
low latency kernel, maybe not up to the latest (seems to derive from 
2.4.20-pre4) but well, if it has low latency... it includes a new 
scheduler but I think it does not include the preemptible kernel patch. 

Let's see, this is what you would need to do (this is from memory, it may
be that some paths or names are slightly off):

- rpm -Uvh the kernel source rpm (not the binary rpm that has the kernel 
  sources). This will unpack all kernel sources and put the spec file in 
  the proper place. See the appendix on rebuilding the kernel for a url to 
  the source rpm. 
- cd /usr/src/redhat/SPECS
- rpm -bp kernel-2.4.19-1.ll.spec 
  (this untars and patches the kernel, does not built it yet)
- cd /usr/src/redhat/BUILD/kernel-2.4.19-1.ll/linux-2.4.19/
- copy the i686 configuration file you want to change:
  cp configs/kernel-2.4.19-i686.config .config
- do a "make xconfig", unselect the "preemptible kernel" option, I think 
  it is in the processor section. 
- save the configuration and quite the configurator
- copy back the configuration file to the sources directory:
  cp .config /usr/src/redhat/SOURCES/kernel-2.4.19-i686.config
- do the same for the i386 config file (why? you will need to generate 
  both the i386 kernel and the i686, you need the i386 so that you will 
  get the source package you will latter need to compile the modem driver. 
- you don't need to create the smp kernels, you can edit the spec file and 
  turn off the build_smp variable. You could also bump the version or 
  change the postfix so that you do not have the same version as the 
  planet kernel. 
- build the kernels:
  rpm -ba kernel-2.4.19-1.ll.spec
  rpm -ba --target i686 kernel-2.4.19-1.ll.spec
- install the resulting rpms.....

Of course this is more complicated than just building and installing the 
raw kernel. The process is more involved because you are updating the 
rpms. 

-- Fernando

> Thanks,
> Pato.
> ==========
> make[1]: Entering directory `/home/pdelac/Download/SOURCES/hsflinmodem-
> 5.03.03.L3mbsibeta02101001/modules'
> * Compiling mod_osspec.c
> In file included from mod_osspec.c:51:
> ../modules/osspec/include/oscompat.h:121:2: #error Preemptible kernel option 
> (CONFIG_PREEMPT) not yet supported. Reconfigure your kernel without it.
> make[1]: *** [mod_osspec.o] Error 1
> make[1]: Leaving directory `/home/pdelac/Download/SOURCES/hsflinmodem-
> 5.03.03.L3mbsibeta02101001/modules'make: *** [modules] Error 2