我昨天买了一台联想 IdeaPad 5 15are05 并在上面安装了 Ubuntu 20.04。问题是,触摸板不起作用。
我也尝试过 18.04 甚至 Debian 10,但它运行的唯一操作系统是 Windows。
我浏览了很多论坛,但没有发现任何对我有帮助的东西。但是,我确实找到了一些命令,我认为您会发现这些输出很有趣
cat /proc/bus/input/devices
:
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="Elan Touchscreen"
P: Phys=
S: Sysfs=/devices/platform/AMDI0010:01/i2c-1/i2c-ELAN0001:00/input/input4
U: Uniq=
H: Handlers=mouse0 event4
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=661800001000003
即使它说“触摸屏”,我也知道这是我的触摸板。我怎么知道这个?好吧,当我使用 进入终端ctrl+alt+f3
并尝试使用触摸板时,它会输出以下内容:
elants_i2c i2c-ELAN0001:00: unknown packet 0e 00 04 03
03 表示我正在触摸它。该值在不同的操作中发生变化,例如,在“释放”触摸板时变为 01。
这意味着触摸板列在 ELAN0001 下,“触摸屏”也列在其下。我认为它说它是触摸屏并不奇怪,因为它们非常相似。
xinput
输出这个:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ NEWMEN1500 Mouse Consumer Control id=13 [slave pointer (2)]
⎜ ↳ NEWMEN1500 Mouse id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ NEWMEN1500 Mouse Consumer Control id=14 [slave keyboard (3)]
↳ NEWMEN1500 Mouse id=12 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=9 [slave keyboard (3)]
↳ Ideapad extra buttons id=10 [slave keyboard (3)]
触摸板应该列在虚拟核心指针下,但不是。
我真的很想知道如何解决这个问题,因为我需要触摸板才能工作而且我不想购买新的笔记本电脑,所以请帮助我!
似乎不可能将
elants_i2c
驱动程序列入黑名单,因为它是 Ubuntu 的内置内核模块:所以有比编译内核更快的方法。只需创建一个 SystemD 单元,如下所示:
/usr/local/bin/touchpadfix
并按如下方式创建文件然后使用以下命令使其可执行,启用并启动该单元:
触摸板应该立即开始工作!
资料来源:https ://wiki.archlinux.org/index.php/Lenovo_IdeaPad_5_15are0 在这篇文章中为我们提供了 unbind-bind 修复和dl3it用户https://bugzilla.kernel.org/show_bug.cgi?id=207759#c17
我找到了解决方案,在Ideapad 5-15ARE05 上对 dl3it 大喊大叫:触摸屏不工作 | 联想论坛。(注意:它说的是触摸屏,但我猜这只是触摸板的名称。它工作正常。)
问题是内核对驱动程序做错了什么。要解决此问题,您必须安装主线内核并自行配置。
首先,通过在命令行上执行以下命令来安装依赖项:
然后,从源代码(通过 kernel.org)下载内核 5.6.x 或 5.7.x(x 可以是任何整数,我使用的是 5.7.1,并且已经在 5.6.14 和 5.7.0-rc7 上进行了测试)。进入kernel.org后,单击
[tarball]
所需的内核。像处理任何其他
.tar.gz
文件一样提取所有内容。然后,在命令行中移动到
linux-5.6.x
or目录。linux-5.7.x
执行
sudo make menuconfig
并导航到Device Drivers → Input device support → Touchscreens → Elan eKTH I2C touchscreen。到达那里后,
m
通过按回车键将星号更改为 ,然后键入m
.之后,使用左右箭头将底部的选定选项更改为“保存”并点击Enter。然后,您将希望将其另存为
.config
(它应该默认为)。现在仍然在同一目录中,执行以下命令:
sudo make -jx && sudo make modules_install -jx && sudo make install -jx
(更改
x
您的 CPU 拥有的线程数量。省略此选项会导致此操作需要很长时间。)这需要一些时间,但完成后,您需要确保您的 PC 将在新内核上启动。为此,请执行:
sudo update-initramfs -c -k <kernel-version>
(换成
<kernel-version>
你刚刚安装的内核版本,比如5.7.1
.)然后,通过执行以下命令修复 grub 配置:
然后重新启动,你的触摸板应该可以正常工作了!
注意:我使用过但之前未提及的网站:
几乎 100% 正确,这是解决方法。
打开终端
sudo 鼠标垫 /etc/default/grub
编辑如下:GRUB_CMDLINE_LINUX="initcall_blacklist=elants_i2c_driver_init"
保存、退出鼠标垫或您选择的文本编辑器。
须藤更新-grub
在“安静的飞溅”之前或之后添加并不重要。
请记住,这是一种让触摸板工作的“解决方法”,触摸板指示器图标将无法正常工作。
我能够使用此启动板错误评论中的建议解决此问题(通过此联想论坛回复):
这也适用于从安装媒体引导时,通过添加
initcall_blacklist=elants_i2c_driver_init
引导参数。在 grub 的加载屏幕中,我quiet splash
在编辑Start Ubuntu选项后添加了它。一个更简单的解决方案是:将“blacklist elants_i2c”添加到 /etc/modprobe.d/unneeded-modules.conf(您必须创建它),保存并重新启动。使用相同的触摸板和 Manjaro。供应商=04f3 产品=3140 版本=0100