web-dev-qa-db-ja.com

16.04へのアップグレード後にメディアキーが渡されない

Ubuntu GNOME 15.10からdo-release-upgradeを使用して16.04にアップグレードすると、すべてが動作します。シェル設定、Steamゲーム、コーディングIDE、データベース、vbox、nodejs/nginxサーバーなど...

しかし、Microsoftキーボードのメディアキーは渡されません。 gnome-control-center keyboardの値をリセットしても効果はありません。キーボードから値を設定しようとすると、キーイベントが通過しません。ただし、Sudo showkeyはすべてのキーを処理します( http://i.imgur.com/8YmbWik.png ):

ショーキー:

vasiliy0s@0sserver$ LANG=C Sudo showkey
[Sudo] password for vasiliy0s: 
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]

press any key (program terminates 10s after last keypress)...
keycode  28 release
keycode 114 press
keycode 114 release
keycode 115 press
keycode 115 release
keycode 113 press
keycode 113 release

lsusb:

vasiliy0s@0sserver:~$ lsusb | grep Microsoft
Bus 001 Device 006: ID 045e:0745 Microsoft Corp. Nano Transceiver v1.0 for Bluetooth


lsb_release:

vasiliy0s@0sserver:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04 LTS
Release:    16.04
Codename:   xenial
3
Vasiliy Os

なぜ起こるのですか?

理由はファイル/lib/udev/rules.d/51-these-are-not-joysticks-rm.rulesで、これは 2016年1月にDebianパッケージに追加されましたDebianバグ#714399 で要求され、バージョン1.4.9-としてリリースされました1。

待ってください、これはDebianではなくUbuntuです!—はい、しかし buntuパッケージ はdebianに基づいています。

ただし、後で発見された Microsoftキーボードのマルチメディアキーが無効になった 。 Ubuntu 15.10と16.04の間のudevまたはカーネルの変更により、これが発生したと思われます。そのファイルを書いて、15.10で問題なく動作したので、これを知っていますが、バグは16.04でのみ発生しました。

今日(8月)、ついに 修正でリポジトリを更新しました (たとえ 修正は5月に提案されました )。この修正は、将来的にDebianおよびUbuntuパッケージに追加される予定です。

さらに詳しく知りたいですか? GitHubのudev-joystick-blacklistプロジェクト を見てください。 (免責事項:私はそのプロジェクトを作成しました。)

修正方法

オプション1(怠zyなもの)

joystickパッケージの更新がリリースされるまで待ってください。

オプション2(ゲーマー以外)

そのブラックリストファイルを削除するだけです。

Sudo rm /lib/udev/rules.d/51-these-are-not-joysticks-rm.rules

パッケージが更新または再インストールされるたびに、ファイルを再作成する必要があります。

オプション3(ゲーマー1)

リポジトリからの新しいバージョン でそのファイルを手動で更新できます。ただし、joystickパッケージの更新には注意してください。更新プログラムがファイルを上書きするだけなのか、または更新プログラムがユーザーにファイルのマージを要求するのかはわかりません。

4