Aaron Griffin wrote:
On Sun, Mar 9, 2008 at 3:05 AM, Michal Soltys <soltys@ziu.info> wrote:
ENV{MODALIAS}=="modaliases #1", OPTION="ignore_device" ENV{MODALIAS}=="modaliases #2", OPTION="ignore_device"
This is way more complex than you think it is. Let me explain. A typical module exposes it's aliases WITH wildcartds included. Here's an example:
$ modinfo nvidiafb alias: pci:v000010DEd*sv*sd*bc03sc*i*
If you want to write out modalias rules for this, you are welcome to. I will give you a hint, though: each of those asterisks above is a 4 digit number. And that is just nvidia. Don't forget intel, ati, unichrome, and all the other framebuffer modules out there.
But you can use that alias as-is in udev rules, as wildcards are supported. As for generating, something analogous to... cat >03-fb-block.rules <<EOF ACTION!="add", GOTO="fb_block_end" DRIVER=="?*", GOTO="fb_block_end" ENV{MODALIAS}!="?*", GOTO="fb_block_end" EOF for i in `find /lib/modules/$(uname -r)/kernel/drivers/video/ -iname "*fb*.ko"` ; do modinfo "$i" | sed -ne 's/alias: *\(.*\)/ENV{MODALIAS}=="\1" OPTIONS="ignore_device"/ ;/^ENV/p'
03-fb-block.rules ; done
cat >>03-fb-block.rules <<EOF LABEL="fb_block_end" EOF ...would do the thing. The file is not tiny though ~300 rules for Arch's generic kernel. But it's not an issue of any sort for udevd. My general idea was to get that into kernel's, or udev's PKGBUILD.