From nobody@FreeBSD.org  Thu Mar 22 18:01:48 2012
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id ED053106564A
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 22 Mar 2012 18:01:48 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id D76F38FC08
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 22 Mar 2012 18:01:48 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q2MI1mfE092289
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 22 Mar 2012 18:01:48 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.4/8.14.4/Submit) id q2MI1mgX092288;
	Thu, 22 Mar 2012 18:01:48 GMT
	(envelope-from nobody)
Message-Id: <201203221801.q2MI1mgX092288@red.freebsd.org>
Date: Thu, 22 Mar 2012 18:01:48 GMT
From: Stefan BALU <balustefan@gmail.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: devd rule is not processed
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         166321
>Category:       bin
>Synopsis:       devd(8) rule is not processed
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Mar 22 18:10:05 UTC 2012
>Closed-Date:    
>Last-Modified:  Mon Mar 26 05:52:15 UTC 2012
>Originator:     Stefan BALU
>Release:        FreeBSD 9.0-RELEASE
>Organization:
-
>Environment:
FreeBSD **.*********.** 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
I have a UPS box which works like a charm with nut (netwok-ups-tools). In order for the nut driver to properly work, it needs the `/dev/ugen*` file to be owned by `uucp`.

In order to do this, i have a `devd(8)` configuration file in `/usr/local/etc/devd/` entitled `nut.conf`.

[root@fw ~]# cat /usr/local/etc/devd/nut.conf 
attach 100 {
        match "device-name" "ugen[0-9]+";
        match "vendor" "0x0665";
        match "product" "0x5161";
        action "logger chown uucp /dev/$device-name*";
};

[root@fw ~]# usbconfig dump_device_desc
..
ugen1.3: <USB to Serial Cypress Semiconductor> at usbus1, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0110 
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0008 
  idVendor = 0x0665 
  idProduct = 0x5161 
  bcdDevice = 0x0002 
  iManufacturer = 0x0001  <Cypress Semiconductor>
  iProduct = 0x0002  <USB to Serial>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001 


I have another machine, running FreeBSD 8.2-RELEASE-p3, which has the same UPS, same `nut.conf` file in the same folder (`/usr/local/etc/devd/`) and everything works like a charm. On FreeBSD 9.0-RELEASE it doesn't!


The debug output of `devd(8)` when the device is inserted is:

