![让键盘背光在三星上工作](https://linux22.com/image/110528/%E8%AE%A9%E9%94%AE%E7%9B%98%E8%83%8C%E5%85%89%E5%9C%A8%E4%B8%89%E6%98%9F%E4%B8%8A%E5%B7%A5%E4%BD%9C.png)
我最近买了一台 Samsung NP900X3N,我正在尝试让背光正常工作(在 UEFI 上使用 Linux Mint 18.1 和 Kernel 4.10)。我读过很多关于它的内容,我知道有很多关于该主题的页面,但它们都很旧(3年以上),我无法让它们中的任何一个为我工作(也许是因为这个版本的笔记本电脑是比较新的)。
我尝试过的一些事情是:
- 我已经下载并安装了该
samsung-tools
软件包,但运行它后大约 2 分钟没有输出,出现错误。 - 我试图
samsung::kbd_backlight/brightness
根据以下内容找到一个文件这个简单的答案,但显然没有(我只能找到 aphy0-led/brightness
,我不知道它的作用,但已经设置为 1)。 - 我曾尝试遵循本指南采用非常手动的方法,但说实话,我无法走得太远(可能是因为我缺乏知识,但我必须有一种不太复杂的方法)
- 按照建议通过检查内核日志来检查密钥的扫描代码这个答案。
最后一个是最接近的一个,也是我想进一步追求的一个。当按下(切换键盘背光)时,我会得到分配给该键的fn+f9
扫描代码。e02c
所以我做了
sudo setkeycodes e02c 230
正如建议的答案。因此,当我按下此键时,我会收到一条显示键盘指示灯符号的通知,我认为这是一个好兆头,但什么也没有发生。
正如问题所述,键码值 230 用于增加 kbdlight,但我的笔记本电脑没有:它只有切换 kbdlight 键。所以我认为这可能是问题所在,但我找不到“切换”键码(这可能是由于我无法/usr/include/linux/input.h
完全理解)。
我尝试使用xmodmap -pke | less
查找“切换键盘背光”,它被列为键码 236,但显然该列表上的数字实际上不起作用。
有什么建议么?
编辑
输出ll /sys/class/backlight/
:
lrwxrwxrwx 1 root root 0 Apr 28 07:16 intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/
我已经尝试更改 处的值/sys/class/backlight/brightness
,但这仅控制显示亮度。
输出ll /sys/class/leds/
:
lrwxrwxrwx 1 root root 0 Apr 28 07:19 input3::capslock -> ../../devices/platform/i8042/serio0/input/input3/input3::capslock/
lrwxrwxrwx 1 root root 0 Apr 28 07:19 input3::numlock -> ../../devices/platform/i8042/serio0/input/input3/input3::numlock/
lrwxrwxrwx 1 root root 0 Apr 28 07:19 input3::scrolllock -> ../../devices/platform/i8042/serio0/input/input3/input3::scrolllock/
lrwxrwxrwx 1 root root 0 Apr 28 07:19 phy0-led -> ../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/leds/phy0-led/
大写锁就是它所说的(我已经测试过)。数字锁似乎没有做任何事情,因为我将值从 0 更改为最大值,但什么也没发生(我的键盘没有数字锁。滚动锁似乎也没有做任何事情。我也不知道phy0-led
已经设置为 1 了,设置 0 似乎没有任何作用。
编辑2
这样做modprobe samsung-laptop
给了我以下错误
modprobe: ERROR: could not insert 'samsung_laptop': No such device
这似乎是一个老虫子。
答案1
使用键盘上的特殊键控制背光有两个部分:
- 了解按下按键时产生的事件
- 实际上改变背光强度
您需要一个程序(例如窗口管理器)来对事件做出反应,然后更改强度。
第一部分没问题,您会收到一个事件,我们稍后可以整理必要的翻译。至于第二部分,您需要一些知道如何控制背光强度的驱动程序,然后需要一些与该驱动程序的接口。
通常这些可以在/sys
, 层次结构中找到,所以尝试
ll /sys/class/backlight
ll /sys/class/led
并用输出编辑你的问题。这些目录应包含指向其他目录的链接,其中包含一个名为 的文件brightness
和一个名为 的文件max_brightness
。如果您无法从名称中找出它是什么,请查看 的内容max_brightness
,并以 root 身份尝试向每个文件写入 0 到最大值之间的数字,例如
echo 0 > /sys/class/led/phy0-led/brightness
看看你是否能识别出它控制的是什么。
编辑:
好吧,看起来键盘背光没有控件,您需要特定的驱动程序。phy0-led
很可能是一个 WLAN LED 连接器,它实际上可能连接到任何东西,也可能不连接到任何东西。您可以在 处检查lspci
并查找该设备00:1c.0
。
控件samsung::kbd_backlight
由提供华硕wmi使用 WMI 接口的华硕笔记本电脑驱动程序。这是三星有类似的东西,即三星笔记本电脑,它提供了leds/samsung::kbd_backlight
,还有一个debugfs
接口可以更直接的访问。
不知道这是否适用于您的模型。尝试
modprobe samsung-laptop
作为 root,验证lsmod
是否已加载,查看dmesg
是否有任何问题或其他消息,并查看是否出现问题。