[arch-dev-public] Module blacklisting

Dan McGee dpmcgee at gmail.com
Fri Feb 22 20:06:04 EST 2008


On Fri, Feb 22, 2008 at 6:03 PM, Aaron Griffin <aaronmgriffin at gmail.com> wrote:
> On Fri, Feb 22, 2008 at 5:56 PM, eliott <eliott at cactuswax.net> wrote:
>  > On 2/22/08, Aaron Griffin <aaronmgriffin at gmail.com> wrote:
>  >  > Ok, guys - honest question. Because udev is being a big pain in the
>  >  >  ass with the way we do module blacklisting, we might want to
>  >  >  reevaluate it.
>  >  >
>  >  >  Right now we support blacklisting of modules in rc.conf, in addition
>  >  >  to a kernel param disablemodules=x,y,z
>  >  >
>  >  >  Udev autoloading is controlled by MOD_AUTOLOAD and the load_modules
>  >  >  kernel param.
>  >  >
>  >  >  We *can* use modprobe based blacklisting here, but we lose the above
>  >  >  items. blacklisting will be controlled only by /etc/modprobe.conf (and
>  >  >  modprobe.d/*) and we lose the ability to shut it off via rc.conf.
>  >  >
>  >  >  What do we gain? Speed and simplicity. No extraneous scripts to handle
>  >  >  this stuff, and all that jazz.
>  >  >
>  >  >  This is how fast this script was when I originally wrote it:
>  >  >  http://img.phraktured.net/other/udev_modules_boot.png
>  >  >  Now it apparently takes 3 times as long due to all the added blacklisting cruft
>  >  >
>  >  >  What do we lose? Robustness.
>  >  >  See below for an explanation of the blacklist changes
>  >
>  >  I thin modprobe.conf would probably be 'cleaner' and 'closer to home'.
>  >  It would probably be a little less 'classic arch', as it moves things
>  >  away from rc.conf instead of into it. It might be the right thing to
>  >  do though..not sure.
>
>  That's about where I am right now. It feels cleaner, but begins moving
>  things out of rc.conf, which is un-Archy. I dunno, I'm hoping to hear
>  other people's opinions on this, as I'm holding off pushing out a udev
>  with start_udev still in it until we decide what to do here... anyone
>  have a strong opinion?

I like it in rc.conf. I've always loved the single point of config for
most startup things, and I know I see this as a great selling point of
Arch in our own forums and elsewhere. I'd really rather not move it
outside of there.

This is a point someone made earlier in the thread that I wanted to
address, and it went something like this:
"why don't we just do the blacklist variable stuff in the initscripts"

Aaron covered it most of the way, but I just wanted to make it clear
that every time you plug in a USB device or make any other hardware
chage, udev triggers. If I've added a blacklisted module since the
last time I booted (which may have been 50 days ago), then I want it
to not load, and any processing of udev-related stuff outside of the
udev framework would mean the module I added would not be blacklisted.

>  >  I do have one concern though. How would this effect mkinitcpio, and
>  >  excluding modules via grub at boot time (whether from an install cd or
>  >  from a real boot and with an initrd)?
>
>  That's harder. But we have two options. Firstly, the initramfs udev
>  can have different sets of rules, there's nothing wrong with that.
>  Secondly, before starting udev in the initramfs, we can do something
>  like:
>
>    for x in $disablemodules; do
>       echo "blacklist $x" >> /etc/modprobe.conf
>    done
>
>  /me shrugs

Still doesn't take into account the whole "load all dependencies"
thing though. Bummer.

-Dan




More information about the arch-dev-public mailing list