如何在我的ASUS N56VZ Ubuntu 12.04笔记本上使多媒体键起作用

我无法让我的多媒体键(FN键)工作。笔记本电脑是ASUS N56VZ。
如果我正常按下多媒体键的组合,什么都不会发生。如果我尝试在按下键时使用xev或acpi_listen获取键码,例如Fn+F8(这应该增加音量),则根本没有输出。 只有Fn+F1(待机)和Fn+F2(无线开/关)的组合键可以工作,但是在执行此操作时,xev或acpi_listen也没有输出。
我该怎么办?

2你的笔记本电脑有几个最近的BIOS更新 - 你安装了最新的吗? - fossfreedom
我已经测试过了并更新了我的BIOS到官方ASUS N56VZ驱动页面上的最新版本。然而,在这次更新之后,仍然没有成功。 - linuxrecon
7个回答

我也有一台华硕N56VZ。

好消息是,几乎所有的Fn键都可以正常工作(除了屏幕背光控制键,不知道为什么)。

不好的消息是,目前你必须等待内核3.5版本发布,或者根据你在这里看到的链接来修改源代码,如果你等不及的话。

更新 11/19/2012

好消息是,自从Ubuntu 12.10版本起,大部分的Fn键都可以直接使用。

另一个好消息!对于那些不愿意配合的屏幕背光控制键(F5和F6),我找到了这个方法。它原本是为华硕Zenbook Prime写的,但对于N56VZ机型也同样有效。

更新 04/07/2013

我最近升级了固件到2.16版本。不幸的是,fixasusbacklight这个解决方法在这个版本中似乎不太有效。屏幕背光的Fn+F5/F6按键不再起作用了。不过,这个问题应该会在月底发布Ubuntu 13.04时得到修复。我刚刚测试了beta版的Live CD,一切都正常。

