← Back to team overview

mactel-support team mailing list archive

[Bug 207127] Re: fn key doesn't work in hardy with macbook pro fourth generation (4, 1)

 

Ok I've figured it out. Working from the discussion here: http://www
.mail-archive.com/linux-input@xxxxxxxxxxxxxxxxxxxxxxxx/msg01343.html

We need to add 3 new device IDs for the new generation macbooks (the id varies depending on whether the keyboard is ansi, iso, or jis) for the apple vendor ID, which is: "#define USB_VENDOR_ID_APPLE 0x05ac".
I propose to add the following to hid-quirks.c

#define USB_DEVICE_ID_APPLE_GEYSER5_ANSI	0x0230    /* i'm guessing this is correct, i need you to confirm this */
#define USB_DEVICE_ID_APPLE_GEYSER5_ISO    0x0231
#define USB_DEVICE_ID_APPLE_GEYSER5_JIS	0x0232

Corresponding entries will have to be made inside hid_blacklist[] in the
same file (just a copy&paste of the GEYSER4 entries). This way older
Macbook models will not be affected, and the new ones will work for all
those device IDs.

*** What I need from you: execute "lsusb -v" at the shell. And report the output for the block that contains:
   Bus 005 Device 003: ID 05ac:0230 Apple Computer, Inc.
...
      bInterfaceProtocol      1 Keyboard
...

Note your ID might not be 05ac:0230. I've attached the block for mine for reference.  The important line here is the device ID, and country code. For me it is:
        bCountryCode           33 US

I'm guessing Scott's line will read:
       bCountryCode           13 International (ISO)

or something similar. Once I've confirmed the device IDs with your help,
I'll try to make a patch and submit it. We should also probably submit
it upstream as this is not exclusive to Ubuntu.

** Attachment added: ""lsusb -v" output for Keyboard section"
   http://launchpadlibrarian.net/14581184/keyboard.txt

-- 
fn key doesn't work in hardy with macbook pro fourth generation (4,1)
https://bugs.launchpad.net/bugs/207127
You received this bug notification because you are a member of Mactel
Support, which is the registrant for Mactel Support.

Status in Mactel Support: New
Status in Source Package "linux-meta" in Ubuntu: Confirmed

Bug description:
hardware:  macbook pro generation 4,1 (feb 2008)
problem:  fn key not detected
test:  run xev.  press fn key.  nothing happens.
consequences:  home/end/pgup/pgdown don't work.

i was able to fix this issue by compiling my own kernel.
i downloaded linux-source from ubuntu hardy
(VERSION = 2,PATCHLEVEL = 6,SUBLEVEL = 24,EXTRAVERSION = .3)

and revised this file:
 drivers/hid/usbhid/hid-quirks.c 

used lsusb to grab the id of the internal keyboard device:
  Bus 005 Device 003: ID 05ac:0230 Apple Computer, Inc.

and revised the c file accordingly:

/* next line commented out by eitan and replaced with line below;
  changing address for device from 0x021b to 0x0230 which is what lsusb tells me
  my internal keyboard device id actually is
#define USB_DEVICE_ID_APPLE_GEYSER4_ISO 0x021b
 */
#define USB_DEVICE_ID_APPLE_GEYSER4_ISO 0x0230

rebooting with the new kernel, the fn key now works.
i don't know if this breaks other versions of the macbook pro
and am otherwise ignorant of the linux kernel source code.

thanks,
/ eitan