Bug 102066

Summary: [ukbd] usb keyboard and multimedia keys don't work
Product: Base System Reporter: Alexander V. Ribchansky <triosoft>
Component: usbAssignee: freebsd-usb (Nobody) <usb>
Status: Open ---    
Severity: Affects Only Me CC: emaste, swills
Priority: Normal    
Version: 6.1-STABLE   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
smime.p7s none

Description Alexander V. Ribchansky 2006-08-15 09:40:14 UTC
I have a Logitech Cordless Internet Pro kb+mouse. Everything works fine 
with appropriate drivers ukbd and ums, but there is no reaction on 
multimedia keys on keyboard. In xev I don't see any reaction. As far as 
I understand the problem is in ukbd driver (keyboards with ps/2 and 
atkbd works fine with mmedia keys) Is there any plan to add support of 
multimedia keys to ukbd driver? I try to do it myself, but my knowledge 
isn't enough to do this. How to add translation of USB HID codes from 
page OC ( page 07 is already translated) ???

In Linux there is no problem with usb keyboard and multimedia keys, but 
I don't like Linux.. I like FreeBSD :o)

Fix: 

not known
How-To-Repeat: Try to get any response in xev on multimedia keys on usb keyboard
Comment 1 Julian Stecklina 2007-09-11 17:31:27 UTC
Hello,

this bug still applies to the latest -CURRENT:

FreeBSD zardoz.localnet 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Tue Sep  4 
23:37:45 CEST 2007     root@zardoz.localnet:/usr/obj/usr/src/sys/ZARDOZ 
  i386

ukbd0: <vendor 0x046a product 0x0023, class 0/0, rev 2.00/0.32, addr 2> 
on uhub0

Regards,
Julian
Comment 2 Stefan 'Steve' Tell 2008-02-09 12:59:13 UTC
Hi,

nothing new here, it does not work with 7.0-PRERELEASE:

| ukbd0: <vendor 0x046a product 0x0023, class 0/0, rev 2.00/0.27,
| addr 3> on uhub0


Any hints or solutions?

Thanks in advance.
Comment 3 Lapo Luchini 2009-07-14 12:03:23 UTC
Also F13-F19 on new Apple USB keyboards recognize no scancode.

% sysctl dev.ukbd
dev.ukbd.0.%desc: Apple, Inc Apple Keyboard, class 0/0, rev 2.00/0.69,
addr 3
dev.ukbd.0.%driver: ukbd
dev.ukbd.0.%location: port=1 interface=0
dev.ukbd.0.%pnpinfo: vendor=0x05ac product=0x0221 devclass=0x00
devsubclass=0x00 release=0x0069 sernum="" intclass=0x03 intsubclass=0x01
dev.ukbd.0.%parent: uhub7

OTOH I've seen in CVS that /src/sys/dev/usb/ukbd.c was deleted in HEAD,
as 8.0 will contain the new USB stack, so the patch better be done to
the new file ;-)

'There is no reason anyone would want a computer in their home.' (Ken Olson, founder of DEC, 1977)
Comment 4 Gavin Atkinson freebsd_committer freebsd_triage 2009-08-24 17:01:40 UTC
State Changed
From-To: open->feedback

Do you know if this keyboard now works as expected with the new USB stack 
in FreeBSD 8.0?  Or if it was ever fixed in 7.x?  Thanks! 


Comment 5 Gavin Atkinson freebsd_committer freebsd_triage 2009-08-24 17:01:40 UTC
Responsible Changed
From-To: freebsd-usb->gavin

Track
Comment 6 pavlo.shepel 2010-01-26 14:46:44 UTC
Hello,

bug still applies to FreeBSD 8.0-RELEASE-p2 with Logitech Internet 350 
Keyboard.

# sysctl dev.ukbd
dev.ukbd.0.%desc: LITEON Technology USB Multimedia Keyboard, class 0/0, 
rev 1.10/1.01, addr 2
dev.ukbd.0.%driver: ukbd
dev.ukbd.0.%location: port=2 interface=0
dev.ukbd.0.%pnpinfo: vendor=0x046d product=0xc313 devclass=0x00 
devsubclass=0x00 sernum="" release=0x0101 intclass=0x03 intsubclass=0x01
dev.ukbd.0.%parent: uhub1

