Best of Technical Support

Our experts answer your technical questions.
Bootable Kernels and Slackware Installation

I have a new scsi controller (aha2940) which my only hard drive is connected to. I can get the latest boot disk for my controller, but the kernel that gets installed by Slackware is unbootable. How do I use the kernel on my boot disk as a kernel for my hard drive? How can I boot from the floppy and compile a kernel for my hard drive?

Manni Wood

A Work-around

During the Slackware installation procedure, a kernel is installed from the distribution set instead of from the boot disk that you used to start your i system. Handling the installation this way has the unfortunate side effect of making certain hardware devices unrecognizable to your new system since only two kernels are included in the distribution set—one for IDE and another for SCSI-based systems. The installation is handled this way because the boot disk kernels are “all-in-one” packages that have device drivers for every imaginable piece of hardware. This is quite inefficient for normal use, since many of the drivers are unused and these extra options will waste memory. After you install Linux you should compile and install a new kernel image with only the options you really need.

While you are setting up your system, you can use a temporary work-around that will let you use the boot disk's kernel to boot your system. Slackware boot disks prompt you for a set of options to pass to the booted kernel. One of the options will allow you to boot a system that has no working kernel image installed. At the prompt, type mount root=/dev/X , where X specifies the drive and partition where you installed Linux, e.g. sda, hdb2. This boot disk can be quite handy to have in case you forget to re-run LILO after installing a new kernel, because your system will be unbootable without it. When it is used in conjunction with a root diskette that also contains some diagnosis and recovery tools, you will have a powerful pair of emergency utility disks.

Once Linux is running you need to copy a working boot kernel to wherever LILO (assuming you installed LILO) is looking for your current image. As a general practice you'll want to keep a backup copy installed as well. You can control LILO by editing /etc/lilo.conf. The default file should be fairly well commented and you can consult the LILO documentation for more details. If you don't have the original file you can copy the boot diskette onto your drive as a kernel image with the command:

dd if=/dev/fd0 of=/tmp/myimage bs=8192

replacing if and of with the appropriate input and output locations. After the new kernel file is in place, rerun LILO by typing lilo so it can rebuild its boot tables. If you forget to take this step you will not be able to boot your system! To recompile and install a new kernel, obtain a kernel and extract the archive into /usr/src/linux. Users with Slackware distributions set up for kernel version 1.2 need to beware. Many things have changed as Linux has grown to version 2.0, so many things can break. You may wish to make this step later. Slackware 3.0 comes with the complete set of the newest version 1.2 kernel package, in the K disk set. Either install that or unpack your desired package into /usr/src/linux.

The easiest and safest (though not the nicest looking) way to rebuild the kernel is to then cd into /usr/src/linux, type make config, and answer all the questions. Then type make dep; make clean; make zImage. If you are running on an Intel platform your new kernel image will be produced in /usr/src/linux/arch/i386/boot/zImage . Be prepared to wait, especially if you have a slow machine. If you are using a newer kernel package, you might type make menuconfig or one of the other combinations (see Makefile for details) for a better-looking configuration process.

—Chad RobinsonBRT Technical Services Corporation

Drivers for 8 or 16 Port Serial Cards

Do you know where I could find a driver for a Jaws (extinct?) JCom-8 eight port serial card? What other 8 or 16 port cards would allow me to operate 8 Wyse 150 terms from Linux? —Gary Richardson

Here's One Source

That's not a card I've ever even heard of. To answer the second part of the question, there are several cards out there that can do what you need. The kernel has direct support for all of the Cyclades boards. We use a 16 port PCI Cyclades at Red Hat and it worked right out of the box (though it requires a kernel recompile or a module to be built).

—Donnie Barnes, Red Hat Software