升级到16.04后媒体密钥未通过

使用do-release-upgrade从Ubuntu GNOME 15.10升级到16.04后,所有工作都进行了工作。 shell设置,Steam游戏,编码IDE,数据库,vbox,nodejs / nginx服务器等……

但是我的微软键盘上的媒体键没有通过。 gnome-control-center keyboard重置值无效。 当我尝试从键盘设置值 – 键事件没有通过。 但是sudo showkey处理所有键( http://ubuntu.miximages.com/upgrade/8YmbWik.png ):

showkey:

 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 

为什么会这样?

原因是文件/lib/udev/rules.d/51-these-are-not-joysticks-rm.rules ,它已于2016年1月按照Debian bug#714399的要求添加到Debian软件包中,并作为1.4版本发布.9-1。

等等,这是Ubuntu,而不是Debian! – 是的,但是Ubuntu包是基于debian的。

然而,后来发现Microsoft键盘的多媒体键被禁用 。 我怀疑这是因为udev或Ubuntu 15.10和16.04之间的内核发生了一些变化。 我知道这是因为我写了那个文件并且它在15.10中工作正常,但这个bug只发生在16.04。

今天(8月),我终于使用修复程序更新了存储库 (即使修复程序是在5月份提出的 )。 这个修补程序将在未来的某个时候添加到Debian和Ubuntu软件包中。

想进一步了解它吗? 看看GitHub上的udev-joystick-blacklist项目 。 (免责声明:我创建了该项目。)

怎么解决?

选项1(懒惰的)

等到更新joystick包后才发布。

选项2(非游戏玩家)

您可以删除该黑名单文件:

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

无论何时更新或重新安装软件包,都应重新创建该文件。

选项3(游戏玩家之一)

您可以使用存储库中的新版本手动更新该文件。 但是,请注意joystick包的更新。 我不确定是否有任何更新只会覆盖该文件,或者更新是否会要求用户合并该文件。