[PlanetCCRMA] Question About Compiling a Custom Kernel

Janina Sajka janina@rednote.net
Sun Sep 28 09:45:02 2003

Hi, Fernando:

No go, yet ...

Fernando Pablo Lopez-Lezcano writes:
> > 
> >  ... I would rather use rpmbuild to get the advantage of letting rpm
> >  manage my packages. However, I can't discover how to go about making
> >  the changes I need to the config files using rpmbuild. I can add my
> >  patch--the one that isn't in the CCRMA binary. But, I haven't been able
> >  to figure out how to change the kernel config files to remove the
> >  modules that get in the away of a successful build.
> > 
> Once you do a "rpmbuild -bp kernel-xxx" you get a ready to build tree in
> /usr/src/redhat/BUILD/kernel-xxx. In the linux-xxx/configs subdirectory
> (_and_ in /usr/src/redhat/SOURCES) you will find the configuration files
> (*.config) that are used by the spec file to build the kernel. If you
> know exactly which configuration options you want to remove you could
> edit the file that corresponds to the architecture you are building for
> (for example: kernel-2.4.22-i686.config), manually change the options
> and store that file in /usr/src/redhat/SOURCES.

I did that, manually removing the entire I2c section, and the QLA* and
WVL* modules. These are they that don't build. However, this only gives
me the error that the configurations are missing -- rather circular, it

*** End of Linux kernel configuration.
*** Check the top-level Makefile for additional configuration.
*** Next, you must run 'make dep'.

The following defaults are missing:
    AT&T/Lucent Wavelan wireless support (CONFIG_PCMCIA_WAVELAN) [N/m/?]
I2C support (CONFIG_I2C) [N/y/m/?]
   Experimental QLogic 2100/2200 support (CONFIG_FC_QLA2200) [N/m/?]
   Experimental QLogic 2300 support (CONFIG_FC_QLA2300) [N/m/?]
make: *** [oldconfig_nonint] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.75375 (%build)

> Or you can manually copy
> that file into the BUILD/kernel-xxx/linux-xxx/.config file, run "make
> xconfig" (or whatever you prefer), save the configuration and then copy
> it back to /usr/src/redhat/SOURCES with the proper name. If you now do
> an "rpmbuild -ba kernel-xxx" the build will use the modified
> configuration file. 

Trid this, too. I used make oldconfig (which prompts only for the diffs)
and said "n" to i2c, qlogic and wavelan.

I then tried two rpmbuild options, first rpmbuild -ba --target i686
which gave me the same old "they're missing" error.

Second, I consulted the man pageafresh where I gleamned that, just
perhaps, I was now past the %PREP stage and should continue the build
and install stages, rather than revisiting %PREP. So, I did:

rpmbuild --short-circuit -bc -bi kernel-2.4.22-6.ll.spec

Maddeningly, I get exactly the same error. So, is the .spec file
reintroducing these modules somehow?

I've tweaked your .spec, of course, to patch Speakup in. I assigned the
Speakup patch 5720, and the patch is definitely there in the .config. 

I don't think I've made any other changes--but I started down this trail
last weekend, so I'm not 100% sure.

> -- Fernando

Janina Sajka
Email: janina@rednote.net		
Phone: (202) 408-8175

Director, Technology Research and Development
American Foundation for the Blind (AFB)

Chair, Accessibility Working Group
Free Standards Group