Linux 下 Lenovo S10-3C 开启键盘

注:Lubuntu 12.04 下开启成功。

之前在《Lenovo S10-3C 上安装 Lubuntu》中提到过 Lenovo S10-3C 的 BIOS 是存在缺陷的,不能支持 Linux 的内核,而且官方也并没有要修正的意思(这么多年都过去了)。

当时在论坛上找到过一篇老毛子的教程,编译一份启动键盘的脚本并让它开机启动就能解决问题。当时我没有解决,不过这次心血来潮再次折腾竟成功了,确实很欣慰,记录一下……

创建脚本

首先创建一个 .c 文件如 kbd.c,复制一下内容并保存:

#include <unistd.h>
#include <sys/io.h>
#define I8042_COMMAND_REG 0x64
int main(int argc, char *argv[]) {
char data = 0xae; // enable keyboard
ioperm(I8042_COMMAND_REG, 1, 1);
if (argc == 2 && argv[1][0] == '0')
  data = 0xad; // disable keyboard
outb(data, I8042_COMMAND_REG);
return 0;
}

编译脚本

打开终端,进入此文件所在目录,使用以下命令编译:

gcc kbd.c -o keyboard

使用脚本

将编译好的 keyboard 文件复制到 /bin 目录,

cp keyboard /bin/

通过终端取得高阶权限编辑 rc.local 文件:

sudo sublime /etc/rc.local

在其 exit 0 前面添加:

/bin/keyboard 1

最后给文件执行权限:

chmod 755 /etc/rc.local
chmod +x /bin/keyboard


大功告成,重启即可正常使用自带键盘……


参考文章

文章作者
发布时间
分类
标签