Apple Wireless Keyboard (Silver)

I am trying my hardest in order to get my wireless keyboard (silver) to function on my Acer Travelmate

I have installed the latest OpenSuse 12.2 32 bit and am running kernel:

Linux linux-ygng.site 3.4.6-2.10-default #1 SMP Thu Jul 26 09:36:26 UTC 2012 (641c197) i686 i686 i386 GNU/Linux

I am using gnome as well, for what its worth.

Installation of the keyboard through the bluetooth was flawless and it functions exactly as it should.

The problem herein is that the ‘fn’ key does not do a thing, this is important as it toggles the arrow keys to function as page up/down home/end
as well the backspace to “delete” and other functionality as well.

I have confirmed that the keyboards fn key is not being taken into account by using xev: the output being:

** PRESSING THE UP ARROW ON ITS OWN **

KeyPress event, serial 37, synthetic NO, window 0x3a00001,
    root 0xac, subw 0x0, time 6034600, (770,432), root:(775,619),
    state 0x0, keycode 111 (keysym 0xff52, Up), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

** PRESSING THE fn KEY AND THE UP ARROW **

KeyRelease event, serial 37, synthetic NO, window 0x3a00001,
    root 0xac, subw 0x0, time 6034788, (770,432), root:(775,619),
    state 0x0, keycode 111 (keysym 0xff52, Up), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

as stated the fn key alone produces no output with xev.

So from there I have installed the package “pommed”
pommed v1.39 Apple laptops hotkeys handler
Copyright (C) 2006-2011 Julien BLACHE jb@jblache.org

this was installed from: software.opensuse.org:

I did run this however received the error from below. I thought about running this with strace, however don’t feel the output would be of any assistance.
The command was run using:

# pommed -f start
    enabled: no
E: Unknown non-Apple machine

I have hunted around and the statement from Julien BLACHE was that he was not developing this for other hardware; and I am not using a mac, simply the mac wireless keyboard.

I was unable to locate a work-around for this error online and am unsure that would allow the functionality I am looking for.

From here, I was lead to take a look at checking the kernel for the installed drivers for the keyboard.
I was on the #opensuse channel and was lead to believe a user had this working by following this guide.
https://wiki.archlinux.org/index.php/Apple_Keyboard

I visited the site and noted the first thing, I did not in fact have either of the 2 files first referenced therein:

linux-ygng:/home/chris.thompson # stat /sys/module/hid_apple/parameters/fnmode
stat: cannot stat ‘/sys/module/hid_apple/parameters/fnmode’: No such file or directory
linux-ygng:/home/chris.thompson # stat  /sys/module/hid/parameters/pb_fnmode
stat: cannot stat ‘/sys/module/hid/parameters/pb_fnmode’: No such file or directory

here’s where I knew something was up, based on the above, I moved on to attempt to run:

linux-ygng:/home/chris.thompson # hidd --show
If 'hidd' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf hidd
linux-ygng:/home/chris.thompson # cnf hidd
hidd: command not found                     
linux-ygng:/home/chris.thompson # rpm -fi hidd
error: open of hidd failed: No such file or directory
linux-ygng:/home/chris.thompson # rpm -qa | grep hidd

ultimately I used my google foo in order to determine that this utility was from bluez-utils

https://groups.google.com/forum/?fromgroups=#!topic/linux.debian.bugs.dist/LyeqEMYO8cQ

it has been depricated and is now controlled through dbus and I was unable to utilize this moving forward as the version I have is:

linux-ygng:/home/chris.thompson # rpm -qa | grep bluez
bluez-firmware-1.2-139.1.1.i586
bluez-compat-4.99-4.1.2.i586
bluez-4.99-4.1.2.i586

I did manage however to get the required information to continue by doing:

linux-ygng:/home/chris.thompson # hcitool info 60:C5:47:1A:FC:9D
Requesting information ...
    BD Address:  60:C5:47:1A:FC:9D
    Device Name: colin’s Keyboard
    LMP Version: 2.0 (0x3) LMP Subversion: 0x31c
    Manufacturer: Apple, Inc. (76)
    Features: 0xbc 0x02 0x04 0x38 0x08 0x00 0x00 0x00
        <encryption> <slot offset> <timing accuracy> <role switch> 
        <sniff mode> <RSSI> <power control> <enhanced iscan> 
        <interlaced iscan> <interlaced pscan> <AFH cap. slave> 
linux-ygng:/home/chris.thompson # sdptool browse 60:C5:47:1A:FC:9D
Browsing 60:C5:47:1A:FC:9D ...
Service Name: Apple Wireless Keyboard
Service Description: Keyboard
Service Provider: Apple Inc.
Service RecHandle: 0x10000
Service Class ID List:
  "Human Interface Device" (0x1124)
Protocol Descriptor List:
  "L2CAP" (0x0100)
    PSM: 17
  "HIDP" (0x0011)
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "Human Interface Device" (0x1124)
    Version: 0x0100

At this point I am a bit lost. I have downloaded the kernel source as well managed to determine it is located within

linux-ygng:/usr/src/linux-3.4.6-2.10/drivers/bluetooth # pwd
/usr/src/linux-3.4.6-2.10/drivers/bluetooth

but am not savvy enough to know where to add this, as doing a search for the refernce point of apple produces nothing useful within the above path

linux-ygng:/usr/src/linux-3.4.6-2.10/drivers/bluetooth # grep -i apple *
btusb.c:    /* Apple MacBookPro 7,1 */
btusb.c:    /* Apple iMac11,1 */
btusb.c:    /* Apple MacBookPro6,2 */
btusb.c:    /* Apple MacBookAir3,1, MacBookAir3,2 */
btusb.c:    /* Apple MacBookAir4,1 */
btusb.c:    /* Apple MacBookPro8,2 */
btusb.c:    /* Apple MacMini5,1 */

sooo… anyone with gumpshu and stealth within the kernel I would emplore your assistance with this, furthermore would like to have it included moving forward? if you forward me to the right spot, I will gladly assist with what I can to see this happen.

Thank-You