如何使键盘背光Fn按钮在三星9系列中工作?

我刚在三星900X4C上安装了Ubuntu 12.10。 但是,我无法让键盘背光工作。

我根据社区文档添加了键盘映射- 三星Series 9 (function键部分)。 但无论按Fn + F9或F10(背光减少/增加),我得到:

  1. 键盘没有灯
  2. 右上角的Toggler总是弹出最大值(即“全光”)

如何修复键盘背光? 风扇按钮(Fn + F11)也不起作用,如果你也知道那个它会很棒。

几天前我买了完全相同的型号(900X4C),我成功地看到了F9 / F10键的工作,我甚至没有安装Voria / samsung-tools包 – 我只是摆弄着/lib/udev/keymaps/samsung-other文件和相应的强制释放文件。

不幸的是,我搞砸了安装过程(我没有在UEFI模式下运行Ubuntu而且我有交换)我决定重新安装,从那以后我无法复制工作键盘背光。

我觉得这可以帮助其他人更有知识地找到解决方案。


以下是我遇到的一些(可能是有用的)资源:

此外,一些实验和结果……


这样做:

 cat /sys/class/dmi/id/product_name 

返回:

 900X3C/900X3D/900X3E/900X4C/900X4D (matched by samsung-other) 

在全新安装Ubuntu 13.04并更新之后,我得到了:

  • F1 (设置) – 不起作用
  • F2 ( – 屏幕亮度)
  • F3 (+屏幕亮度)
  • F4 (切换video模式)
  • F5 (切换触控板)
  • F6 (静音)
  • F7 ( – 卷)
  • F8 (+卷)
  • F9 ( – 键盘背光) – 不起作用
  • F10 (+键盘背光) – 不起作用
  • F11 (风扇/切换CPU速度) – 不起作用
  • F12 (切换WiFi) – 不起作用

通过执行/lib/udev/keymap -i input/event3并在按下FN + Fx组合键时收集输出,我还设法获得了这个精确模型的正确键映射代码:

 0xCE prog1 # F1 0x89 brightnessdown # F2 0x88 brightnessup # F3 0x82 switchvideomode # F4 0xF7 f22 # F5 0xF9 f23 # F5 0xA0 mute # F6 0xAE volumedown # F7 0xB0 volumeup # F8 0x97 kbdillumdown # F9 0x96 kbdillumup # F10 0xB3 prog3 # F11, "silent" isn't recognized 0xD5 wlan # F12 

您可以使用showkey来获取所按组合的十进制代码表示。

记得以后调用以下命令:

 sudo udevadm control --reload-rules sudo /lib/udev/keymap input/event3 /lib/udev/keymaps/samsung-other 

我现在有点放弃这个,但如果有人说得对,请告诉我!


PS:在尝试时,我只注意到两件有趣的事情:

  1. 如果您评论并重新加载所有默认的键盘映射规则,一切仍然有效(为什么?)
  2. 如果你使用我喜欢的github规则,一旦你按F9 / F10,你就不能再在任何地方输入了

点#2让我怀疑钥匙没有被释放。

 # Set model specific atkbd force_release quirk # # Several laptops have hotkeys which don't generate release events, # which can cause problems with software key repeat. # The atkbd driver has a quirk handler for generating synthetic # release events, which can be configured via sysfs since 2.6.32. # Simply add a file with a list of scancodes for your laptop model # in /usr/lib/udev/keymaps, and add a rule here. # If the hotkeys also need a keymap assignment you can copy the # scancodes from the keymap file, otherwise you can run # /usr/lib/udev/keymap -i /dev/input/eventX # on a Linux vt to find out. 

以上内容摘自/lib/udev/rules.d/95-keyboard-force-release.rules

是否有可能有光和风扇的BIOS选项/设置?

只需谷歌搜索您的笔记本电脑型号显示结果,包括显示您的笔记本电脑将需要一个黑暗的房间键盘背光的页面,因为有一个传感器,根据可用的光照水平自动切换键盘背光。 这可能是指示器显示亮度水平而没有明显工作背光的原因。 安装Easy Settings后,可通过Windows获得这些设置。 9系列简易设置

在确定您拥有确切的型号或在特定型号的正确页面上之后,您可以从制造商网站下载简易设置。 也就是说,如果您使用Windows来至少确认一切都按预期工作。

社区文档确认扫描码至少与9系列相同,并且包括您的模型在配置后确认工作,即安装内核模块和编辑两个文件。
以下是https://help.ubuntu.com/community/SamsungSeries9的引用

问题的解决方案

尝试有条不紊地阅读给出的已发布链接。 尝试其他选择。 即替代指令,通过该指令 ,链接的先前post都是按逆时间顺序排列的,因此可能值得尝试按此顺序阅读链接:

  1. 上一篇文章
  2. 替代指示
  3. https://help.ubuntu.com/community/SamsungSeries9

    在发射台上向火灾添加燃料可能是一件好事

因此,在上面的步骤1之后,已经预装了UEFI的窗口

UEFI和Grub2

