building from kernel source rpm

Rick Stevens ricks at alldigital.com
Wed Nov 28 18:52:46 UTC 2012


On 11/28/2012 09:46 AM, Bryn M. Reeves issued this missive:
> -----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.

I reiterate:

	1. Install the kernel source RPM.

	2. Navigate to your ~/rpmbuild/SPECS directory.

	3. Do "rpmbuild -bp --target=x86_64 kernel.spec" or
	   "rpmbuild -bp --target=i686 kernel.spec" depending on your
	   processor.

	4. Once that's complete, navigate to your
	   ~rpmbuild/BUILD/kernel-3.6.fc17/linux-3.6.7-4.fc17.x86_64
	   directory. Read the "README" file. I say again, read the
	   README file!

	5. Run "make nconfig" or "make xconfig" or whatever
	   "make *config" floats your boat and bugger the configuration
	   as you see fit.

	6. Run "make" to build the kernel as you've specified. Follow
	   the directions in the README file's "COMPILING the kernel"
	   section.

That README file is chock full of what you need to do. This is the way
customized kernels are built. Always has been, probably always will be.
----------------------------------------------------------------------
- Rick Stevens, Systems Engineer, AllDigital    ricks at alldigital.com -
- AIM/Skype: therps2        ICQ: 22643734            Yahoo: origrps2 -
-                                                                    -
-     I was married by a judge.  I should have asked for a jury.     -
-                                                   -- Groucho Marx  -
----------------------------------------------------------------------


More information about the users mailing list