我有一台与N56VZ非常相似的N56VJ电脑。在我的n56VJ上安装Ubuntu 12.10后,我遇到了一些睡眠问题,请参见此链接:http://goo.gl/uNOY0。你是否也在你那里遇到了这个问题? - ashishsony
@Jean-Louis 你是如何应用 fixasusbacklight 的?你的 Base Offset 和 DIDL & CADL offsets 是什么组合?对于 BIOS 2.12,我按照链接中描述的步骤进行操作,并找到相应的地址为 0xCA876018、0x120 和 0x220。不幸的是,这仍然无效,Fn+F5 和 Fn+F6 都没有作用。 - Adam Ryczkowski
@adam-ryczkowski我没有相同的BIOS版本。我的是2.11版。对于这个版本,你指出的数值是有效的。你尝试过应用README中指示的步骤来提取DIDL/CADL偏移量吗? - Jean-Louis Jouannic
@Jean-Louis 是的,我做了。我在那个脚本中编辑了三个值。顺便说一下:当我在/etc/default/grub中使用acpi_os=行时,我可以使用Fn+F5/F6调节亮度(无需脚本),但只能调节到大约20%的亮度。虽然调节在技术上有效,但Ubuntu并不知道它;我无法捕捉到Fn-F5键来绑定它与xbacklight,也没有关于改变屏幕亮度的OSD通知。 - Adam Ryczkowski
@adam-ryczkowski 嗯,恐怕我无法帮助你。也许你可以尝试升级固件。正如我上面提到的,使用最新的BIOS 2.16版本后,似乎不再需要任何解决方法。每个Fn键都能正常工作。 - Jean-Louis Jouannic
@jean-louis 我已经升级到 BIOS 2.16... 我从 grub 中删除了 acpi_os= 这一行,但还是不起作用。你是如何使用 Fn-F5、F6 键的?1. 你能将亮度调至最低(直到完全关闭屏幕)吗?2. 在调整亮度时,你是否看到 OSD 通知? - Adam Ryczkowski
@adam-ryczkowski 我非常抱歉。我混淆了键盘背光键(Fn+F3/F4)和屏幕背光键(FN+F5/F6)。你是对的。不仅我在关于BIOS 2.16一切正常运行的事情上说了些愚蠢的话,而且在这个固件版本中,fixasusbacklight的解决方法似乎并不有效。真希望我没有升级我的固件 :-( - Jean-Louis Jouannic
我可以确认,2.16固件和Ubuntu 13.04解决了这个问题。现在唯一的问题是重新启动后亮度级别的相关问题,它总是100%。 - skalka

根据华硕公司的说法,这可能是BIOS的问题。他们还表示,根据BIOS团队的回应,在新的华硕笔记本电脑中,wmi evaluate方法的调用方式会返回ASUS_WMI_UNSUPPORTED_METHOD。这个补丁可以修复这个问题。1 正如fossfreedom所说,您的笔记本电脑有几个最近的BIOS更新。在尝试此修复之前,请确保您的BIOS已经更新到最新版本。
我将这个文件分享到了Dropbox上,因为我找不到其他地方可以免去用户名和密码的要求。
首先,您需要下载asus-wmi-dkms_0.2_all.deb文件。下载完成后,只需按下键盘上的Ctrl+Alt+T组合键打开终端。当终端打开时,导航到文件下载的文件夹,可能是Downloads文件夹,然后运行以下命令。
sudo apt-get install dkms
sudo dpkg -i asus-wmi-dkms_0.2_all.deb

希望这对您有用。

点击此处下载文件

1来源:华硕VIP技术支持

附言:如果这个有效,请告诉我。因为如果不行,我需要告知华硕VIP支持团队。谢谢。


你知道如何在Ubuntu上更新BIOS吗?我只安装了Ubuntu(还有在VirtualBox中的Windows 7,但我觉得不能从虚拟机中更新BIOS)。谢谢。 - Fernando García Redondo
1请看这个链接:http://www.ehow.com/how_7256759_update-bios-ubuntu.html - Mitch
当我运行上述的dpkg命令时,我遇到了一个错误!内核构建的返回状态不正确:3.2.0-26-generic (x86_64)。我已经将BIOS更新到最新版本(N56VZ.204)。 - Keppil
你下载了文件吗? - Mitch
@Mitch:是的,我升级了 BIOS,然后下载了你的文件并运行了你上面指定的命令,这给我带来了很多输出结果,最后以我的先前评论中的那行结束。 - Keppil
我会将此事转达给华硕VIP支持团队。非常感谢您的帮助。 - Mitch
@Mitch: 我和Keppil遇到了同样的错误。dpkg提示我应该查看日志文件。我已经上传了日志文件,地址在这里:http://dl.dropbox.com/u/6205092/make.log你能否将这个问题转告给ASUS客服吗?我的BIOS已经是最新版本了,我已经检查了两次。 - linuxrecon
我已经向华硕VIP支持部门转达了这个问题。一旦我收到他们的回复,我会在这里发布。 - Mitch
@Mitch:好的,我明白了!它实际上可以与3.5.0-5-generic内核一起工作!这意味着该软件包可以与Quantal或者升级后的Precise内核版本一起使用。如果其他人想让他们的快捷键正常工作,他们需要从Quantal下载内核和内核头文件,并在Precise下进行安装。无论如何,您需要这个内核版本才能使bumblebee(NVIDIA显卡)正常工作。现在一切都正常工作(包括键盘背光)。唯一仍然不工作的是HDMI输出,但这是由于Optimus技术的限制,完全正常。不过,对我来说VGA是可用的! - linuxrecon
@Mitch:你能向ASUS支持报告这个问题吗?这样我们就能得到一个适用于Precise版本的常规内核.deb文件的可用版本了。 - linuxrecon
我已经完成了。正在等待回复。 - Mitch
dpkg-deb: 错误:`asus-wmi-dkms_0.2_all.deb' 不是一个 Debian 格式的存档 dpkg:正在处理 asus-wmi-dkms_0.2_all.deb (--install) 时出错: 子进程 dpkg-deb --control 返回错误的退出状态 2 在处理过程中遇到了错误: asus-wmi-dkms_0.2_all.deb - isomorphismes

我也有一台ASUS N56VZ。
为了使Fn键正常工作,我安装了3.5.3内核,除了屏幕亮度之外,其他功能都完美运行。我相信不需要更新内核,只要更新asus_wb_wmi模块应该就足够了。
另外,这个内核现在还修复了之前无法工作的Wifi指示灯。

在当前的Ubuntu 12.04内核3.2.0-32-generic中,除了屏幕亮度之外,所有的功能键都正常工作。你知道哪个模块负责WiFi指示灯吗? - tommyk

我有一台N56VJ,最新的内核更新到3.7.0.4终于使得屏幕背光的F6和F7键可以正常工作了。它们在xev中生成事件,并且我在右上角看到滑块显示。然而,它并不能改变亮度太多,滑块只能下降到大约90%。有没有办法改变范围?

如果您有其他问题,请点击提问按钮向我们提问。 - Oyibo
我确认,在N56VZ上的一个幸运的日子里,奇迹般地Fn+F5/F6开始产生键盘事件,亮度开始改变,并且OSD开始确认它(!)。 - Adam Ryczkowski
1你可以通过以root身份执行echo 23 > /sys/class/backlight/intel_backlight/brightness的方式,手动将亮度调整到最低(甚至完全关闭)。这里的"23"代表所期望的亮度级别。如果你输入"0",屏幕将会变成空白。 - Adam Ryczkowski

看起来功能键和多媒体键是通过软件路由的,除了电源功能、待机和无线网络电源之外。
如果你想要这些功能的快捷方式,你需要在键盘首选项中手动创建它们,因为它们不是原生扩展。

举个例子:我的键盘有完全独立的快捷键(我找到的一台旧的HP键盘),上面有一个叫做“购物”的按钮,它是一个单独的代码,没有映射。所以我把它设置成了终端。

如果你进入键盘设置->快捷方式选项卡,能否让你映射“功能键 + Fx”?

不行,绝对不行。我无法通过FN+F1键进行映射,它们根本无法被识别。我能做的唯一一件事就是用SHIT+Fx来设置音量增加/减少(例如),而不是使用Fn+Fx,但这并不是一个真正的解决方案。 - linuxrecon

尝试编辑您的键盘快捷键,因为上述所有的多媒体功能都可以进行输入。
前往系统设置,选择键盘,然后点击快捷键选项卡。您要寻找的功能位于声音和媒体部分,但您也可能在其他部分找到一些值得更改的有用功能。

尝试使用Ubuntu论坛的建议:http://ubuntuforums.org/showpost.php?p=9212176&postcount=3 - xlukasx
我也尝试过这个,但即使加上这个补充,也无法绑定到FN+Fx键。而且xev在这里没有任何输出... - linuxrecon

我有一台华硕 N53SM,所有的 FN+F* 键在 xev 中显示为键码。在测试按键时,请确保选中 xev 窗口。如果你的键没有产生键码,那么 XWindows 系统就无法知道它们何时被按下。


我完全确定 xev 窗口在前面。否则就不可能测试其他键,比如12345,看是否有输出。 - linuxrecon