← 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)

 

Attached is a patch to fix the fn keys on all new Macbook Pros (v4,1). The naming scheme follows the one defined by Apple in:
/System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/Contents/Info.plist

The keyboard name is WellspringII, and the Device ID is 0x0230, 0x0231, 0x0232 for ANSI, ISO, JIS respectively (as defined in Info.plist, and confirmed for ANSI and ISO by me and Scott).
Some debugging has been done using dynamically loaded quirks here: 
http://ubuntuforums.org/showthread.php?p=4984452&posted=1#post4984452

This patch simply adds the findings to hid-quirks.c, so that the
keyboard is recognized automatically in the future.

** Attachment added: "fix_fn_key_on_macbookpro_4_1.patch"
   http://launchpadlibrarian.net/14595497/fix_fn_key_on_macbookpro_4_1.patch

-- 
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