Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Jun 2005 22:24:46 +0200
From:      Hans Petter Selasky <>
Cc:        Norbert Koch <>
Subject:   Re: usbd.conf: detach ukbd
Message-ID:  <>
In-Reply-To: <>
References:  <000001c56cf8$fffeb920$4801a8c0@ws-ew-3.W2KDEMIG> <>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
On Thursday 09 June 2005 17:50, Maksim Yevmenkin wrote:
> Norbert,
> > when running usbd (under FreeBSD 4.11) with
> > -dv switches I can see that a usb keyboard
> > correctly attaches as ukbd0,
> > but detaches as fall-through "USB device".
> does something like
> device "USB keyboard"
>  devname "ukbd[0-9]+"
>  attach "foo"
>  detach "bar"

I'm not sure if detach is supported like that, because the "ukbd" device name 
will not be passed to "usbd" during detach. Then one needs to match against 
the class/subclass of the USB-keyboard:

device "USB keyboard"
 class 3
 subclass 1
 detach "xxxx ukbd0"

Else if devd is not available on 4.11 you will have to change some code and  
compile a new kernel, from what I can see.

To the file /sys/dev/usb/ukbd.c add this:

static void
usbd_add_device_detach_event(device_t self)
   struct usb_event ue;

   bzero(&ue, sizeof(ue));

           device_get_nameunit(self), USB_MAX_DEVNAMELEN) ;

   usb_add_event(USB_EVENT_DEVICE_DETACH, &ue);

    return (0);

This will make the suggestion from Maksim work.

A generic solution would be to call "usbd_add_device_detach_event()" from the  
"bus_child_detached" method of uhub, which must be added.

Also one can change "usb_disconnect_port()" to generate the event before the 
sub-devices are detached, but that might not work in all cases.


Want to link to this message? Use this URL: <>