SlackwareThis Forum is for the discussion of Slackware 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.
Hello. I'm not too familiar with slack. The way I compile kernel in gentoo or arch is rather simple, just make and modules_install does it. And then copying over bzImage and System.map to /boot. I also copied the config file just in case. However I'm getting:
Code:
kernel panic - not syncing:VFS:Unable to mount rootfs on unknown-block(3,4)
All I did was modify the default kernel and recompiled it. Didn't change anything except put my name instead of smp just to test how things are done in slack. And I did configure lilo, as it is showing in the menu.
Thnx for replying, but is initrd really needed? By default I don't see any initrd image of the default kernel either. Hence I didn't create any.
>> oneBuck
yes I ran lilo after configuring /etc/lilo.conf and it gave one warning: LBA32 assuming...I can't remember the exact error. :P
Then it added Windows and the two linux kernels.
EDIT: Hi oneBuck, I saw your kernel compile guide, but they are outdated now. Would you please guide me from start how to do it in slack? Or is there already a new guide for 13? I'm going to try the new kernel 2.6.31
TIA
initrd isnt needed for the huge kernel..but for the generic kernel you need one..
editlease dont ask the difference between the two kernel.me too a newbie
Last edited by mobinskariya; 09-13-2009 at 09:53 AM.
All you should have to do is make *config, make, make modules, make modules_install, copy bzImage to /boot/vmlinuz-whatever, ditto System.map, edit lilo.conf, run lilo. An initrd isn't necessary if you compile in the root filesystem drivers.
Last edited by mudangel; 09-13-2009 at 10:10 AM.
Reason: missed an s
The compilation methodology is basically the same. There might be some minor semantics/syntax but generally the same for the newer kernels. Of course if you don't provide the filesystem in your kernel then you would need to create a 'initrd' and that method has been covered many times. Most distributions have the means to indicate how to create a 'initrd'. Slackware has the '/boot/README.initrd' which should be read to understand how to create the 'initrd'.
BTW, add 'lba32' to the global section of the '/etc/lilo.conf' file then run 'lilo' to update the bootloader to get rid of the warning.
What filesystem to you have, and is the support for it built into the kernel? A mistake I did was to take the regular configuration and optimize it, but somehow oversee that ext4 support was not built into the kernel itself, but rather only as a module, conveniently stored on the ext4 partition
Kind of like locking yourself out of your car, really..
Yes but all I did was just took the default kernel's .config file and removed the -smp from append line and added -shy. Nothing else. How can that be so troublesome?
Yes but all I did was just took the default kernel's .config file and removed the -smp from append line and added -shy. Nothing else. How can that be so troublesome?
Where did you do this? Please post example as there seems to be some confusion.
Yes I definiely did screw something up by doing that. I just went to /usr/src/linux and make menuconfig and then did the above. So I'm guessing /usr/src/linux was symlinking to 2.6.29.6 the default kernel. Anyway, I will not be even thinkin about compiling my own kernel for a while until I get things sorted,being a newbie to slack it's not going to be easy. I'm already having problem with nvidia driver. Thanks for all your help though.
A kernel's modules are stored in a directory on the root partition, namely /lib/modules. To use those modules, the kernel must first mount the root partition. If the root partition's filesystem driver is a module that it must mount the root partition to access, well, that won't work, will it? When you configure the kernel, you have two options. One is to specifically make sure that your filesystem's driver is compiled into the kernel, and not as a kernel module. (Don't assume it. Check it in the kernel configuration program!) The other is to compile the filesystem driver as a module, then put it in an initrd. There's a README file about this in /boot.
The huge kernel's configuration file actually does build support for most filesystems into the kernel. The generic kernel's configuration file has them built as modules.
One thing I noticed though while system bootup, that rc.d modules where still loading 2.6.29.6 modules.
Code:
$ file /etc/rc.d/rc.modules
/etc/rc.d/rc.modules: symbolic link to `rc.modules-2.6.29.6-smp'
How do I change that to my kernel's modules?
I don't have any such 2.6.31 rc modules there.
Re-EDIT: just copied the rc.modules of older kernel and created a new symlink. :P
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.