>Number:         144414
>Category:       usb
>Synopsis:       Apple "Fn" key doesn't work properly
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-usb
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Mar 02 08:00:04 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Steven Noonan
>Release:        8.0-RELEASE-p2
>Organization:
>Environment:
FreeBSD alcarin.uplinklabs.net 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #0: Tue 
Jan  5 21:11:58 UTC 2010     
[email protected]:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
I've got an Apple MacBookPro2,2 and the "Fn" key doesn't seem to do anything it 
is supposed to. Fn+Left Arrow should do "Home", Fn+Right Arrow should be "End", 
etc. I checked the USB keyboard driver (ukbd.c), and it looks like the Apple 
function key is implemented (UKBD_FLAG_APPLE_FN), but I can't get it to work on 
my machine.

>From dmesg:
ugen0.2: <Apple Computer> at usbus0
ukbd0: <Apple Internal Keyboard> on usbus0
kbd2 at ukbd0

The HID descriptor for the device:
alcarin usb # usbconfig -u 0 -a 2 do_request 0x81 0x06 0x2200 0 0x1000
REQUEST = <0x05 0x01 0x09 0x06 0xa1 0x01 0x05 0x07 0x19 0xe0 0x29 0xe7 0x15 
0x00 0x25 0x01 0x75 0x01 0x95 0x08 0x81 0x02 0x95 0x01 0x75 0x08 0x81 0x01 0x95 
0x05 0x75 0x01 0x05 0x08 0x19 0x01 0x29 0x05 0x91 0x02 0x95 0x01 0x75 0x03 0x91 
0x01 0x95 0x05 0x75 0x08 0x15 0x00 0x25 0x65 0x05 0x07 0x19 0x00 0x29 0x65 0x81 
0x00 0x05 0xff 0x09 0x03 0x75 0x08 0x95 0x01 0x81 0x02 0xc0><)%uuu)uu%e)eu>

I tried setting hw.usb.ukbd.debug=1, and it looks like "apple_fn" is never '1'. 
For instance (typing Fn+Backspace, which should become 'Delete'):

ukbd_intr_callback:547: actlen=8 bytes
ukbd_intr_callback:590: apple_eject=0 apple_fn=0
ukbd_intr_callback:597: [5] = 1
ukbd_put_key:312: 0x01 (1) pressed
ukbd_intr_callback:547: actlen=8 bytes
ukbd_intr_callback:590: apple_eject=0 apple_fn=0
ukbd_intr_callback:597: [0] = 42
ukbd_intr_callback:597: [5] = 1
ukbd_put_key:312: 0x2a (42) pressed
ukbd_intr_callback:547: actlen=8 bytes
ukbd_intr_callback:590: apple_eject=0 apple_fn=0
ukbd_intr_callback:597: [5] = 1
ukbd_put_key:312: 0x42a (1066) released
ukbd_intr_callback:547: actlen=8 bytes
ukbd_intr_callback:590: apple_eject=0 apple_fn=0
ukbd_put_key:312: 0x401 (1025) released

Any thoughts?
>How-To-Repeat:

>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[email protected]"

Reply via email to