Re: devd + driver load by plugged device class how to ?

Vladimir Grebenschikov <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Organization SWsoft
Message-ID <1113763560.1005.9.camel__14745.97071433$1113763600$gmane$org@localhost>
В вс, 17/04/2005 в 11:10 -0600, M. Warner Losh пишет:
> In message: <1113740156.1018.6.camel@localhost>
>             Vladimir Grebenschikov <[email protected]> writes:
> : Is there way to configure devd (or other daemon) to load appropriate
> : driver by class, when device detected on bus, like:
> 
> Yes.  That's what nomatch events are for.  The default devd.conf
> momatch entries in it.
> 
> : load ukbd.ko when USB keyboard plugged (same for other USB ums, ulpt,
> : umass, etc)
> 
> usb doesn't support reprobing correctly yet, so this isn't possible
> until it does.
> 
> : load atacard.ko, when ATA disk inserted into PCMCI slot
> 
> nomatch 10 {
> 	match "bus" "pccard[0-9]+];
> 	match "function_type" "4";
> 	action "kldload atacard";
> }
> 
> : load if_wi.ko when WLan card inserted into PCMCI slot 
> 
> This device supports a large number of devices, so the list is rather
> long...

Oops, looks like there is some bugs here:

# cat /etc/devd/atacard.conf
nomatch 10 {
        match "bus" "pccard[0-9]+";
        match "function_type" "4";
        action "kldload atacard";
};
# cat /etc/devd/wi0.conf
nomatch 10 {
        match "bus" "pccard[0-9]+";
        match "manufacturer" "0x0156"; 
        action "kldload if_wi";
};
# grep -C1 \$pnpinfo /etc/devd.conf
nomatch 0 {
        action "logger Unknown device: pnp=$pnpinfo loc=$location bus=$bus manufacturer=$manufacturer product=$product";
};
# devd -dD
Parsing /etc/devd.conf
ethernet-nic-regex=(an|ar|ath|aue|awi|axe|bfe|bge|cm|cnw|cs|cue|dc|de|ed|el|em|ep|ex|fe|fxp|gem|hme|ie|kue|lge|lnc|my|nge|pcn|ray|re|rl|rue|sf|sis|sk|sn|snc|ste|ti|tl|tx|txp|udav|vge|vr|vx|wb|wi|xe|xl)[0-9]+
scsi-controller-regex=(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)[0-9]+
Parsing files in /etc/devd
Parsing /etc/devd/wi0.conf
Parsing /etc/devd/iwi.conf
Parsing /etc/devd/acpi_power.conf
Parsing /etc/devd/atacard.conf
Parsing files in /usr/local/etc/devd
// PCMCI CDROM inserted here 
Processing event '? at function=0 manufacturer=0xffffffff product=0xffffffff cisvendor="Shining" cisproduct="PMIDE-ASC" function_type=4 on pccard0'
Pushing table
Processing nomatch event
Testing bus= against ^pccard[0-9]+
Testing bus= against ^pccard[0-9]+
Executing 'logger Unknown device: pnp= loc= bus= manufacturer= product='
Popping table
// WaveLan inserted here
Processing event '? at function=0 manufacturer=0x0156 product=0x0002 cisvendor="Lucent Technologies" cisproduct="WaveLAN/IEEE" function_type=6 on pccard0'
Pushing table
Processing nomatch event
Testing bus= against ^pccard[0-9]+
Testing bus= against ^pccard[0-9]+
Executing 'logger Unknown device: pnp= loc= bus= manufacturer= product='
Popping table
//

Looks like:

- bus name does not substituted, see "Testing bus= against
^pccard[0-9]+" messages, kernel reports valid messages:
pccard0: <unknown card> (manufacturer=0xffffffff, product=0xffffffff) at function 0
pccard0:    CIS info: Shining, PMIDE-ASC, Rev 1.04
pccard0: <unknown card> (manufacturer=0x0156, product=0x0002) at function 0
pccard0:    CIS info: Lucent Technologies, WaveLAN/IEEE, Version 01.01

- variables does not interpreted, see "nomatch 0" entry above, I've
extend it with "manufacturer=$manufacturer product=$product", but
default devd.conf does not works also.


> Warner
-- 
Vladimir B. Grebenchikov
[email protected]
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.