Aaron Griffin wrote:
On Sun, Mar 9, 2008 at 3:05 AM, Michal Soltys <[EMAIL PROTECTED]> 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.


Reply via email to