Linux - KernelThis forum is for all discussion relating to the Linux kernel.
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 am running a slackware13.37 64 bit. I downloaded a linux 3.2.1 kernel from kernel.org and compiled it with default options and an initrd. Now when I try to boot from the kernel it gives a kernel panic and gives message which says some error in loading ext4.ko.
The logs are
...
Loading kernel modules from initrd image:
using /lib/modules/3.2.1/kernel/fs/ext4/ext4.ko
insmod: not configured to support older kernels.
....
ERROR: /dev/sda1 on /mnt failed. No such device...
I can see that while loading the initrd the insmod is failing, Would it be something to do with the 3.X range of kernels. Please let me know if there is something that i am doing wrong.
You need to update/rebuild your initrd. It contains modules from the older kernel, so when the initrd script tried to load the necessary modules to mount the root file system, this happens:
That is a bit odd. Your mkinitrd parameters seem perfectly fine, including "-k 3.2.1". Did you run "make modules_install" before running mkinitrd? And you didn't build the 3.2.1 kernel with a custom suffix?
Take a look in /boot/initrd-tree/lib/modules. There should be a "3.2.1" subdirectory containing the modules for the 3.2.1 kernel.
when you built your kernel did you use the one of the config files from /boot or did you just download and untar the 3.2 kernel and go from there. Most problems with booting a newly compiled kernel involves not having all the drivers/items built directly into the kernel or as modules. To get a kernel to boot without an initrd your need the filesystem your using and drivers for you hard drive controllers built into the kernel. When you built your kernel did you select ext4 under the filesystem section and the correct drivers for your hardware. Without knowing what kind of hardware you have and what your did or did not build into your kernel, there is not very much advice any one can really give you. The thing about building a kernel is that you have to know your hardware and what filesystems you will be accessing.
I was using existing config file "2.6.29.6-generic", may be as you said some hardware drivers were missing. So tried out with config file of "2.6.19.6-huge" without any changes and it worked. Will go backwards now and try and remove unwanted modules etc.
Thank you guys for all the help. Its a lovely community :-)
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.