From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by nuthatch.gentoo.org with esmtp (Exim 4.54) id 1FFl24-0001OE-4A for garchives@archives.gentoo.org; Sun, 05 Mar 2006 04:39:48 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.13.5/8.13.5) with SMTP id k254ckqK002090; Sun, 5 Mar 2006 04:38:46 GMT Received: from smtp13.wxs.nl (smtp13.wxs.nl [195.121.247.4]) by robin.gentoo.org (8.13.5/8.13.5) with ESMTP id k254Y9Yw002703 for ; Sun, 5 Mar 2006 04:34:09 GMT Received: from [10.0.0.150] (ip3e83ab52.speed.planet.nl [62.131.171.82]) by smtp13.wxs.nl (iPlanet Messaging Server 5.2 Patch 2 (built Jul 14 2004)) with ESMTP id <0IVN00H1P0OXU3@smtp13.wxs.nl> for gentoo-user@lists.gentoo.org; Sun, 05 Mar 2006 05:34:09 +0100 (CET) Date: Sun, 05 Mar 2006 05:34:06 +0100 From: Holly Bostick Subject: Re: [gentoo-user] Re: modules built post kernel install (on the fly) In-reply-to: <87ek1hedxn.fsf@newsguy.com> To: gentoo-user@lists.gentoo.org Message-id: <440A6A3E.80400@planet.nl> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-user@gentoo.org Reply-to: gentoo-user@lists.gentoo.org MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: 7BIT User-Agent: Thunderbird 1.5 (X11/20060206) X-Enigmail-Version: 0.94.0.0 References: <87ek1ickcn.fsf@newsguy.com> <8764mufcjc.fsf@newsguy.com> <87ek1hedxn.fsf@newsguy.com> X-Archives-Salt: 4ea993f7-acfa-4af1-a666-a570162dce9e X-Archives-Hash: 5ea5d4fffadcec14d35b118ed590a11f Harry Putnam schreef: > Peter writes: > >> That is correct. Unless you alter bzImage, modprobe newmodule >> should work just fine. If your new module is built in, you will >> need to reload the kernel (reboot). > > Ok, this is confusing to me... What do you mean by `built in'. I'm > thinking the very nature of a module is that it isn't built in. > > Or do you just mean I'd chose `*' instead of `m' and move bzImage > into place in /boot? > (Most) kernel modules can be either built into the kernel, or separately from the kernel. Only a very few can only be builtin or only loadable. But whichever they are, they're really all modules-- the kernel is a modular framework, after all, which is why you have to configure it-- to say which kernel modules you want to build, and how you want them built (as builtin to the kernel, or as separate loadable modules). If they're built into the kernel "body" ("*"), they're called "built-in", in which case they are an integral part of the bzImage, and increase the size of the kernel. Builtins will also always be loaded by the kernel just because they're part of the kernel; this is why you must build certain modules (like for filesystems) as builtins and not as modules, so the kernel has them loaded before it needs them to read the relevant filesystem. If the modules built as dynamically loadable modules ("M". which produces little chunks of code-- *.ko files, I think-- in /usr/lib/modules/ when you run make modules_install), they are called "modules" (or loadable modules, or dynamic modules). In this case, they 1) do not increase the size of the kernel (because they're not in the bzImage that is the kernel), 2) they are dynamically loadable (modprobe) and removeable (modprobe -r), and may or may not exist at all (because you have the ability to pick and choose which loadable modules you actually want to build in your kernel config). So what Peter meant was that if you add the modules as loadable modules (by choosing "M"), you wouldn't have to do anything other than make and make modules_install to install the new module (you need to do a make so that the kernel config knows that there's a new module *to* make), but because the body of the kernel has not actually changed (since loadable modules are not compiled into the bzImage like the builtin * modules are), you don't actually have to install the new bzImage, because it's exactly the same as the one you had previously installed. You should be able to modprobe the new module and go right on without rebooting. However, if you compiled the new modules directly into the kernel (by choosing "*", or compiling a module that has a sub-function that requires a *), then you would have to install the new bzImage and reboot, because the bzImage (the kernel) has actually changed. Hope this helps explain things, Holly -- gentoo-user@gentoo.org mailing list