Human Readable   

 

     
   
     

Error Messages and Compiling the Kernel—Day 29

© Copyright Darrell Anderson.

I finally took the apprehensive journey into compiling source code. I had grown so weary of the obnoxious kernel boot messages that I decided to venture into this new territory. Philosophically, I suppose this had to happen sooner or later because survival in the GNU/Linux world requires as much. True freedom means responsibility and if I hope to build a truly free computer then compiling source code comes with the territory. The only irritation is that I had not planned on facing this challenge so soon. Perhaps I am being anal about these kernel error messages, but after all, this is my computer.

The messages I am referring are:

  1. kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
  2. ide2: ports already in use, skipping probe
  3. Various messages related to RAID and multiple device probing
  4. Disk quotas.

I had previously concluded that the kmod messages probably were caused by not compiling scsi emulation directly into the kernel. I hoped that by compiling emulation directly that I’d eliminate that nuisance message.

I had no idea how to stop the ide2 probing. I have only two traditional IDE ports and that message irritates me. I had discovered that the boot parameter of ide2=noprobe would stop the messages, but I prefer a better fix directly in the kernel.

I have no need or use for RAID or multiple device probing and I wanted to remove that from the kernel.

Lastly, I hoped that configuring the kernel for my K6-III+ CPU would provide a small improvement in speed.

While I was experimenting, I thought I might fool around with removing a whole lot of overhead that I don’t need on my aging hardware—usb, firewire, bluetooth, hot plugging, Wifi, AGP, direct rendering, PCMCIA, various network protocols, etc.

I experienced moderate success. I was able to compile the options I wanted. However, I always have problems with depmod errors and every time I tried to perform a make modules and make modules_install the process ends with error messages or fails to complete. The make modules_install command never updated any sound modules. About half the time the recompile hosed ALSA. Based upon on-line discussions, I verified that “set version” was unchecked in the loadable modules support section. I downloaded several instructions for compiling but apparently there is something incorrectly configured on my system or I am experiencing conceptual problems. Probably both.

I used the following process:

  1. make xconfig
  2. make dep
  3. make clean
  4. make bzImage
  5. make
  6. make install
  7. make modules
  8. make modules_install

Running make install never worked despite editing the makefile INSTALL_PATH=/boot. So I wrote a simple bash script to copy the files for me. Almost since I started playing with GNU/Linux I never have used the generic names of “config,” “System.map,” or “vmlinuz.” I always append those file names with the kernel version number so I need not worry about updating a kernel and hosing my GRUB menu.lst. Thus, with my experimenting I decided to name the files xxx-ide-2.4.27-1, -2, -3, etc.

Something else I learned in this process is to be careful editing the makefile EXTRAVERSION parameter. When I appended that parameter with a “-1” the make utility went looking for a /libs/modules/2.4.27-1 directory.

On the success side of the story, compiling scsi emulation did stop the infamous kmod error messages and I hope readers puzzled by that message find hope to remedy the problem. My effort also stopped all of the RAID nonsense and disabled disk quotas. I offer a suggestion to the Slackware developer: compile scsi emulation directly into the bare.i kernel. (Note—yes, I tried the scsi kernels. They did not eliminate the kmod error messages.) You’ll quash a lot of complaints on the discussion boards; and consider running all RAID and MD checks as modules. A lot of home users are confused by the mysterious messages about RAID and “md.” Is directly compiling quota support necessary too or will modules suffice?

I always had problems when I configured for a K6 CPU, however. Eventually I tried configuring for a generic 586 and that seemed to help. Then again, I don’t know if I am seeing multiple problems here where one problem masks another. I suspect the latter because I found no discussions about people experiencing problems compiling for the K6 CPUs. Unfortunately, Mr. Torvalds seems uninterested in supporting 3D Now with the K6 family, so I probably will see little gain. The generic 586 probably is as good a choice.

A few days later I thought I’d try again. This time I performed a make mrproper. Then I reinstalled all the kernel files using installpkg. Then I created an empty /lib/modules/2.4.27-1 directory. I copied the original config file to the source directory. Then I edited the EXTRAVERSION parameter. Everything seemed to work, but once again, no modules were copied to /libs/modules. I don’t know if the modules are not being created or not copied.

I wish I could master this compiling process. I very much enjoyed seeing a “clean” boot screen. I would love to compile a lean and mean kernel for my old hardware and avoid the extra overhead. I don’t know how much that will help help performance, but I’d like to think I’d see some improvement. Unfortunately, compiling is a slow process and every time I try to figure out where I might be going wrong, I lose another hour of computer time. Frustrating! Perhaps I ought to get that second box built so I need not consume time on my primary box.

One trick I learned to help troubleshoot kernel anomalies is to use the “quiet” boot parameter. With that parameter only error messages appear on the screen. Helpful.

Another option I’d like to improve is the scroll back history buffer. From what I’ve read so far, this is part of the kernel and video card memory. I’d like to increase the buffer but don’t know how to do this. Within KDE, the Konsole xterm seems to have a huge scroll back buffer, but outside of X I am limited to approximately three or four screens. Not very much when one is troubleshooting or trying to learn.

I also notice the buffer disappears when I toggle from one tty console to another. Additionally, I notice the buffer disappears when I exit my X session after starting X from the command line. Frustrating. Am I doing something wrong, is this designed behavior, or a quirk with the Slackware design?

Another area that is starting to bug me is finding a decent console editor. Within KDE I like Kate, although for some reason occasionally Kate opens as a small window rather than the default full window I prefer. Why does this happen?

Regardless, isn’t there a simple console editor that resembles the old DOS QBasic Edit program? Something that is similar to the GUI environment in that one can use the Alt key to select menu options such as File-Save, or Edit-Copy/Paste? I think one has to be from Mars to use vi or emacs.

Finis.

Table of Contents