[Tfug] linux no longer for amateurs

Bexley Hall bexley401 at yahoo.com
Fri Jan 15 22:25:49 MST 2010


> Compiling your own kernel usually IS a cast-iron bitch.
> 
> I've yet to succeed, myself.

But *why*?

In NetBSD (I haven't built a FreeBSD kernel in ages so I
can't comment on that), you edit a kernel configuration
file.  The file lists all of the devices, pseudo-devices,
etc. that you want in the kernel.  Plus parameters for certain
things (i.e., number of packet filters, number of shared
memory pages, number of consoles, etc.).

Then,

# config NAME_OF_CONFIG_FILE
# cd ../compile   (I may be misremembering the path, here)
# make all
# make install
# reboot    (for good measure)

I build kernels for each machine that I have -- trim out
the devices that aren't pertinent to that particular
machine (e.g., instead of having it support N different
flavors of network cards, just support the one or two that
are actually installed in the machine).

I usually start with GENERIC or INSTALL as they list most of 
the commonly encountered devices.  Then, I merge in portions
of LINT (which tries to list every possible configuration
option).

The biggest problem I tend to encounter is not knowing
the "name" of the driver for a paricular machine (because
I haven't opened the machine to see which chipset is actually
inside).  This is where INSTALL and/or GENERIC are wins -- you
boot one of those and just look through dmesg(1) to see
what devices it *found*.  Then, cut and paste the lines for
those devices from "LINT" into "MY_SPECIAL_KERNEL" file.

On a modern machine, the process takes a few minutes from
"config FOO" to having the machine rebooted and *running*
netbsd.FOO

Sometimes you have to:

# cd /dev
# ./MAKEDEV blah

if you don't have the right -- or right number of -- entries
for "blah" under /dev.

Userland is unaffected (though if you remove support for
something like a sound card, then don't expect sound to
work -- or anything that uses it).

So, what makes Linux kernels so different?

--don


      




More information about the tfug mailing list