使用に問題があります。アップルマジックキーボード(リチウムイオンバッテリーを搭載したBluetoothワイヤレス、充電およびテザリングを使用するためのLightningポート)Fedora 25を含む(カーネル:)4.8.15-300.fc25.x86_64
。
問題は、ワイヤレスモードで使用しているときにFnキーが登録されていないようです。私はそれを試しましたが、xev
キー自体はイベントを発生させず、他のキーと一緒にキーを押すと他のキーだけを押すのとは異なりイベントは発生しません。そのキーを使用したいのは、Fn+ Fn/←を別々にマッピングし、基本的にファンクションキーに設定→されているマルチメディアキーも使用したいからです。HomeEnd
興味深いことに、ライトニングケーブルを使用してコンピュータに接続すると、キーボードは通常のApple有線キーボードのように動作します。これは、Bluetoothラジオを使用せずにOriginal AppleにUSBハードウェア/ドライバ(おそらく登録経由)を使用するためであると仮定します。アルミキーボードのUSBデバイスIDが異なりますが、これは確認されていません。)これにより、ファンクションキーだけでなく、インターネットで見つけることができるプライマリファンクションキーやマルチメディアキーなどのすべての機能を使用できます。
ただ、Bluetoothキーボードで使っても同じ機能が出てほしいです。可能であればカーネルをパッチします。しかし、どこで始めるのか、どうやってテストしてデバッグするのかわかりません(明らかにあまり「侵入的」な方法を最初に試してみたい)。
この問題を解決する方法のアイデアを歓迎します。
修正する
を読むときに/dev/hidraw0
キーを押すと何らかのアクティビティが発生するため、Fnこれはfnシステムに登録されているが途中で失われたことを意味します。
アップデート2
evtest
このキーを押すとイベントは表示されずFn(/dev/input/event4
Magic Keyboardのイベントデバイス)、イベントは発生しません(他のキーは実行されます)。したがって、問題は、Fnシステムがキー(/dev/hidraw0
データ表示を介して暗黙的に)を読み取ったが渡されないことです/dev/input/event4
。しかし、Linuxでユーザー入力データストリームがどのように機能するのかわからないので、これは単なる推測です。
アップデート3
fn以下は、キーを数回押した結果です(押す+離す)。
> sudo cat /dev/hidraw2 | hexdump
0000000 0001 0000 0000 0000 0000 0001 0000 0000
0000010 0000 0200 0001 0000 0000 0000 0000 0001
0000020 0000 0000 0000 0200 0001 0000 0000 0000
0000030 0000 0001 0000 0000 0000 0200 0001 0000
0000040 0000 0000 0000 0001 0000 0000 0000 0200
0000050 0001 0000 0000 0000 0000 0001 0000 0000
0000060 0000 0200 0001 0000 0000 0000 0000 0001
0000070 0000 0000 0000 0200 0001 0000 0000 0000
0000080 0000 0001 0000 0000 0000 0200 0001 0000
0000090 0000 0000 0000 0001 0000 0000 0000 0200
00000a0 0001 0000 0000 0000 0000 0001 0000 0000
00000b0 0000 0200 0001 0000 0000 0000 0000 0001
00000c0 0000 0000 0000 0200 0001 0000 0000 0000
00000d0 0000 0001 0000 0000 0000 0200 0001 0000
00000e0 0000 0000 0000 0001 0000 0000 0000 0200
00000f0 0001 0000 0000 0000 0000 0001 0000 0000
0000100 0000 0200 0001 0000 0000 0000 0000 0001
0000110 0000 0000 0000 0200 0001 0000 0000 0000
0000120 0000 0001 0000 0000 0000 0200 0001 0000
0000130 0000 0000 0000 0001 0000 0000 0000 0200
0000140 0001 0000 0000 0000 0000 0001 0000 0000
0000150 0000 0200 0001 0000 0000 0000 0000 0001
0000160 0000 0000 0000 0200 0001 0000 0000 0000
0000170 0000 0001 0000 0000 0000 0200 0001 0000
0000180 0000 0000 0000 0001 0000 0000 0000 0200
0000190 0001 0000 0000 0000 0000 0001 0000 0000
00001a0 0000 0200 0001 0000 0000 0000 0000 0001
00001b0 0000 0000 0000 0200 0001 0000 0000 0000
00001c0 0000 0001 0000 0000 0000 0200 0001 0000
00001d0 0000 0000 0000 0001 0000 0000 0000 0200
00001e0 0001 0000 0000 0000 0000 0001 0000 0000
00001f0 0000 0200 0001 0000 0000 0000 0000 0001
0000200 0000 0000 0000 0200 0001 0000 0000 0000
0000210 0000 0001 0000 0000 0000 0200 0001 0000
0000220 0000 0000 0000 0001 0000 0000 0000 0200
0000230 0001 0000 0000 0000 0000 0001 0000 0000
奇妙な点は、発売後、たまに2行が出力されることもあるが、ほとんど1行が出力されるという点だfn。
F2とFn+それぞれ次のようになりますF2。
sudo cat /dev/hidraw2 | hexdump
0000000 0001 0000 0000 0000 0000 0001 3b00 0000
^[OQ0000010 0000 0000 0001 0000 0000 0000 0000 0001
^[OQ0000020 3b00 0000 0000 0000 0001 0000 0000 0000
^[OQ0000030 0000 0001 3b00 0000 0000 0000 0001 0000
0000040 0000 0000 0000 0001 3b00 0000 0000 0000
^[OQ0000050 0001 0000 0000 0000 0000 0001 3b00 0000
^[OQ0000060 0000 0000 0001 0000 0000 0000 0000 0001
^[OQ0000070 3b00 0000 0000 0000 0001 0000 0000 0000
0000080 0000 0101 0000 0000 0000 0000 0101 0600
^C
Fn+ F2:
> sudo cat /dev/hidraw2 | hexdump
0000000 0001 0000 0000 0000 0000 0001 0000 0000
^[OQ0000010 0000 0200 0001 3b00 0000 0000 0200 0001
0000020 0000 0000 0000 0200 0001 3b00 0000 0000
^[OQ0000030 0200 0001 0000 0000 0000 0200 0001 3b00
^[OQ0000040 0000 0000 0200 0001 0000 0000 0000 0200
^[OQ0000050 0001 3b00 0000 0000 0200 0001 0000 0000
^[OQ0000060 0000 0200 0001 3b00 0000 0000 0200 0001
0000070 0000 0000 0000 0200 0001 3b00 0000 0000
^[OQ0000080 0200 0001 0000 0000 0000 0200 0001 3b00
^[OQ0000090 0000 0000 0200 0001 0000 0000 0000 0200
^[OQ00000a0 0001 3b00 0000 0000 0200 0001 0000 0000
00000b0 0000 0200 0001 0000 0000 0000 0000 0101
00000c0 0000 0000 0000 0000 0101 0600 0000 0000
^C
アップデート4
@dirktの要求に応じて、レポート記述子情報は次のようになります(コメントの説明に従って行を実行できないため、ここに完全なダンプがあります。hidraw2
キーボードを変更する必要があることにも注意してください)。
> sudo ./hid-desc /dev/hidraw2
Report Descriptor Size: 171
Report Descriptor:
05 01 09 06 a1 01 85 01 05 07 15 00 25 01 19 e0 29 e7 75 01 95 08 81 02 95 05 75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 03 95 08 75 01 15 00 25 01 06 00 ff 09 03 81 03 95 06 75 08 15 00 25 65 05 07 19 00 29 65 81 00 95 01 75 01 15 00 25 01 05 0c 09 b8 81 02 95 01 75 01 06 00 ff 09 03 81 02 95 01 75 06 81 03 06 02 ff 09 55 85 55 15 00 26 ff 00 75 08 95 40 b1 a2 c0 06 00 ff 09 14 a1 01 85 90 05 84 75 01 95 03 15 00 25 01 09 61 05 85 09 44 09 46 81 02 95 05 81 01 75 08 95 01 15 00 26 ff 00 09 65 81 02 c0 00
Raw Name: Magic Keyboard
Raw Phys: 00:c2:c6:f7:eb:57
Raw Info:
bustype: 5 (Bluetooth)
vendor: 0x004c
product: 0x0267
ベストアンサー1
上記のヒントの助けを借りて、Apple Magic KeyboardをBluetoothに接続するときにFnキーが機能するようにするパッチを作成できました。
問題のいくつかは、Magic KeyboardがベンダーID 0x004c(AppleのBluetoothベンダーID)を表示しているのに対し、hid-appleは0x05ac(Apple USBベンダーID)のみを見つけるため、hid-appleの代わりにhid-genericモジュールが使用されることです。です。 。
2番目の問題は、元のapple_input_mapping
gitログのコードで発生しました。hidinput_configure_usage
パッチはここに掲載されています:https://bugzilla.kernel.org/show_bug.cgi?id=99881#c41