LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Kernel (https://www.linuxquestions.org/questions/linux-kernel-70/)
-   -   Non Modular Kernel RPM (https://www.linuxquestions.org/questions/linux-kernel-70/non-modular-kernel-rpm-465560/)

DigiCrime 07-19-2006 10:29 AM

Non Modular Kernel RPM
 
Hi

Trying to build a new kernel but all the stuff I need is built in, no modules after make menuconfig I run make rpm.. I forgot how to make an RPM out of it actually but when I do a make rpm it goes thru the entire process but at the end it errors


Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.67514
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd kernel-2.6.17.5
+ mkdir -p /var/tmp/kernel-2.6.17.5-root/boot /var/tmp/kernel-2.6.17.5-root/lib /var/tmp/kernel-2.6.17.5-root/lib/modules
+ INSTALL_MOD_PATH=/var/tmp/kernel-2.6.17.5-root
+ make modules_install

The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.

make[2]: *** [modules_install] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.67514 (%install)


RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.67514 (%install)
make[1]: *** [rpm] Error 1
make: *** [rpm] Error 2

root@partners [/usr/src/linux-2.6.17.5]# cat /var/tmp/rpm-tmp.67514
#!/bin/sh

RPM_SOURCE_DIR="/usr/src/linux-2.6.17.5/.."
RPM_BUILD_DIR="/usr/src/redhat/BUILD"
RPM_OPT_FLAGS="-O2 -g -march=i386 -mcpu=i686"
RPM_ARCH="i386"
RPM_OS="linux"
export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
RPM_DOC_DIR="/usr/share/doc"
export RPM_DOC_DIR
RPM_PACKAGE_NAME="kernel"
RPM_PACKAGE_VERSION="2.6.17.5"
RPM_PACKAGE_RELEASE="1"
export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
RPM_BUILD_ROOT="/var/tmp/kernel-2.6.17.5-root"
export RPM_BUILD_ROOT


set -x
umask 022
cd /usr/src/redhat/BUILD
cd kernel-2.6.17.5
mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib $RPM_BUILD_ROOT/lib/modules
INSTALL_MOD_PATH=$RPM_BUILD_ROOT make modules_install
cp $KBUILD_IMAGE $RPM_BUILD_ROOT/boot/vmlinuz-2.6.17.5
cp System.map $RPM_BUILD_ROOT/boot/System.map-2.6.17.5
cp .config $RPM_BUILD_ROOT/boot/config-2.6.17.5

The spec file is made after I "make rpm"

Thetargos 07-19-2006 12:06 PM

Check the .spec, disable the make modules or modules_install steps, and rebuild.

johnson_steve 07-19-2006 12:06 PM

Why would you disable loadable modules support? I don't like modules either, but even with everything compiled into the kernel you should have this on. Now I don't know anything about about making an .rpm, but to me it looks like it is calling make modules_install and this fails because your kernel doesn't have support for modules. go back to make menuconfig and under 'Loadable module support' I would a least enable these 3:

Code:

[*] Enable loadable module support             
[*]  Module unloading
[*]    Forced module unloading                                     
[ ]  Module versioning support                                     
[ ]  Source checksum for all modules                               
[ ]  Automatic kernel module loading

Some things you just can't do without modules; like the nvidia driver for example or my wifi driver: it's unstable and causes the kernel to crash so I load the module to go online then unload it when I'm done for stability. If you have loadable module support it just means the kernel can load a module. If you compile everything into the kernel 'make modules_install' won't even install any modules.

DigiCrime 07-19-2006 12:16 PM

I run servers, not desktops thats why I build my kernels statically... less attempts at exploits, all my hardware is the same so I can interchange drives and chassis around without hiccups and I know exactly what needs to be built into kernels when I load the previous config file.

Yes if I was running a desktop enviroment I would have a modulated kernel but statically built I know what I need, and takes less time to boot ;)

Quote:

Originally Posted by Thetargos
Check the .spec, disable the make modules or modules_install steps, and rebuild.

I figured as much, the spec file is above I cat the output of the spec file I guess all I need to do is just remove the lines and run make rpm again but I think ill just have the same problem again. The spec file only shows up after I make rpm, not before... i'll find out

Thetargos 07-19-2006 12:22 PM

You should then modify the macros for the spec generation in the topo most Makefile.

DigiCrime 07-19-2006 02:14 PM

Ok, modified I havent got a test system I can try it on yet so I wont know for sure anyone wanna test it ? lol http://stlhosting.com/kernel-2.6.17.5-2.i386.rpm

This is a intel based config, with some scsi/smp support mostly generic.

If I have to edit the macro file every time that could be a headache :scratch:

Thetargos 07-19-2006 02:22 PM

Quote:

Originally Posted by DigiCrime
Ok, modified I havent got a test system I can try it on yet so I wont know for sure anyone wanna test it ? lol http://stlhosting.com/kernel-2.6.17.5-2.i386.rpm

This is a intel based config, with some scsi/smp support mostly generic.

If I have to edit the macro file every time that could be a headache :scratch:

I use the rpmbuild system, and actually have the spec under my SPECS directory of my defined rpmbuild environment (which in my case is not /usr/src/redhat, but ~/rpmbuild). You can define your build environment in the .rpmmacros file and set your path and what not, just you will have to replicate the /usr/src/redhat tree, then manage all through .specs, build with rpmbuild $RPMBUILD/SPECS/<your_kernel>.spec and make sure you have all you need in $RPMBUILD/SOURCES, including .configs and what not. That should work well for you.

DigiCrime 07-19-2006 02:41 PM

yup, kinda figured just dont have a whole lot of spare time lol some day ill get it fixed up for everything


All times are GMT -5. The time now is 08:09 AM.