Thursday, 29 June 2017

Apple Magic Keyboard 2 on Linux

Annoyingly, the Apple Magic Keyboard 2 is only recognised as a generic Bluetooth hid keyboard so the Fn and shortcut keys don't work correctly (using hid-generic kernel module).

I've started work on a set of patches for the hid-apple kernel module to add support for this keyboard.

Using Wireshark to sniff the Bluetooth packets, I've found the following are emitted as Fn KeyDown and KeyUp events:

Fn KeyDown: a1 01 00 00 00 00 00 00 00 00 02
Fn KeyUp:   a1 01 00 00 00 00 00 00 00 00 00

I'm going to attempt to add these as a customisation in the hid-apple module and see how I get on.

Monday, 2 January 2017

External USB Audio on Raspberry Pi 3

The rpi3 could see the USB audio device but not be able to enable it. The following errors were observed in dmesg:

[    4.214503] snd_bcm2835: unknown parameter 'index' ignored
[    4.470103] snd-usb-audio 1-1.2:1.0: cannot find the slot for index 0 (range 0-0), error: -16
[    4.470134] usb 1-1.2: cannot create card instance 0
[    4.470164] snd-usb-audio: probe of 1-1.2:1.0 failed with error -16
[    4.470823] usbcore: registered new interface driver snd-usb-audio

It looks like a conflict with the card index of the internal sound codec. Because I don't want to use the interval sound codec I just blacklisted the module to prevent it from loading by adding:

blacklist snd_bcm2835

To the configuration file /etc/modprobe.d/rpi-blacklist.conf