Clevo 笔记本电脑上多色背光键盘的逆向工程驱动程序

Pop*_*mal 13 keyboard kernel backlight drivers

这是我的情况:

我最近购买了 Sager NP9170(与 Clevo P170EM 相同),它有一个多色背光键盘。在 Windows 7 下,您可以启动应用程序,允许您将背光颜色更改为少数几种颜色(蓝色、绿色、红色等)中的任何一种。

我希望在 Linux 下具有相同的功能。我还没有找到任何可以做到这一点的软件,所以我想我将不得不自己编写它。我是一名程序员,但我没有做过很多低级编程,而且我当然从未编写过设备驱动程序,所以我想知道是否有人可以回答这两个问题:

1)是否有任何软件可以做这种事情?我已经相当彻底地看了,但没有发现任何适用的东西。

2)我应该从哪里开始尝试对这种事情进行逆向工程?任何有用的文章、教程、书籍可能有帮助?

只是澄清一下:背光已经起作用了,这不是问题。我只想能够改变背光的颜色。硬件支持此功能。笔记本电脑附带了执行此操作的 Windows 软件,我希望在 Linux 中具有相同的功能。我愿意自己编写这个软件,我只想知道最好的方法。

谢谢!

Pop*_*mal 9

好吧,事实证明,其他人实际上已经想通了。在 notebookreview.com 论坛中向“ klystron34致以巨大的“谢谢” 。查看论坛主题以获取更多信息。

注意:据我所知,这适用于基于库存 Clevo P150EM 和 P170EM 的许多/大多数笔记本电脑。这是我在 Ubuntu 12.04 上的 Sager NP9170 上亲自验证的。继续需要您自担风险。对于您这样做可能造成的任何损害以及任何其他标准的互联网免责声明,我概不负责。继续需要您自担风险。现在,进入好东西:

首先,您需要能够编译内核模块,因此更新您的存储库:

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

现在,安装 git、构建工具和内核源代码:

sudo apt-get install git build-essential linux-source
Run Code Online (Sandbox Code Playgroud)

现在创建一个工作目录。我更喜欢使用位于我的主目录中的“dev”文件夹:

cd ˜
mkdir dev
cd dev
Run Code Online (Sandbox Code Playgroud)

现在,下载内核模块的源代码:

git clone git://git.code.sf.net/p/clevo-wmi/code clevo-wmi-code
Run Code Online (Sandbox Code Playgroud)

进入包含源代码的目录:

cd clevo-wmi-code
Run Code Online (Sandbox Code Playgroud)

“制作”内核模块:

make
Run Code Online (Sandbox Code Playgroud)

您现在应该有一个名为 clevo_wmi.ko

现在,让我们通过加载模块来测试并查看模块是否实际工作:

sudo insmod /home/<your-username-here>/dev/clevo-wmi-code/clevo_wmi.ko
Run Code Online (Sandbox Code Playgroud)

如果它有效,您现在应该有一个名为的新目录:

/sys/devices/platform/clevo_wmi/kbled

切换到该目录:

cd /sys/devices/platform/clevo_wmi/kbled
Run Code Online (Sandbox Code Playgroud)

您现在应该可以通过执行以下命令来更改键盘中间部分的颜色:

sudo su -c 'echo 100 > middle'
Run Code Online (Sandbox Code Playgroud)

键盘的中间部分现在应该是绿色的。替换middleleftright以更改键盘的相应部分。以下是颜色代码列表:

GRB (Green-Red-Blue)
000 - Off
111 - White
100 - Green
010 - Red
001 - Blue
110 - Yellow
011 - Purple
101 - Aqua
Run Code Online (Sandbox Code Playgroud)

要永久安装此内核模块,请将其复制到与其余内核模块相同的位置(注意:您可能必须在更改内核时执行此步骤和下一步):

sudo cp ~/dev/clevo-wmi-code/clevo_wmi.ko /lib/modules/`uname -r`/kernel/drivers/platform/x86/
Run Code Online (Sandbox Code Playgroud)

接下来,这样做(我认为重建内核模块列表):

sudo depmod -a
Run Code Online (Sandbox Code Playgroud)

然后编辑您的/etc/modules文件并将此行添加到文件末尾:

clevo_wmi

将更改保存到/etc/modules.

现在,无论何时重新启动,都应该加载该模块,然后您可以更改键盘背光的颜色。弄清楚如何让它在重启时改变颜色并记住上次的颜色设置是留给读者的练习。检查docs源代码中的目录以获取有关如何使用动态颜色更改功能的说明。

感谢 agin 为编写此内核模块而努力的开发人员!


dav*_*id6 0

您如何访问此类功能?

这可能可以通过一些巧妙的脚本和启动功能来实现。

(在 Windows 中,您可能需要在允许直接硬件访问的奇异内存模型中编写代码,或者需要编写驱动程序(和 API)来检测和控制硬件。)


您如何选择您的偏好?

然后一些基本脚本(或图标调用脚本)可以选择特定的颜色首选项。

如果你使用Python作为前端GUI,它也会相当简单。