building from kernel source rpm

Bryn M. Reeves bmr at redhat.com
Wed Nov 28 17:46:19 UTC 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/28/2012 05:07 PM, JD wrote:
> The main point is that the build takes too darned long. On my
> unicore cpu, it takes almost 2 days. Building bazillions of useless
> modules is a great waste of time and machine.

If you want to change the set of modules enabled you'll have to do a
bit more as the kernel .config options aren't exposed in the spec file
in a way that you can control via rpmbuild options.

That said, you should check out Richard's suggestion as you may find
that it's the many variant (up/smp/pae/debug/debuginfo etc.)
sub-packages that are chewing up the time for you. If turning those
off gives you an acceptable build time it's less invasive than munging
the KConfig options to drop unneeded modules.

If you decide you do need to do that though you'll need to install the
SRPM (either with bare RPM build directory or via mock) so that you
can get access to the individual sources and patches that make it up.

If you're using the normal RPM directory layout then the files you're
interested in will end up in $rpmbuild/SOURCES (where $rpmbuild is
whatever RPM's %_topdir macro is set to).

For the kernel the interesting files are config-*-generic,
config-*-smp etc., Makefile.config and a perl script named merge.pl:

$ cd rpmbuild/SOURCES
$ ls config-* merge.pl Makefile.config
config-arm-generic		config-powerpc32-generic
config-arm-highbank		config-powerpc32-smp
config-arm-imx			config-powerpc64
config-arm-kirkwood		config-powerpc-generic
config-arm-omap-generic		config-rhel-generic
config-arm-tegra		config-s390x
config-debug			config-sparc64-generic
config-generic			config-x86-32-generic
config-i686-PAE			config-x86_64-generic
config-local			config-x86-generic
config-nodebug			merge.pl
Makefile.config

The structure of the config files is fairly self-explanatory;
config-generic is the global catch-all and architectures and variants
(e.g. PAE, smp) can override specific values as needed.

If you just want to make a few local changes you can drop them into
config-local - this should have the highest precedence and is is
automatically merged by kernel.spec during %prep.

Regards,
Bryn.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlC2TesACgkQ6YSQoMYUY979UACaA9xfSrM+sWT8c7FZsg+ecBwQ
8Z8AniFen3ow85YQrSO0B3YAb5a6LIXo
=PM95
-----END PGP SIGNATURE-----


More information about the users mailing list