让键盘背光在三星上工作

让键盘背光在三星上工作

我最近买了一台 Samsung NP900X3N,我正在尝试让背光正常工作(在 UEFI 上使用 Linux Mint 18.1 和 Kernel 4.10)。我读过很多关于它的内容,我知道有很多关于该主题的页面,但它们都很旧(3年以上),我无法让它们中的任何一个为我工作(也许是因为这个版本的笔记本电脑是比较新的)。

我尝试过的一些事情是:

  • 我已经下载并安装了该samsung-tools软件包,但运行它后大约 2 分钟没有输出,出现错误。
  • 我试图samsung::kbd_backlight/brightness根据以下内容找到一个文件这个简单的答案,但显然没有(我只能找到 a phy0-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是否有任何问题或其他消息,并查看是否出现问题。

相关内容