[arch-general] [arch-dev-public] [signoff] udev 118-4

Michal Soltys soltys at ziu.info
Sun Mar 9 19:36:57 EDT 2008


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





More information about the arch-general mailing list