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>