我知道我的笔记本电脑有UEFI固件支持的选项,所以我打开了,因为UEFI很酷,对吧? 然后我发现,如果一个人使用UEFI子系统,Fedora会回退使用grub-0.9x而不是grub2,据我所知存在一些兼容性问题,所以我选择了传统的BIOS选项,因为我真的想拥有grub2启动我的操作系统。

而@MrNice的答案在这里引用;

您需要不加载samsung_laptop内核模块。 efi模式下的这个模块不能正常工作,写入内存部分,使内核抛出检查exception和恐慌。 与arch有同样的问题。 但是你失去了键盘背光。 Imho如果你需要,你必须在BIOS模式下重新安装windows和ubuntu。

或尝试不同的内核参数来获得三星笔记本电脑模块的加载。 引自http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt

内核参数
2 ~~~~~~~~~~~~~~~~~
3
4以下是已实现的内核参数的综合列表
5(大多数)由__setup()宏和排序成英文字典顺序
6(定义为忽略所有标点符号和排序数字之前的字母
7个不区分大小写的方式),并且已知有描述。
8
9可加载模块的模块参数仅指定为
10参数名称带有可选的’=’和适当的值,例如:
11
12 modprobe usbcore blinkenlights = 1
13
14内核映像中内置模块的模块参数
在内核命令行中使用模块名称plus指定15
16’。’ 加参数名称,带’=’和值(如果适用),例如:
17
18 usbcore.blinkenlights = 1

哪些不是相对的,但认为找到这些很有趣!

意味着它是决定时间! UEFI还是键盘背光?

使用UEFI选项将允许安装最近的Ubuntu版本。

三星笔记本电脑模块仅在传统模式或早期版本<= 3.2内核中安装时才能使用12.04 3.2内核。 (来源: https : //bugs.launchpad.net/ubuntu/+source/linux/+bug/1170885 )另一个错误报告( https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1012284 )说

这个错误在包linux – 3.2.0-27.43中得到修复

为了使键盘背光function键可以在带有Ubuntu 14.04(Trusty Tahr)的Samsung Series 9型号NP900X4B上运行,请在shell提示符下运行以下命令:

 sudo setkeycodes e017 229 sudo setkeycodes e016 230 

如果这些命令适合您,那么您可能希望将它们放在init脚本中。 我在/ etc / init中有一个文件set-kbdillum-keycodes.conf,其中包含以下内容:

 # set-kbdillum-keycodes - set keycodes for keyboard illumination up/down keys # # This task is a workaround for a key mapping bug # in the Samsung Series 9 notebook model NP900X4B description "set keycodes for keyboard illumination up/down keys" start on (startup and started udev) task script /usr/bin/setkeycodes e017 229 /usr/bin/setkeycodes e016 230 end script 

以上解决了NP900X4B的问题。 如果您有其他型号,并且此解决方案无法在您的笔记本电脑上运行,您可能想知道我如何获得NP900X4B的解决方案,并可能将其适用于您的笔记本电脑型号。

在发出两个setkeycodes之前,如果我查看内核日志(在shell窗口中说“tail -f /var/log/kernel.log”)并按下键盘背光function键,我会看到诸如

 Aug 5 20:24:59 ubuntu kernel: [ 152.458145] atkbd serio0: Unknown key pressed (translated set 2, code 0x97 on isa0060/serio0). Aug 5 20:24:59 ubuntu kernel: [ 152.458158] atkbd serio0: Use 'setkeycodes e017 ' to make it known. Aug 5 20:25:01 ubuntu kernel: [ 154.248439] atkbd serio0: Unknown key pressed (translated set 2, code 0x96 on isa0060/serio0). Aug 5 20:25:01 ubuntu kernel: [ 154.248452] atkbd serio0: Use 'setkeycodes e016 ' to make it known. 

当我按下键盘背光键时,出现第一对消息。 当我按下键盘背光键时,出现第二对消息。 这就是我得到“use setkeycodes”提示和扫描码值e017和e017的方法。 需要将这些扫描码值映射到键码值。 我从/usr/include/linux/input.h获得了相应的密钥代码:

 #define KEY_KBDILLUMDOWN 229 #define KEY_KBDILLUMUP 230 

如果您有其他笔记本型号,则可能需要使用其他扫描码值。 相应的键码值应该仍然相同,因为它们是Linux内核已知的值。

首先尝试安装Voira。你可以在这里获得ppa。 从那里安装三星背光。

如果那不起作用试试这个:

好吧,你知道一切都是从按键开始的,所以在按键时你的键盘会发出一个信号,linux内核会把它拿起来,这个信号叫做扫描码 。 内核有自己的扫描码到键码映射表,因此它将某个扫描码映射到一个键码 。内核使用扫描码进行键码映射 – 它被称为键映射。

首先,您需要为特定的Fn键创建一个键映射表。此链接为您提供了如何为特定Fn键创建键映射表的确切方法。

终于找到了解决这个问题的方法!

诀窍是用CMS模式而不是UEFI模式重新安装Ubuntu。 您可以在BIOS中更改此设置。 我被设定为“UEFI和CMS”。 但我只将它改为“CMS”并重新安装了Ubuntu。 现在我的键盘背光及其指示灯工作正常。

欢呼!

部分和中等不方便的解决方法:启动到窗口并打开背光,然后重新启动到Linux,他们继续