SUSE / openSUSEThis Forum is for the discussion of Suse Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm having problems rebuilding 2.6.8-24 kernel with SMP enabled in a SuSE 9.2 Professional installation. The rebuild itself completes without incident, but the modules that are built and installed appear to be for a uni-processor kernel. As a result, installing any of the newly built modules results in "Invalid module format" error messages.
The procedure I followed:
1. Clean SuSE 9.2 Professional install from CDs.
2. Copy sources to a new directory and set up appropriate links.
3. # make menuconfig
Set Processor type and features --->Symmetric multi-processing support
Set Build options --->Configuration name as appropriate
4. # make dep clean
5. # make dep (which does nothing)
6. # make bzImage
7. # make modules
8. # make modules_install
9. Rename /usr/src/linux/arch/i386/boot/bzImage appropriately
10. Copy new image to /boot
11. In /boot, create soft link to new image.
12. Modify /boot/grub/menu.lst
13. Boot into new kernel.
Error message during boot:
Loading kernel/fs/reiserfs/reiserfs.ko
reiserfs: disagrees about version of symbol struct_module
insmod: error inserting '/lib/modules/2.6.8-24-mpt/kernel/fs/reiserfs/reiserfs.ko' : -1 Invalid module format
Waiting for device /dev/hda2 to appear: ok
rootfs: major=3 minor=2 devn=770
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,2)
I have confirmed the cause of this error is that the new modules are built without SMP support.
The procedure I followed and outlined above worked without problems in SuSE 9.1 Professional, kernel 2.6.4-52.
Please let me know what step I have missed in the configuration of the new kernel.
I am not sure, but did you change the EXTRAVERSION of your kernel (-mpt)? Then you need to make a new ramdisk (using the module from /lib/modules/'uname -r').
I did not explicitly modify EXTRAVERSION in /usr/src/linux/Makefile. The assignment is the default:
EXTRAVERSION = -$(shell echo $(CONFIG_RELEASE)-$(CONFIG_CFGNAME))
I did, however, modify CONFIG_CFGNAME in /usr/src/linux/.config, which should result in a change to EXTRAVERSION.
I did not make a new ramdisk. I will try that step when I have time to get back to this exercise. (I've just been yanked into a new crisis with higher priority.)
Is there a command that displays the smp/up property of a given module? I tried 'modinfo' but that doesn't display this information, unless I missed some option.
1. make dep is deprecated in 2.6
2. suggest to build fs into kernel not as a module. As far as I know you need first working/recognized fs for anything to load?
3. if you REALLY don't want to build fs into kernel: use mkinitrd (and ad to GRUB)
4. modify GRUB so it will point to right device. In your case
root=0302
taken from yours:
"rootfs: major=3 minor=2"
In SuSE you should not modify EXTRAVERSION:
EXTRAVERSION = -$(shell echo $(CONFIG_RELEASE)-$(CONFIG_CFGNAME))
it clearly points out to your config file. You can modify kernel name by changing last lines in your .config
Building the fs into kernel would resolve this particular instance of the problem. However, _all_ modules built exhibit the same behavior (verified by copying four newly built modules (the ones that I care about) into the modules directory created at installation. This resulted in same "Invalid module format" when I 'insmod').
I will try the 'mkinitrd' as you suggest. Just not sure when I'll get to it.
'mkinitrd' did the trick! Apparently, earlier versions of the kernel that I had rebuilt had succeeded only by accident, not because I had done the process correctly.
Thanks to all!
For everybody's information, the 'mkinitrd' command I invoked:
# mkinitrd -b /boot -d /dev/hda2 -m reiserfs -k /boot/vmlinuz-kernel-name -i /boot/initrd-kernel-name
(substitute required string for all instances of "kernel-name")
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.