Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 2003 07:58:27 -0500 (CDT)
From:      David Fleck <david.fleck@mchsi.com>
To:        Sergey DoubleF Zaharchenko <doublef@tele-kom.ru>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: What determines if kernel modules are auto-loaded?
Message-ID:  <20030922074442.J430@grond.sourballs.org>
In-Reply-To: <20030921190832.51ab0169.doublef@tele-kom.ru>
References:  <20030921083559.U1534@grond.sourballs.org> <20030921190832.51ab0169.doublef@tele-kom.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 21 Sep 2003, Sergey DoubleF Zaharchenko wrote:
> On Sun, 21 Sep 2003 18:53:31 +0000 Sergey "DoubleF" Zaharchenko <doublef@tele-kom.ru> probably wrote:
> > Mostly the program which uses the device. For instance, vnconfig and
> > mount will load the necessary modules because they are supposed to be
> > run as root and expect to have the necessary priveleges. Why would a
> > programmer make a mp3 player that would auto-load the sound module? An
> > mp3 player should be portable and should not depend on such things as a
> > kernel module. Moreover, the player is not supposed to run as
> > root, which is required to load kernel modules.
>
> You should read kldload(2), etc. if you want to load modules in your program.

Thanks for the response - it helps shed some more light on things.  But I
don't want to load modules for 'my' program - I'm far less interested in
this from a development point of view than from a system admin. point of
view.

Why, for instance, does my (4.6.2-RELEASE-p20) system have a nfs.ko kernel
module, and a line in /boot/defaults/loader.conf to enable this module,
but (apparently) no way to *use* the module?  If I compile a kernel with
'options NFS' uncommented in the kernel config file, the nfs module gets
built into the kernel, and loading the module is pointless - however, if I
comment out 'options NFS', the kernel can't compile because of missing
symbols.  So I have a chunk of code that gets built by the makefile as a
module, but can't be used as a module?  I find this all very unintuitive.

What seems to be happening during the kernel compile process is that a
certain number of modules are always compiled, regardless of config file
settings - the settings only determine if a given chunk of code makes it
into the kernel itself.  If the module is compiled into a .ko file, and if
the code isn't present in the kernel, then it can be loaded by kldload. Is
this correct?

--
David Fleck
david.fleck@mchsi.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030922074442.J430>