Processing event '!system=DEVFS subsystem=CDEV type=CREATE cdev=usb/1.3.0'
Pushing table
setting system=DEVFS
setting subsystem=CDEV
setting type=CREATE
setting cdev=usb/1.3.0
Processing notify event
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Popping table
Processing event '!system=DEVFS subsystem=CDEV type=CREATE cdev=ugen1.3'
Pushing table
setting system=DEVFS
setting subsystem=CDEV
setting type=CREATE
setting cdev=ugen1.3
Processing notify event
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Popping table
Processing event '!system=DEVFS subsystem=CDEV type=CREATE cdev=usb/1.3.1'
Pushing table
setting system=DEVFS
setting subsystem=CDEV
setting type=CREATE
setting cdev=usb/1.3.1
Processing notify event
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Popping table
Processing event '!system=USB subsystem=DEVICE type=ATTACH ugen=ugen1.3 cdev=ugen1.3 vendor=0x0665 product=0x5161 devclass=0x00 devsubclass=0x00 sernum="" release=0x0002 mode=host port=1 parent=ugen1.2'
Pushing table
setting system=USB
setting subsystem=DEVICE
setting type=ATTACH
setting ugen=ugen1.3
setting cdev=ugen1.3
setting vendor=0x0665
setting product=0x5161
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0002
setting mode=host
setting port=1
setting parent=ugen1.2
Processing notify event
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x0d8e
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x0cf3
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x168c
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x083a
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x2001
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x07d1
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x1690
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x16ab
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x0846
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x1385
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x082d
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x157e
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x1435
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x0665 against ^0x0cde
Testing system=USB against ^ZFS
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Popping table
Processing event '!system=USB subsystem=INTERFACE type=ATTACH ugen=ugen1.3 cdev=ugen1.3 vendor=0x0665 product=0x5161 devclass=0x00 devsubclass=0x00 sernum="" release=0x0002 mode=host interface=0 endpoints=1 intclass=0x03 intsubclass=0x00 intprotocol=0x00'
Pushing table
setting system=USB
setting subsystem=INTERFACE
setting type=ATTACH
setting ugen=ugen1.3
setting cdev=ugen1.3
setting vendor=0x0665
setting product=0x5161
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0002
setting mode=host
setting interface=0
setting endpoints=1
setting intclass=0x03
setting intsubclass=0x00
setting intprotocol=0x00
Processing notify event
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^ZFS
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Popping table
Processing event '? at bus=2 hubaddr=1 port=1 devaddr=3 interface=0 vendor=0x0665 product=0x5161 devclass=0x00 devsubclass=0x00 sernum="" release=0x0002 mode=host intclass=0x03 intsubclass=0x00 intprotocol=0x00  on uhub3'
Pushing table
setting bus=2
setting hubaddr=1
setting port=1
setting devaddr=3
setting interface=0
setting vendor=0x0665
setting product=0x5161
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0002
setting mode=host
setting intclass=0x03
setting intsubclass=0x00
setting intprotocol=0x00
setting bus=uhub3
Processing nomatch event
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1371
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1371
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1342
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x12ef
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x12d1
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x129b
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x129b
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x126f
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1231
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x11f7
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x11f6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x11f5
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x11d9
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x11ad
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1199
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1199
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10bd
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10c4
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10c4
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10c4
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10c5
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10ce
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1114
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x114b
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x114b
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1163
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1182
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1186
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1189
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1199
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1199
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1199
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1199
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1472
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1482
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1485
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x148f
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x148f
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x148f
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x148f
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x148f
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x148f
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x148f
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x14b2
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x14b2
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x14b2
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x14b2
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x14ea
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x14ea
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x14ea
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1385
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13ad
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13b1
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13b1
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13b1
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13b1
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13b1
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13b1
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13b1
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13d2
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x13d3
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1410
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1416
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1435
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1435
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1435
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1453
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0db0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0db0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0db0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0db0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0db0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0db7
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0df7
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0e0b
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0e55
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0bf8
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0bf8
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0c44
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0c88
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0c88
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0c88
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0c8e
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0cad
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0cde
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0cde
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0cde
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0cde
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0cde
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0cde
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0cf3
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0d8e
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0d8e
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0f98
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0fb8
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0fcf
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0fe6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x100d
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1011
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1044
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1044
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1044
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1044
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1044
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1066
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x106c
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10a6
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10ab
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10b5
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x10b5
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0e66
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0e66
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0e67
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0e7e
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0ea0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0eab
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0eb0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0eb0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0eba
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0eef
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0f3d
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0f3d
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0f3d
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0f4e
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0f88
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0f88
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x0f94
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x20b8
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x20b9
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x22b8
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x22b8
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2478
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x3334
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x3340
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x3708
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x4113
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x413c
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x413c
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x413c
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x413c
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x4348
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x4505
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x4766
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x5173
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x1eda
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2001
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2001
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2001
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2001
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2001
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2001
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2001
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2001
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2019
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2019
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2019
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2019
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2019
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2019
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x2019
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0x203d
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing vendor=0x0665 against ^0xdaae
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x02
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x03
Testing intsubclass=0x00 against ^0x01
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x03
Testing intsubclass=0x00 against ^0x01
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x07
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x07
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x07
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0xe0
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0xff
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x01
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x01
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^(host|device)
Testing intclass=0x03 against ^0x02
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^(host|device)
Testing intclass=0x03 against ^0x02
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^(host|device)
Testing intclass=0x03 against ^0x02
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x02
Testing bus=uhub3 against ^uhub[0-9]+
Testing mode=host against ^host
Testing intclass=0x03 against ^0x03
Executing 'kldload uhid'
kldload: can't load uhid: File exists
Popping table
>How-To-Repeat:

>Fix:


>Release-Note:
>Audit-Trail:

From: Gary Palmer <gpalmer@freebsd.org>
To: Stefan BALU <balustefan@gmail.com>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: misc/166321: devd rule is not processed
Date: Thu, 22 Mar 2012 14:24:08 -0400

 On Thu, Mar 22, 2012 at 06:01:48PM +0000, Stefan BALU wrote:
 > I have a UPS box which works like a charm with nut (netwok-ups-tools). In order for the nut driver to properly work, it needs the `/dev/ugen*` file to be owned by `uucp`.
 > 
 > In order to do this, i have a `devd(8)` configuration file in `/usr/local/etc/devd/` entitled `nut.conf`.
 > 
 > [root@fw ~]# cat /usr/local/etc/devd/nut.conf 
 > attach 100 {
 >         match "device-name" "ugen[0-9]+";
 >         match "vendor" "0x0665";
 >         match "product" "0x5161";
 >         action "logger chown uucp /dev/$device-name*";
 > };
 > 
 > [root@fw ~]# usbconfig dump_device_desc
 > ..
 > ugen1.3: <USB to Serial Cypress Semiconductor> at usbus1, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
 > 
 
 The reason is in the above information.  You are matching against
 "ugen[0-9]+" but the device is "ugen1.3".  Note that [0-9]+ means one or
 more characters from the set of 0 through 9.  No ".".  Try fixing the
 ugen regular expression to allow for the ".".  e.g.
 
 "ugen[0-9.]+" 
 
 or 
 
 "ugen[0-9]+.[0-9]+"
 
 Gary

