[mythtv-users] modules.conf vs modprobe.conf

Michael T. Dean mtdean at thirdcontact.com
Fri Jan 7 17:04:21 EST 2005


On 01/02/2005 02:15 PM, nate s wrote:

>On Thu, 30 Dec 2004 16:27:34 -0500, Michael T. Dean
><mtdean at thirdcontact.com> wrote:
>  
>
>>On 12/13/2004 06:50 PM, Jarod Wilson wrote:
>>
>>>On Monday 13 December 2004 15:27, Schwarz, Robert P wrote:
>>>
>>>>I have been fighting sound for several days and have finally resolved my
>>>>problem.  In the write up by Robert Kulagowski he refers to adding lines
>>>>to "modules.conf"  in Jarod's document he refers to adding lines to
>>>>"modprobe.conf".  I was having sound issues until I copied lines from
>>>>modules.conf to modprobe.conf.
>>>>        
>>>>
>>>[...]
>>>      
>>>
>>>>Can someone provide some light on this to me?
>>>>        
>>>>
>>>Some distros use modules.conf, some use modprobe.conf. Apparently, whatever
>>>distro you're using uses modprobe.conf.
>>>      
>>>
>>Specifically, any distro using Linux 2.6 should be using modprobe.conf
>>and any distro using Linux 2.4 should be using modules.conf.
>>    
>>
>What about the distros that can use either, such as gentoo?
>
OK, I tried to cut it back to the "some light" you requested.  I guess 
now I have to bring out my million-candle-power spotlight...  :)

By "any distro using Linux 2.x," I meant, literally, "any distro *that 
is* using Linux 2.x."  In other words, since any distro built around 
Linux 2.4 can be upgraded to use Linux 2.6 with a kernel compile and a 
few other changes, it's not so much a Gentoo vs. Debian vs. SUSE vs. 
Fedora Core kind of thing.  It's not even a 
"which-kernel-shipped-with-my-distro" kind of thing.  It's really 
dependant on the kernel *currently* in use on the system.

The Linux 2.4 kernel requires the modutils package ( 
ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.4/ ) to handle 
loading and removing kernel modules and other kernel-module 
maintenance.  The modprobe and depmod commands from the modutils package 
use the configuration file modules.conf.

The Linux 2.6 kernel (technically, 2.5.48 and above) requires the 
module-init-tools package ( 
ftp://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/ ) for the 
same.  The modprobe command from the module-init-tools package uses the 
configuration file modprobe.conf.  (Note, also, that neither 
configuration file is used by the kernel itself.)

One *mandatory* requirement for upgrading from a Linux 2.4 kernel to a 
Linux 2.6 kernel is to install module-init-tools.  During the install, 
module-init-tools can be instructed to move the modutil binaries to 
"*.old" (i.e. modprobe becomes modprobe.old).  Then, it installs the new 
binaries (i.e. modprobe).  From this point on, when the new binaries are 
run, the first thing they do is check the version of the running 
kernel.  If it's a 2.4 kernel, they pass the command to the "*.old" 
binary.  If it's a 2.6 kernel, they execute the command themselves.  
This allows you to upgrade your system from Linux 2.4 to Linux 2.6, and 
then boot back into Linux 2.4 when you realize that installing a Linux 
2.6 kernel on a system built around a Linux 2.4 kernel adds little and 
causes many problems.  (Not because of problems with the kernel, but 
because of problems with the thousands of (improperly written) 
applications on your system built around the Linux 2.4 kernel...)

However, that being said, I included the words, "should be using."  By 
that I meant that it's always possible that the distro packagers decided 
to do things differently.  For example, Red Hat, having developed much 
of the code for the Native POSIX Thread Library (NPTL), which requires a 
kernel that supports Thread-Local Storage (TLS)--in other words, a Linux 
2.6 kernel--decided they wanted NPTL available in Linux 2.4, so they 
patched the 2.4 kernel to support TLS (leaving a kernel 
vaguely-reminiscent of the Linux kernel :) and back-ported NPTL to work 
with their modified-Linux-2.4 kernel.  Similarly, any distribution 
packager could decide that they want to modify the source of 
modutils/module-init-tools to make the package work with the "wrong" 
kernel version.  I'm not saying that any do--I really couldn't tell you 
since I haven't used all distros (actually, I don't use any distro)--but 
I seldom say never.  ;)

>Gentoo uses modules.conf; is modprobe.conf not compatiable with a 2.4 kernel,
>while modules.conf is with a 2.6?
>  
>
Correct.  The format of modprobe.conf has changed rather dramatically 
from the format of modules.conf.  The most noticeable example being that 
all of the "add above" and "add below" commands in modules.conf have 
been replaced with a much-more straight-forward "install" command.  
While the "install" command is much more straight-forward--with it you 
simply provide the commands that should be executed (in the order in 
which they should be executed) when a module install is requested--many 
people who have years of experience (dating back to Linux 2.2 days) with 
modutil's modules.conf format have complained that it's much more 
difficult to use.  Probably much of this comes from the fact that when 
installing module-init-tools on a Linux 2.4 system, you can use a 
contributed script (generate-modprobe.conf) to generate a modprobe.conf 
by reading your modules.conf and checking your current kernel 
configuration.  Unfortunately, this script is something of a 
"modprobe.conf-obfuscator" as it provides all the configuration 
information you could possibly need (i.e. taking a 26-line, 
717-character modules.conf and outputting a 171-line, 5968-character 
modprobe.conf--in my case, at least. ;)  Manually creating an equally 
functional configuration files leaves 21 lines and 847 characters...

>The files look so similar
>
True.  The alias configuration line is still the same--and is often the 
most-commonly-used line in the file--making (correctly-written, not 
"obfuscated") modprobe.conf files look very much like modules.conf files.

 From man 5 modprobe.conf ( 
http://www.die.net/doc/linux/man/man5/modprobe.conf.5.html ):

    The format of modprobe.conf is simple...  The syntax is a 
simplification of modules.conf

See also man 5 modules.conf ( 
http://www.die.net/doc/linux/man/man5/modules.conf.5.html ) for further 
comparison.

>that I doubt it would matter very much
>either way.  If indeed both kernels would work with both, then I think
>it is more of a distro-specific thing than a kernel-specific one.
>
I would agree, if your assumption were correct.  ;)

>Also, do all other (single-kernel) distros follow this?
>  
>
I think I answered this one above...

HTH.

Mike


More information about the mythtv-users mailing list