[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Compiling a kernel



You have gotten a couple DIFFERENT approaches to installing a kernel on
Debian.
At least one comment should send up a warning:
if the approach becomes too intricate, or requires specialization,
very likely you read minute details that you should never need learn
(unless you're creating Debian packages).
Indeed, to follow such minute details would create configuration files
that would hinder later trying standard Debian approaches.
In particular, the standard Linux kernel package approach to installation from README in
every tar file from  ftp.kernel.org
should become fewer steps under Debian. 
To get the latest Linux kernels, you can still get your kernels from
ftp.kernel.org, although this may not seem as straight forward.
The Debian kernel packages are infrequently coordinated with another 
package like an nvidia 3D XWindows driver.

I myself put ftp.kernel.org kernels in /usr/local/src/kernels,
since I run out of room in /usr/src 
(EACH uncompressed kernel package takes 600MB -- almost 1GB).
In the past, you probably ran  "make xconfig" or one of its equivalents
-- you can still do this before continuing with the standard Debian
approach. 
Although, if you follow standard Debian
procedure with packages only, you get almost every module compiled so  "make xconfig"
might become something you merely run and immediately exit.

With a previous Debian kernel package installed and running,
and with a new kernel, you probably want to coordinate
the options of the new kernel with your running kernel.
That is, you want to get a corresponding .config file,
so copy your running kernel's (uname -a) config file something like
   cp  /boot/config-2.6.17-2-486   .config
to the directory where your kernel package resides
(with a particular kernel setting, you once could find these in
/proc/config.gz, but I haven't seen these in a year).
Then, before any  "make xconfig",  run 
   make oldconfig
to which you probably select the "M" or module answer to  most
questions, although some questions only allow yes/no.
When booting, some application with "apple" (probably looking for an apple network)
was hanging bootup for about 1 minute, so I eventually removed that from
the kernel.
It's surprising how many new options get added with each new kernel,
so "make oldconfig" can take 30 minutes, or even 2 hours if you go from a running
2.4.* kernel to a 2.6.18 kernel (then, you need to rethink all this).

I recently installed (largely the Debian way) kernel 2.6.18.1,
which isn't available in the current Debian testing version (etch)
and anything beyond 2.6.16 probably never will be in etch 
since etch is being stabilized to become "stable" in the next few
months.
You are probably installing testing (etch), since stable is quite old
now, and its kernels are archaic.

When I compile my kernels, I always do something like
   CONCURRENCY_LEVEL=2   make-kpkg  --initrd  --append-to-version \
       '-jameson2-oldconfig'  kernel-image
for 2 processors to finish more quickly, but with 1 processor you 
might just run something like
   make-kpkg  --initrd  --append-to-version '-jameson2-oldconfig'  \
       kernel-image
Each time, I sequentially change my name with a sequence number from
jameson2 to jameson3, jameson4, jameson5, ...,
so my modules go into a different directory
(modules get installed into their own directories like  /lib/2.6.18.1-jameson2-oldconfig/)
This lets lets grub run my old kernels with their modules in their own
/lib/* directory.
Each such module directory uses about 50MB.

On compiling with  --initrd, I finally drank the coolade last year.
Before, I tried to have no modules, compiling needed modules into the
kernel itself.  
Since almost everyone now compiles oodles of modules, mostly uneeded,  
but unknown uneeded, instructions now usually talk about modules.
As others in this thread have mentioned,
when booting, some necessary modules must be accessed right away,
so you are better off compiling with  --initrd.

You mentioned NVidia.
I presume you have an Nvidia card with 3D acceleration.
Without using NVidia's binary driver, you will find XWindows using the
open-source "nv" WWindows driver, 
and being slow even though you don't run games.
To install NVidia's driver, you either most use an older kernel 
corresponding to Debian's packages that help with NVidia's binaries,
or you must run an NVidia executable.
I have tried both.
Since I use kernels newer than Debian has in testing (etch), 
I go to nvidia.com, get NVidia's driver, then run it.
While getting an executable from nvidia.com directly worked well,
I noticed that it must have overwitten a few Debian installed files.
So when I upgrade Debian, I am prepared (but haven't seen)
for possible graphics oddities, in which case I would rerun nvidia.com's 
executable to re-ovewrite those files.

You have heard from many of us, some complementing others information,
some giving non-Debian approaches, and you don't really know who to
listen to.
YOU NEED TO GO TO A DEBIAN DOCUMENT (which has more thought even than
these email-lists); eg,
   "Compiling a New Kernel" at
   http://www.debian.org/releases/stable/i386/ch08s05.html.en
which corresponds to
   www.debian.org  -->  "installation manual"



-- 
Jameson C. Burt, NJ9L   Fairfax, Virginia, USA
jameson@coost.com       http://www.coost.com
(202) 690-0380 (work)

LTSP.org:  magic "mysterious and awe-inspiring even though
                  we know they are real and not supernatural"



Reply to: