出于对国产系统的支持,由debian 12转为openEuler24.03lts,
可能是这套系统主要使用场景应用于服务器吧,对普通pc,笔记本之类支持还是不够的,
欧拉系统虽然主要定位于服务器应用,但我觉得也可以像debian那样兼容并蓄。增强用户基础。
期间遇到不少问题,
基本都解决了,只有一个触控板问题无法解决,
经多方尝试,确定是内核没有驱动造成,可是不知道如何去加。
望大佬们指点:
电脑:联想 笔记本 r900p 2021
os: openEuler 24.03lts
触控板:在欧拉下执行 dmesg | grep -i touch ,没有讯息返回,
用debian安装盘启动运行上述指令看到的信息:[ 1.876302」input: SYNA2BA6:00 06CB:CE78 Touchpad as /devices/platform/AMDI0010:01/i2c-0/i2c-SYNA2BA6:00/0018:06CB:CE7B.0001/input/input2
后面还有些信息,就不打了,以上应该足够诊断了。
基本确定是差i2c_hid这个模块啦,
哪们大哥能指点下去哪里下载,怎么单独编译这个模块。
下载了内核源码,准备自行编译,
可是make时遇到下面这个错误,
烦请各位前辈指点:
make[3]: *** 没有规则可制作目标“certs/openeuler-cert.pem”,由“certs/x509_certificate_lis
t” 需求。 停止。
我觉得还不至于到要重编译内核的程度,先从驱动层面排除故障。
R9000P用的应该也是Synaptics的触控板吧。Synatptics触控板的驱动默认是由libinput这个包提供的,软件仓库里还保留了xorg-x11-drv-synaptics-legacy这个包提供另一个驱动。如果一个驱动有问题,可以换到另一个驱动试试。查看目前使用哪个驱动:
grep -i “Using input driver” /var/log/Xorg.0.log
不行,都试过,我的触控板是i2c-hid接口,那几个相关驱动起作用的前提是系统要能发现i2c_hid设备。
所以必须有i2c_hid这个模块,另外还可能需要hid_multitouch模块。
下面这张图是用almalinux启动得到的讯息。
目前在modules-load.d中加入了i2c-hid hid-multitouch synaptics_i2c
这几个模块,开机启动之后也确保这几个模块确实加载了,
但dmesg | grep -i touchpad 仍然找不到设备,不知道什么原因了。
编译内核的时候,
./configure --help
看看有没有类似于
–disable SYSTEM_TRUSTED_KEYS
–disable SYSTEM_REVOCATION_KEYS
之类的选项。
这个问题已经解决了,我是按普通内核编译的,
欧拉的编译内核不一样,得按照社区帖子里的方法编译,
问题是编译完了还是一样不行,没法驱动我的触控板。
debian,almalinux,ruckylinux,rhel都没问题,麒麟信安都行,就欧拉不行,气死我了。
听起来不大可能,但是你有没有把触控板禁用了?
1)键盘上可能有触控板开关按键,R9000 2021是不是F10或者Fn+F10
2)如果你使用的是Gnome桌面,可以在“设置–>鼠标及触控板”进行设置
以下命令可以看系统是否识别到触控板设备:
sudo libinput list-devices
如果没有识别到触控板,说明还是内核支持的问题。网上有一种说法,i2c-hid(HID over I2C)是微软搞的接口标准,但是很多触控板厂家并没有认真遵循这个接口的规格。我的ThinkPad T14的触控板在Open Euler 24.03上的识别和使用都没有问题。
我用dmesg | grep -i touchpad找不到,内核识别不到,
不是禁用 了,双系统,win下正常。
grep -i touch /var/log/Xorg.0.log
有什么有用的信息吗?
无讯息,
dmesg 找不到硬件,用上面的指令 不可能查到什么。
那应该还是内核支持的问题。确认了内核编译的时候勾了这几个选项吗?
CONFIG_MOUSE_PS2
CONFIG_MOUSE_PS2_SYNAPTICS
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS
以及相应的I2C支持选项
这些选项都是Y
这里有个R7000的本子的触控板问题的博客文章,应该最接近你的情况了。
谢谢兄台热心回复,
不过我已找到原因,只是无法解决。
实测驱动我这款水i2c-hid触控板只需要i2c_hid模块就行了。
我也编译出来了,可是编译的不态对头,加载不了。
dmesg | grep -i i2c后得出下面提示:
[ 1.296537] i2c_hid: loading out-of-tree module taints kernel.
[ 1.296539] i2c_hid: module verification failed: signature and/or required key missing - tainting kernel
上网搜索了一下一些方案,解决不了。
烦请再为指点怎样处理。
我的makefile文件:
SPDX-License-Identifier: GPL-2.0-only
Makefile for the I2C input drivers
CONFIG_MODULE_SIG=n
ifndef KDIR
KDIR = /lib/modules/uname -r
/build
endif
obj-m += i2c-hid.o
i2c-hid-objs = i2c-hid-core.o i2c-hid-dmi-quirks.o
kbuild:
make -C $(KDIR) M=pwd
i2c_hid: loading out-of-tree module taints kernel.
i2c_hid: module verification failed: signature and/or required key missing - tainting kernel
这是一个警告,不是一个错误。内核可以加载未签名的模块。这个时候
lsmod | grep -i i2c_hid
应该可以看到模块已经被加载了。
确实加载了,但仍是找不到触控板,
但在其它系统,移除这个模块,触控板就失效,
插入这个模块,就生效。
我是在/etc/module-load-d,这个目录下加了个conf文件加载的模块。
那估计还是内核问题。其他发行版的i2c_hid模块是系统自带的吗还是你自己编译的?如果是系统自带的,你可以试一下把它卸掉(注意备份),然后自己编译一个看看能不能得到一些更多的信息。
另外,你能确定touchpad的型号吗?
其它发行版都是光盘启动就能识别,移除 i2c_hid这个模块,然后触控板就不能用,
插入然后又能用。
欧拉系统默认没有这个模块,是我自己编译的。
检测出来是这个型号:
SYNA2BA6,
笔记本电脑型号是 lenovo r9000p 2021.