From: Stefan Balu <balustefan@gmail.com>
To: Gary Palmer <gpalmer@freebsd.org>
Cc:  
Subject: Re: misc/166321: devd rule is not processed
Date: Thu, 22 Mar 2012 22:27:54 +0200

 --047d7b15a97f24062504bbdabe05
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: quoted-printable
 
 This doesn't seem to fix the problem. I forgot to mention that i also
 thought it was a regex missmatch, and i've tried ugen[0-9.]+ and also
 ugen[0-9\.] and i've also tried ugen[0-9]+.[0-9]+ with no luck.
 
 I thought the problem has to do with the `/etc/devd/usb.conf` file which
 exists on 9.0 and didn't existed on 8.2. From the devd's debugging i see
 that the last matched rule is:
 
 Testing bus=3Duhub3 against ^uhub[0-9]+
 Testing mode=3Dhost against ^host
 Testing intclass=3D0x03 against ^0x03
 
 which is present in the `usb.conf` file.
 
 I suspect that `devd`, for some reason, doesn't really try to match against
 the rules from my `nut.conf` file. However, when `devd` starts in debugging
 mode, it does mention parsing my file:
 
 [root@fw /usr/home/packardb]# devd -D -d
 Parsing /etc/devd.conf
 setting
 scsi-controller-regex=3D(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|cis=
 s|ct|dpt|esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)[0-9]+
 Parsing files in /etc/devd
 Parsing /etc/devd/asus.conf
 Parsing /etc/devd/uath.conf
 Parsing /etc/devd/usb.conf
 Parsing files in /usr/local/etc/devd
 Parsing /usr/local/etc/devd/nut.conf
 ...
 
 And i've also symlink()ed my `nut.conf` file in /etc/devd/ directory.
 Still, no luck!
 
 --=20
 =C8=98tefan B=C4=82LU
 Tel: +40757 377 489
 
 --047d7b15a97f24062504bbdabe05--

From: Stefan Balu <balustefan@gmail.com>
To: Gary Palmer <gpalmer@freebsd.org>
Cc:  
Subject: Re: misc/166321: devd rule is not processed
Date: Thu, 22 Mar 2012 22:55:34 +0200

 --e89a8ff1c378207e4c04bbdb2137
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: quoted-printable
 
 And i also tried changing the `attach` keyword into a `nomatch` rule.
 According to `devd.conf(8)`, a rule with a higher priority wins, so it
 should have matched before `usb.conf` file's rules. Trying with the full
 path to `chown` in the `action` statement doesn't seem to work either.
 
 This was my latest failure:
 
 [root@fw /usr/home/packardb]# cat /etc/devd/nut.conf
 attach 100 {
 device-name "ugen1.3";
 match "vendor" "0x0665";
 match "product" "0x5161";
 action "/usr/sbin/chown uucp /dev/$device-name";
 };
 
 --=20
 =C8=98tefan B=C4=82LU
 Tel: +40757 377 489
 
 --e89a8ff1c378207e4c04bbdb2137--

From: Stefan Balu <balustefan@gmail.com>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: misc/166321: devd rule is not processed
Date: Sat, 24 Mar 2012 13:29:40 +0200

 --047d7b15aacbf898ef04bbfb74a0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: quoted-printable
 
 I finally got it working using the following `nut.conf` configuration:
 
 notify 100 {
 match "system" "USB";
 match "subsystem" "INTERFACE";
 match "type" "ATTACH";
 match "vendor" "0x0665";
 match "product" "0x5161";
 action "chown -LR uucp:operator /dev/$cdev";
 };
 
 I belive it works because of `chown`'s -LR cmd-line options. Thing is, that
 using `logger` as `action` did log stuff, so the rules did seem to match
 ... however, the ownership was not set.
 
 --=20
 =C8=98tefan B=C4=82LU
 Tel: +40757 377 489
 
 --047d7b15aacbf898ef04bbfb74a0--
>Unformatted:
