>On Wed, 24 Oct 2012 17:28:30 +0000
>"Feuerbacher, Alan" <[email protected]> wrote:

> You've come close to answering what I really want to know. I'm so new
> at this (first time around doing LFS on my home computer) that I'm
> not sure I'm asking the right questions. So here's a bit more:
> 
> The BLFS doc says to do some reconfiguring (which modifies
> the .config file) and then to "recompile the kernel *if necessary*".
> This implies to me that some modifications to the .config file will
> NOT require recompilation, while others will. So guess my questions
> should have been, What modifications DO or DO NOT necessitate
> recompilation? And where can I find documentation to educate myself
> thoroughly about this stuff?

Mmm.. when you compile the kernel, and observe the process, you will
see that first there is a looong list of source files that are
compiled. At the end, they are linked (or something to the same effect)
and a binary image is created. Then, the compilation process continues
and makes a bunch of modules, if any modules are selected in .config
(translation: if any kernel parts are configured to be built as
modules).

Now, for example, say you selected a driver for a WiFi card to be
"built-in" and a driver for an Ethernet card to be "compiled as a
module".

The result of this is that your kernel image will contain a driver for
the WiFi card, while you will also have a separate file on the side
(say, "ethernet.ko") which will contain the Ethernet driver.

Which changes need recompiling the kernel? All changes to the .config
file require running the build process again to actualize these changes
(God I'm eloquent, now if I spelt it right that would be great :) ).
But then there is a difference. Changes to the built-in driver, that
is, changes that affect the kernel image, require rebooting with the
new kernel image. Changes to the modules, that is, all changes that
solely affect parts of the kernel that are in the modules, do not
require a reboot.

Now to tie it all together: the build process produces a kernel. Pieces
of this kernel are in several places. The kernel's kernel and all
built-in stuff is in one big file called (not entirely properly) "the
kernel image". Other stuff is strung around in numerous files and these
pieces (and the files that house them) are called "kernel modules". They
usualy live in /lib/modules.

When booting, the bootloader does its thing and finds "the kernel
image", then loads it into memory and passes control to it. Now the
memory some pieces of the kernel, but not all. To complete the loading,
the part of kernel present in memory finds the rest of its pieces,
loads them in memory and runs them.

-- 
   Fourth law of programming:
   Anything that can go wrong wi
sendmail: segmentation violation - core dumped
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to