no reactions from multimedia keys in xev
Comment 7 Nick Hibma freebsd_committer freebsd_triage 2012-10-30 15:29:07 UTC
Responsible Changed
From-To: gavin->nick

If you still have the opportunity could you do the following as root: 

# figure out the USB bus the device is attached to and the ugen device 
# in use using: 
dmesg | grep usbus 
# then start dumping USB transfers for this device: 
usbdump -v -i usbusX -f Y 
# where Y is the number after ugenY (I think). 

This should produce tcpdump like output of the USB transfers. Now 
press the keys that are dead and see whether that produces additional  
traffic.
Comment 8 Nick Hibma freebsd_committer freebsd_triage 2012-10-30 15:40:24 UTC
Responsible Changed
From-To: nick->n_hibma

My uname is... well, not nick, in any case ...
Comment 9 Lapo Luchini 2012-10-30 15:47:39 UTC
I'm not the PR opener, but just in case this is for the Apple keyboard:

% uname -a
FreeBSD lapo.andxor.it 8.3-RELEASE-p3 FreeBSD 8.3-RELEASE-p3 #0: Tue Jun
12 00:39:29 UTC 2012
root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

% dmesg|fgrep ukbd0:
ukbd0: <Apple, Inc Apple Keyboard, class 0/0, rev 2.00/0.69, addr 3> on
usbus4

% sudo usbdump -v -i usbus4 -s 0
[...after F13...]
16:42:45.134109 usbus4.3
DONE-INTR-EP=00000081,SPD=LOW,NFR=1,SLEN=8,IVAL=10,ERR=0
 frame[0] READ 8 bytes
 0000  00 00 68 00 00 00 00 00
[...after F19...]
16:42:46.974030 usbus4.3
DONE-INTR-EP=00000081,SPD=LOW,NFR=1,SLEN=8,IVAL=10,ERR=0
 frame[0] READ 8 bytes
 0000  00 00 6E 00 00 00 00 00

...and it seems that the third byte (68..6E) is incrementing in F13-F19.

OTOH the "eject" key (between F12 and F13) and the "fn" key don't seem
to produce any traffic at all.

(I can provide dumps)

-- 
Lapo Luchini - http://lapo.it/

âWe can factor the number 15 with quantum computers. We can also factor
the number 15 with a dog trained to bark three times.â (Robert Harley,
sci.crypt, 2001-12-05)
Comment 10 Nick Hibma 2012-10-30 16:09:30 UTC
You could also try to use

	usbhidctl
	usbhidaction

About that last one: You might want to check whether that one isn't running and grabbing events before they reach xev.

Last but not least: It might be that the multimedia keys are only available in a different config than the default one.
Do a

	sudo usbconfig -d ugenX.Y dump_all_config_desc

where ugenX.Y is the keyboard device's ugen sibling. If that shows multiple configurations you might want to try other configurations on the device using

	sudo usbconfig -d ugenX.Y set_config <cfg index>

or

	sudo usbconfig -d ugenX.Y set_alt <alt_index>

If this does apply you might want to make this a permanent change by adding a devd script in /etc/devd/ to set the config when the device is attached. I can provide you with details if you need help there.

Nick
Comment 11 Nick Hibma freebsd_committer freebsd_triage 2012-11-05 11:20:38 UTC
State Changed
From-To: feedback->open

I've got some ideas on how to resolve these two issues: 
- more keys available on the console from USB keyboards 
- full support for USB keys in X11
Comment 12 Nick Hibma 2012-11-15 09:41:34 UTC
The solution to using USB multimedia keyboards in X, and having keys appear in xev is to use uhidd mentioned on 

http://wiki.freebsd.org/uhidd

It can attach to the Consumer USB interface on the keyboard next to ukbd providing only support for those keys (*).

An alternative is to use usbhidaction(1), which will use the uhid driver.

(*) The problem with reattachment mentioned when using uhidd has been resolved in june of 2012 in FBSD8 and up.


Note: FBSD7 having the old USB stack won't be considered here.
Comment 13 Eitan Adler freebsd_committer freebsd_triage 2018-05-28 19:45:35 UTC
batch change:

For bugs that match the following
-  Status Is In progress 
AND
- Untouched since 2018-01-01.
AND
- Affects Base System OR Documentation

DO:

Reset to open status.


Note:
I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed.