Anyone have a link to a really good, easy to follow, kernel compile guide?
I have tried many times to compile a kernel so I can move off the generic one I am using now, and failed miserably almost every time, my latest, most successful attempt was the 2.6.20 kernel, I spent a considerable amount of time configuring it, adding what I think I need, and removing what I don't. After I installed it, I did a reboot and the computer booted within seconds, to which I was pleasantly surprised and extremely pleased with myself. I did notice, however during boot there were a couple of "FATAL" error messages, but I couldn't see what they were as they went by too fast. This didn't seem to make much of a difference, as it still booted to an X session and I could use it as normal. The problem is, when I wa using the generic kernel, my cpu usage hovered around 3-5% when idle, with the new kernel this figure is now in the 20s. So I think to myself, "I've done something wrong, again." It is really annoying because I spend so much time configuring and compiling, only to have to do it again. Any help would be appreciated, thanks.
You didn't mention what distro you are using.
Here are some random things I'd ask you first.
Are you sure that it is your kernel that is causing extra cpu usage. Most distro default kernels will have some things compiled into the kernel and all other things are modules which will load/unload as required.
Could it be that you are running a distro that starts off with allot of services running. Services mean servers or daemons running in the background and I have found with some distros there are way more enabled by default than I really need.
Try figuring out what might be running that is causing that 5%. Have you run "ps -A" or "top" as root?
As for compiling there's heaps of how to's out there, and there's docs in the kernel souce too. There might be others, but I know for sure that there is a 2.6 compile howto with pages of thread at the slackware forum on right here on linuxquestions
There is a utility that's been around for a few years, that helps with building new kernels. It's called buildkernel. You can keep the current working kernel and /lib/modules, and build a new kernel with a new /lib/modules for that kernel. If anything goes wrong, you can still boot the working kernel. After compiling a new kernel with buildkernel, it's simply a matter of copying the compressed kernel image to /boot (with an appropriate name so that it isn't confused with vmlinuz), and editing the bootloader config file to add the new image to the boot menu.
You can then test the new kernel, but still have the original as fallback until the new kernel is proven, before deleting the old one.
Right. The thread title is not suggested by your post. Kernel compile guide? Sure:
I'd say try again, perhaps even from scratch, this time being extra careful. Read the help on everything. It's time consuming.. that's that. Also take a look at the `dmesg` utility (see what it does).
http://www.kroah.com/lkn/ - link to the free O'Reilly Book "Linux Kernel in a Nutshell". It's a guide aimed at users for compiling their kernel.
To introuble, you are correct in assuming my distro is Slackware, I play with others, but this is my main one because I like it more than the rest. Also, don't I have to do make modules before make modules_install? This is what I have read in many of the places I have looked.
To justwantin, there are quite a lot of processes running when I use ps -A, and when I run top, the process which takes up most cpu is X. The rest take up hardly anything.
to XavierP, thanks for the lik, I'm gonna check it out right now.
Thank you all for responding.
I have just run top with the 2.6.20 kernel I have already compiled, and X is now around 10% and kicker around 15% although I can't understand why.
The book says NOT to compile in /usr/src and this is where I have been doing it. Perhaps this is why some of my shared library objects have gone missing.
Linus has posted many times about not compiling kernels in /usr/src but5 I'd venture to say that most people still do probably because until memory became relatively cheap most linux users didn't want to keep 50-60 mb of kernel source in in one part of their hd and copy it somewhere else just to do a compile. Old habits die hard especially if the old habit causes no problem.
The rest of this may be a bit tedious for most readers but john might find it helpful for a comparison with his computer.
I am pasting in the output of top and ps -A on my box with 1 konsole (2 sessions), 1 konqueror, kmail and 2 kedits open. This is on a 18.104.22.168 kernel from slack-2.11 install disk, running kde-3.5.6 acquired from linuxpackages.net. Note that some of the things running in my box are sitting in the panel, e.g. kweather,amorak and not opened up. I'll also give you an ls -l /etc/rc.d so that you can see what services are set to run by being executable.
top - 06:04:26 up 47 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 79 total, 1 running, 78 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.7%hi, 0.3%si, 0.0%st
Mem: 1035948k total, 499348k used, 536600k free, 49392k buffers
Swap: 1100412k total, 0k used, 1100412k free, 287732k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2627 rick 15 0 58444 38m 19m S 0.0 3.8 0:10.43 konqueror
2618 rick 15 0 110m 37m 23m S 0.0 3.7 0:04.47 amarokapp
2898 rick 15 0 91764 33m 20m S 0.0 3.3 0:01.88 kmail
2569 rick 15 0 47716 25m 15m S 0.0 2.5 0:01.19 kicker
2557 rick 15 0 40688 22m 12m S 0.0 2.2 0:01.34 kded
2567 rick 15 0 39012 21m 12m S 0.0 2.2 0:00.94 kdesktop
2492 root 15 0 36432 21m 3924 S 0.0 2.1 0:18.79 X
3074 rick 15 0 39388 20m 11m S 0.0 2.0 0:00.73 konsole
2617 rick 15 0 37288 20m 11m S 0.0 2.0 0:00.17 kmix
2635 rick 15 0 36680 20m 11m S 0.0 2.0 0:00.25 kedit
2601 rick 15 0 37072 19m 10m S 0.0 1.9 0:00.18 kio_uiserver
2565 rick 15 0 36216 19m 10m S 0.0 1.9 0:00.62 kwin
2912 rick 15 0 34500 18m 10m S 0.0 1.9 0:00.21 kwalletmanager
2900 rick 15 0 40252 18m 9940 S 0.0 1.8 0:00.10 knotify
2640 rick 15 0 34884 17m 9376 S 0.0 1.7 0:00.09 klipper
2573 rick 15 0 33652 17m 9496 S 0.0 1.7 0:01.51 kweatherservice
2564 rick 16 0 33428 15m 8056 S 0.0 1.6 0:00.06 ksmserver
2613 rick 15 0 33416 15m 7920 S 0.0 1.6 0:00.04 kaccess
3018 rick 15 0 59480 15m 7388 S 0.0 1.5 0:00.05 kio_http
3025 rick 15 0 59480 15m 7380 S 0.0 1.5 0:00.02 kio_http
3037 rick 15 0 59480 15m 7380 S 0.0 1.5 0:00.02 kio_http
3023 rick 15 0 59480 15m 7376 S 0.0 1.5 0:00.02 kio_http
3024 rick 15 0 59480 15m 7380 S 0.0 1.5 0:00.02 kio_http
bash-3.1$ ps -A
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 ksoftirqd/0
3 ? 00:00:00 events/0
4 ? 00:00:00 khelper
5 ? 00:00:00 kthread
7 ? 00:00:00 kblockd/0
8 ? 00:00:00 kacpid
77 ? 00:00:00 khubd
79 ? 00:00:00 kseriod
122 ? 00:00:00 pdflush
123 ? 00:00:00 pdflush
124 ? 00:00:00 kswapd0
125 ? 00:00:00 aio/0
789 ? 00:00:00 ata/0
841 ? 00:00:00 reiserfs/0
1007 ? 00:00:00 udevd
1746 ? 00:00:00 kgameportd
1762 ? 00:00:00 shpchpd
2069 ? 00:00:00 kpsmoused
2125 ? 00:00:00 jfsIO
2127 ? 00:00:00 jfsCommit
2128 ? 00:00:00 jfsSync
2189 ? 00:00:00 syslogd
2192 ? 00:00:00 klogd
2350 ? 00:00:00 rpc.portmap
2359 ? 00:00:00 rpc.statd
2377 ? 00:00:00 inetd
2385 ? 00:00:00 sshd
2402 ? 00:00:00 cupsd
2448 ? 00:00:00 crond
2450 ? 00:00:00 atd
2453 ? 00:00:00 sendmail
2456 ? 00:00:00 sendmail
2459 ? 00:00:00 acpid
2485 ? 00:00:00 gpm
2487 tty6 00:00:00 agetty
2488 ? 00:00:00 kdm
2492 tty7 00:00:26 X
2493 ? 00:00:00 kdm
2508 ? 00:00:00 startkde
2549 ? 00:00:00 start_kdeinit
2550 ? 00:00:00 kdeinit
2553 ? 00:00:00 dcopserver
2555 ? 00:00:00 klauncher
2557 ? 00:00:01 kded
2562 ? 00:00:00 kwrapper
2564 ? 00:00:00 ksmserver
2565 ? 00:00:00 kwin
2567 ? 00:00:01 kdesktop
2569 ? 00:00:01 kicker
2571 ? 00:00:00 kio_file
2573 ? 00:00:01 kweatherservice
2601 ? 00:00:00 kio_uiserver
2611 ? 00:00:00 artsd
2613 ? 00:00:00 kaccess
2617 ? 00:00:00 kmix
2618 ? 00:00:05 amarokapp
2627 ? 00:00:17 konqueror
2635 ? 00:00:00 kedit
2638 ? 00:00:12 perl
2640 ? 00:00:00 klipper
2679 ? 00:00:00 ruby
2898 ? 00:00:01 kmail
2900 ? 00:00:00 knotify
2912 ? 00:00:00 kwalletmanager
2974 ? 00:00:00 mouseup
3074 ? 00:00:00 konsole
3075 pts/2 00:00:00 bash
3097 ? 00:00:00 kedit
3177 ? 00:00:00 ispell
3223 ? 00:00:00 sleep
3232 pts/2 00:00:00 ps
bash-3.1$ ls -l /etc/rc.d
lrwxrwxrwx 1 root root 4 2007-02-13 14:26 rc.0 -> rc.6
-rwxr-xr-x 1 root root 1160 2006-09-25 18:33 rc.4
-rwxr-xr-x 1 root root 6782 2006-09-25 18:33 rc.6
-rwxr-xr-x 1 root root 2322 2006-09-25 18:33 rc.K
-rwxr-xr-x 1 root root 10022 2006-09-25 18:33 rc.M
-rwxr-xr-x 1 root root 14408 2006-09-25 18:33 rc.S
-rwxr-xr-x 1 root root 466 2004-11-05 19:20 rc.acpid
-rwxr-xr-x 1 root root 1614 2006-08-05 12:50 rc.alsa
-rw-r--r-- 1 root root 1032 2003-02-02 14:47 rc.atalk
-rw-r--r-- 1 root root 4178 2006-05-04 09:31 rc.bind
-rwxr-xr-x 1 root root 3942 2006-08-17 15:19 rc.cups
-rw-r--r-- 1 root root 512 2006-08-08 14:02 rc.dnsmasq
-rwxr-xr-x 1 root root 139 2007-02-13 14:40 rc.font
-rwxr-xr-x 1 root root 119 2004-05-30 14:19 rc.font.new
-rwxr-xr-x 1 root root 1148 2007-02-13 14:38 rc.gpm
-rwxr-xr-x 1 root root 1675 2006-09-06 18:44 rc.hal
-rwxr-xr-x 1 root root 2243 2006-09-21 09:50 rc.hotplug
-rw-r--r-- 1 root root 401 2003-03-06 08:28 rc.httpd
-rwxr-xr-x 1 root root 8325 2006-09-21 12:48 rc.inet1
-rw-r--r-- 1 root root 3575 2007-02-13 14:39 rc.inet1.conf
-rwxr-xr-x 1 root root 4477 2006-09-21 12:44 rc.inet2
-rwxr-xr-x 1 root root 497 2003-09-12 13:27 rc.inetd
-rw-r--r-- 1 root root 1924 2003-09-14 09:10 rc.ip_forward
-rwxr-xr-x 1 root root 272 2006-09-25 18:33 rc.local
-rwxr-xr-x 1 root root 1755 2007-01-24 03:56 rc.messagebus
lrwxrwxrwx 1 root root 19 2007-02-13 14:26 rc.modules -> rc.modules-22.214.171.124
-rwxr-xr-x 1 root root 25553 2006-09-01 18:31 rc.modules-126.96.36.199
-rwxr-xr-x 1 root root 28472 2006-09-09 16:33 rc.modules-188.8.131.52
-rw-r--r-- 1 root root 2300 2006-09-02 12:15 rc.mysqld
-rwxr-xr-x 1 root root 2444 2006-09-21 13:05 rc.nfsd
-rwxr-xr-x 1 root root 5090 2006-08-17 06:48 rc.pcmcia
-rwxr-xr-x 1 root root 2000 2006-09-22 08:07 rc.rpc
-rw-r--r-- 1 root root 791 2006-09-02 16:14 rc.samba
-rw-r--r-- 1 root root 1169 2006-05-28 06:24 rc.saslauthd
-rwxr-xr-x 1 root root 967 2006-09-25 18:33 rc.scanluns
-rwxr-xr-x 1 root root 687 2002-06-05 07:09 rc.sendmail
-rw-r--r-- 1 root root 2895 2006-09-25 18:47 rc.serial
-rwxr-xr-x 1 root root 1222 2006-09-29 07:17 rc.sshd
-rwxr-xr-x 1 root root 860 2004-05-03 08:07 rc.syslog
-rwxr-xr-x 1 root root 1740 2006-09-25 18:33 rc.sysvinit
-rwxr-xr-x 1 root root 4711 2006-09-14 10:11 rc.udev
-rwxr-xr-x 1 root root 9453 2006-08-17 06:20 rc.wireless
-rw------- 1 root root 7320 2006-08-17 06:20 rc.wireless.conf
-rwxr-xr-x 1 root root 2323 2005-08-01 09:56 rc.yp
Wow, thanks for that. But am I supposed to run those commands with the generic kernel distributed as Slackware's default, or the compiled one? Your cpu usage is much lower than mine, could this be a result of my cpu clock speed being a mere 700Mhz? I need to upgrade, but I can't afford it right now.
I wouldn't worry about different cpus or ram the difference between my box and yours can't be explained there. Each revision of kde seems more efficient than the last but that won't matter much here either
The above command output came off a 2 week old install. I always install with Pat's default (2.4 in this case) and then upgrade by installing Pat's 2.6. I always use bare.i and haven't had to compile my own for awhile now.
If you were to do any comparison with what I posted you'd need to have an fairly unmodified install with 184.108.40.206 bare.i kernel and the same permissions as in my /etc/rc.d.
If X seems to be the hog. Have you booted up without X? What is your cpu usage then? If its back down then maybe it is something to do with your X configuration, driver, or video card. I don't know too much about these things but if you have lost some of your video (card) memory, could you be taking it from you system?
Do you have important files and /home on their own partition? If so why not reinstall? I know its a bit wondowsish but it may tell you whether this is something do to something you did or if a clean install has this problem then it may not be kernel/software related, but rather hardware.
Have you checked your ram with memtest?
I will try booting to runlevel 3, and check it then. I think I'll check out bare.i too, can I take it from the cd and use it straight away?
memtest seems to show no problems with ram, I checked it a few weeks ago and left it running for about 6 hours.
My /home directory is on a separate partition on my second hard disk so re-installing wouldn't be a problem. I would really prefer not to re-install though, as I have been using Linux for a few months now and started with Slackware. During that time I have messed up and had to re-install countless times. It's been frustrating, but I have learned a lot. The main reason I would like to keep the install I have is because of all the programs I have compiled and installed, and I recently got Bluetooth set up, which was a huge pain and would not like to have to do it again.
I just rebooted without X and cpu usage stayed at a steady 0.3%
I've noted your cpu usage. Now what's not running in runlevel 3 that would be running in runlevel 4?
Process of elimination, What runs in the background other than X? Anything that is not stock slack-11? This is also what I was getting at with the permissions in my /etc/rc.d, if it isn't set to execute it isn't running. You've gotten bluetooth going, what does that run in the background if anything? Anything else?
Here's some examples of things that can go wrong. I was have the symptoms of memory loss. It turned out the audacity was not shutting down when gui was closed. 4 audacity processes going behind the scenes, 45 % cpu with the aps running feral. Also I tried to view dvb-t but had forgotten to install nvidia driver first. Default slack xorg config was ok but not good enough for dvb-t and memory buffering/whatever gave jerky display. Never checked the memory use though.
One was a software problem and the other just plain forgetfullness on my part.
Probably too late to tell you. When I compile I make my own slackpacs using checkinstall instead of make install. I also make notes on the tweeks and configurations I do for future reference. My / /usr /usr/local /home and /opt all get there own partitions so install only wipes / and /usr when moving up a version
My first linux was suse preinstalled on a box I purchased in 2000. By the time I switched to Mdk the same year I probably held the Guiness record for reinstalls. Mdk wasn't much better and eventually I switched to Slack in 2001. still did allot of installs but I was learning all the time. Took sme time but I learned a bit more each time. This box with the two week old install was a reinstall just because I had fiddled around a bit and probably had installed some stuff I didn't need since oct 06. I figured I'd start from scratch again and pay a little more attention to what I install this time. That being said I never mess with my daughter's box or the server (both slack) they just keep chugging along after initial install and config with only tweeks as required. I only crash and burn my own.
All the bluetooth stuff runs in runlevel 3 too (except kbluetoothd), I made a script which does everything I need to start bluetooth and then call that from the startup scripts. As for other prcesses not in 3, but in 4. There are quite a few, I will reboot, make a list of everything that shows up in ps -A in both runlevels. But for a start I know of a few, yakuake, superkaramba, kbluetoothd, kbfx.
I don't suppose you happen to know what "msp3410 [auto]" is?
wwww.google.com/linux is your friend. Haven't read any but there are heaps
|All times are GMT -5. The time now is 01:54 AM.|