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.
I'm following this guide, but I have a couple questions:
1) What's the difference between compiling something into the kernel or as a module? Is one better than the other? Is one supposed to be used for certain aspects?
2) Is that a good guide? The only thing I've changed is instead of compiling in /usr/src I compiled into a different directory.
This is my first kernel compile so my main concern is with the include or module option.
1) Let's talk about the kernel as a file. In Linux you compile the kernel into a file, you can, include support for things directly into that file (built-in) or split them in separate files (modules).
Not all things can go as modules, usually device drivers go as modules.
There's not such advantage in nowadays systems if you put them as built-in or modules, but it's always a good practice (and this makes a good system) to include support for the stuff you actually use as built-in, the thing that you might use as modules, and not compile things you won't touch.
Of course, the less things a kernel has the faster, but you may need to recompile it if you need to add something.
2) I haven't read it but as seeing it's from Slackbook project, I'm pretty sure it will be good
Just finished the compile and rebooted. I have 1 problem though .
The problem is I have no internet connection when booting into the new kernel. I'm guessing I'm missing something when I compiled, but not sure what.
Any idea of what I could of missed as I'm clueless ?
Since I missed an option or two, do I have to reconfigure the whole kernel or did it save the configuration?
Also how do I boot back into the old kernel? I tried changing the lilo.conf, but everytime I reboot it doesn't do what I tell it to.
I changed tried changing the default boot from Linux to Linux.old, but it still boots Linux. I tried changing the timeout so I can choose which one to boot, but it gives me no option and just boots Linux.
Check if your card is recognized, type ifconfig and see if you see it there. Also if you compiled your card driver as module, is it loaded?
The configuration is the .config file, note it's a "hidden" file, you can see it with ls -a and it's under the kernel source directory (/usr/src/linux-X.X.XX). So if you didn't deleted that file, you can simply run: make menuconfig or make xconfig and edit it.
To able to choose between kernels, you need at least these options in lilo.conf:
prompt
timeout = 100
By the way, I forgot to say in the other post, that critical drivers like the filesystem of your root directory is recommended to be compiled directly into your kernel or it won't be able to mount your root disk (you could use a init ram disk, but it's a more difficult task and not necessary).
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/hda
message = /boot/boot_message.txt
prompt
timeout = 100
# Override dangerous defaults that rewrite the partition table:
change-rules
reset
# Normal VGA console
vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# End LILO global section
# Linux bootable partition config begins
delay = 0
default = Linux.old
image = /boot/vmlinuz
root = /dev/hda2
label = Linux
read-only
image = /boot/vmlinuz.old
root = /dev/hda2
label = Linux.old
read-only
# Linux bootable partition config ends
I have the options in the lilo.conf, but it still doesn't give me any options. Weird thing is, when rebooting the computer at the intial lilo screen it shows the "Linux" and "Linux.old", but under that it shows in text my two options are "Linux" and "Windows". I never had any Windows OS for months, I installed Slack when there was no Windows. There is also no "Windows" option in the lilo.conf . . . I think that could be my problem, since those are the only two options and "Windows" is not viable it just boots into the 2.6 kernel.
From the ifconfig output it doesn't look like the card is recognized. I noticed inet addr was 127.0.0.1 so I tried reconfuring it, but it didn't change anything with the ifconfig output.
Sorry I couldn't upload the files onto an FTP and link them. My family's Windows machine has no FTP client so I had to post the files as code .
My main concern right now is to get back into the 2.4 kernel so I can try recompiling the 2.6 kernel and try to get the card to work.
lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS] SiS 645xx (rev 11)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS]: Unknown device 0003
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS963 [MuTIOL Media IO] (rev 25)
00:02.1 SMBus: Silicon Integrated Systems [SiS]: Unknown device 0016
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] Sound Controller (rev a0)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 91)
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R350 [Radeon 9800]
01:00.1 Display controller: ATI Technologies Inc Radeon R350 [Radeon 9800] (Secondary)
From that I can see my card "00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 91)".
Also I was looking around with the lilo.conf and noticed the /boot/bood_message.txt was the one saying "Linux" and "Windows" as my two options, so I'm sure that isn't the problem about it not giving me a choice at boot.
You need to compile the sis900 driver for it, note that if it's compiled into the kernel it won't be seen with lsmod.
Edit: mdarby pointed you in the right direction.
As for lilo, try running lilo with -v -v -v parameters (it will display more information, maybe you can spot something with that).
You could also try a new configuration generated with liloconf, sometimes starting again solves the problem.
Alright I'm recompiling the kernel right now. Looks like I didn't have my card compiled in or compiled as a module. Hopefully this will work, we'll see in 5 minutes.
If this works I won't have to figure out the lilo problem lol
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.