Kel*_*uma 8 touchpad lenovo ideapad elantech 20.04
我昨天买了一台联想 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
Run Code Online (Sandbox Code Playgroud)
尽管上面写着“触摸屏”,但我知道这是我的触摸板。我怎么知道这个?好吧,当我使用 进入终端ctrl+alt+f3并尝试使用我的触摸板时,它会输出以下内容:
elants_i2c i2c-ELAN0001:00: unknown packet 0e 00 04 0303 意味着我正在触摸它。该值在不同的操作中改变,例如,它在“释放”触摸板时变为 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)]
Run Code Online (Sandbox Code Playgroud)
触摸板应该列在虚拟核心指针下,但事实并非如此。
我真的很想知道如何解决这个问题,因为我需要触摸板才能工作,而且我不想购买新的笔记本电脑,所以请帮助我!
似乎不可能将elants_i2c驱动程序列入黑名单,因为它是 Ubuntu 的内置内核模块:
stefano@stefano-IdeaPad-5-15ARE05:~$ modinfo elants-i2c
name: elants_i2c
filename: (builtin)
license: GPL
description: Elan I2c Touchscreen driver
author: Scott Liu <scott.liu@emc.com.tw>
Run Code Online (Sandbox Code Playgroud)
所以有一种比编译内核更快的方法。只需创建一个 SystemD 单元,如下所示:
stefano@stefano-IdeaPad-5-15ARE05:~$ cat /etc/systemd/system/touchpadfix.service
[Unit]
Description=Fix touchpad issue by binding correct driver
[Service]
ExecStart=/usr/local/bin/touchpadfix
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
并按/usr/local/bin/touchpadfix如下方式创建文件
stefano@stefano-IdeaPad-5-15ARE05:~$ cat /usr/local/bin/touchpadfix
#!/bin/bash
modprobe i2c_hid
echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/elants_i2c/unbind
echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/i2c_hid/bind
Run Code Online (Sandbox Code Playgroud)
然后使其可执行,使用以下命令启用和启动单元:
chmod +x /usr/local/bin/touchpadfix
sudo systemctl daemon-reload
sudo systemctl enable --now touchpadfix.service
Run Code Online (Sandbox Code Playgroud)
和触摸板应该立即开始工作!
来源:https : //wiki.archlinux.org/index.php/Lenovo_IdeaPad_5_15are0,它在这篇文章中为我们提供了解除绑定修复和dl3it用户https://bugzilla.kernel.org/show_bug.cgi?id=207759#c17
我找到了解决方案,在Ideapad 5-15ARE05上对dl3it 大喊大叫:触摸屏不工作 | 联想论坛。(注意:它说的是触摸屏,但我猜这只是触摸板的名称。它工作正常。)
问题是内核对驱动程序做了一些错误的处理。要解决此问题,您必须安装主线内核并自行配置。
首先,通过在命令行上执行以下命令来安装依赖项:
sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf
Run Code Online (Sandbox Code Playgroud)
然后,从源代码(通过 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.xorlinux-5.7.x目录。
执行sudo make menuconfig并导航到设备驱动程序?输入设备支持 ? 触摸屏?Elan eKTH I2C 触摸屏。
在那里,m通过按 Enter 键然后输入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 配置:
sudo update-grub
Run Code Online (Sandbox Code Playgroud)
然后重新启动,您的触摸板应该可以正常工作!
注意:我使用过但之前没有提到的网站:
| 归档时间: |
|
| 查看次数: |
19719 次 |
| 最近记录: |