Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Nov 2012 15:01:26 +0100
From:      Niclas Zeising <zeising+freebsd@daemonic.se>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Questions about USB, uhid, ukbd and quirks
Message-ID:  <50B0D336.60702@daemonic.se>
In-Reply-To: <201211241438.20357.hselasky@c2i.net>
References:  <50B0001C.6050202@daemonic.se> <201211241419.29050.hselasky@c2i.net> <50B0CA77.90501@daemonic.se> <201211241438.20357.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------020400080803070302060101
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

On 11/24/12 14:38, Hans Petter Selasky wrote:
> On Saturday 24 November 2012 14:24:07 Niclas Zeising wrote:
>> On 11/24/12 14:19, Hans Petter Selasky wrote:
>>> On Saturday 24 November 2012 13:54:45 Niclas Zeising wrote:
>>>> On 11/24/12 13:23, Niclas Zeising wrote:
>>>>> On 11/24/12 13:17, Hans Petter Selasky wrote:
>>>>>> On Saturday 24 November 2012 12:13:49 Hans Petter Selasky wrote:
>>>>>>> On Saturday 24 November 2012 00:00:44 Niclas Zeising wrote:
>>>>>>>> Hi!
>>>>>>>> I have a couple of questions about USB.
>>>>>>>> I recently bought a new USB keyboard, a Logitech K120. When
>>>>>>>> attaching this to a FreeBSD system, however, it is detected as a
>>>>>>>> hid device (attaching to uhid) rather than a keyboard (attaching to
>>>>>>>> ukbd). The keyboard works fine, but I'm just curious as to why it
>>>>>>>> doesn't use ukbd.
>>>>>>>
>>>>>>>> The output from usbconfig for this keyboard is:
>>>>>>> Hi,
>>>>>>>
>>>>>>> It seems the UHID driver needs to be synced with UMS and UKBD
>>>>>>> regarding the
>>>>>>> detection logic. Can you try the attached patch and report back.
>>>>>>>
>>>>>>> --HPS
>>>>>>
>>>>>> One more thing to check:
>>>>>>
>>>>>> /etc/devd/usb.conf
>>>>>>
>>>>>> Is perhaps auto-loading uhid before ukbd, and that might also be part
>>>>>> of the
>>>>>> issue.
>>>>>
>>>>> Hi!
>>>>> Having ukbd in the kernel, and not uhid, makes uhid load as a module
>>>>> during boot and attach to the keyboard, even with your patch. I'm
>>>>> recompiling the kernel now with uhid as part of the kernel to see if it
>>>>> makes a difference. I'm not too confortable hacking /etc/devd/usb.conf,
>>>>> but if you can point me in the right direction I'll have a go at it.
>>>>> Regards!
>>>>
>>>> Having uhid in the kernel did not make a difference, it attached to the
>>>> keyboard (or rather, the keyboard attached to the uhid driver, I guess).
>>>> Regards!
>>>
>>> Could you dump the configuration descriptor of your device using
>>> usbconfig?
>>>
>>> usbconfig -d X.Y dump_curr_config_desc
>>>
>>> --HPS
>>
>> Attached patch contains the dump.  From my reading of the USB spec, it
>> seems that this keyboard has two interfaces, one that detects as a
>> keyboard, and might be the boot device, and one that's just a regular
>> hid.  I might also be very wrong in this. :)
>> I have a dump from a keyboard that only attaches to ukbd, if you need
>> something to compare to.  That keyboard, however, believes it's a liteon
>> keyboard, rather than a logitech keyboard.  That, however, is probably
>> Logitech's fault.
>> Thank you for helping out!
>> Regards!
>
> Hi,
>
> You should have one of each, one ukbd, and one uhid.
>
> If you run "usbconfig show_ifdrv" at what interface is the uhid and ukbd
> attached.
>
> Make sure both uhid and ukbd is loaded.
>
> Please add a printout, but is_keyboard should be non-zero, before and after my
> patch. So uhid is not attaching to the wrong interface, so to speak.

Running usbconfig show_ifdrv shows uhid and ukbd both attached to the 
keyboard, both with and without your patch, and the output looks the 
same, see attached file.  I can't find the is_keyboard flag you're 
talking about however, but the keyboard works.
I guess I'm mostly surprised that the keyboard attaches as a HID as 
well, so it can be that I'm making a lot of noise about a non-issue.
Thanks for helping out though!
Regards!
-- 
Niclas

--------------020400080803070302060101
Content-Type: text/plain;
 name="usb.ifdrv.patch.dump"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="usb.ifdrv.patch.dump"

ugen2.3: <USB Keyboard Logitech> at usbus2, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
ugen2.3.0: ukbd0: <USB Keyboard>
ugen2.3.1: uhid0: <USB Keyboard>

--------------020400080803070302060101--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50B0D336.60702>