![ELAN 触摸板无法在装有 Ubuntu 16.04 的 Lenovo IdeaPad 上使用](https://linux22.com/image/920165/ELAN%20%E8%A7%A6%E6%91%B8%E6%9D%BF%E6%97%A0%E6%B3%95%E5%9C%A8%E8%A3%85%E6%9C%89%20Ubuntu%2016.04%20%E7%9A%84%20Lenovo%20IdeaPad%20%E4%B8%8A%E4%BD%BF%E7%94%A8.png)
最近我买了一台联想 IdeaPad(英特尔 i7 第 10 代)。我在上面安装了 Ubuntu 16.04,但是触摸板对我来说根本不起作用!另外,最初我尝试安装 Ubuntu 18.04 并升级到最新内核,但不仅触摸板无法工作,而且图形也无法正常工作,因此我最终决定恢复使用 16.04。
我没有检查 Windows 上的触摸板,因为我买了一台 DOS 机器,并在其上安装了 Ubuntu。
触摸板并不是我的笔记本电脑上唯一在 Ubuntu 中无法工作的硬件,但现在我们只关注它。
通过阅读一些资料,我发现许多新笔记本电脑的触摸板都存在问题,主要是 ElanTech 隐藏式触摸板。在我看来,我的问题与这篇文章类似:ELAN 触摸板无法在搭载 Ubuntu 18.04 的联想 Thinkbook 上使用。
另外,根据这篇文章中的信息:联想 IdeaPad 330 触摸板不工作,问题似乎在于我的 ELAN 触摸板的 id 没有在内核中列出,所以 Ubuntu 根本无法识别它!
关于我的系统:
uname -srv
给出:
Linux 4.15.0-74-generic #83~16.04.1-Ubuntu
xinput -list
给出:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=9 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=8 [slave keyboard (3)]
↳ Ideapad extra buttons id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
请注意,Ubuntu 不能识别任何触摸板!
通过运行,sudo acpidump | grep -C3 -i elan
我能够找到我的 ELAN id,即 0633,如下所示:
27AA0: 59 53 0B DC 07 53 52 58 4F 0C 10 00 01 06 01 70 YS...SRXO......p
27AB0: 47 4E 55 4D 0C 10 00 01 06 49 4E 54 31 70 49 4E GNUM.....INT1pIN
27AC0: 55 4D 0C 10 00 01 06 49 4E 54 32 A0 25 93 54 50 UM.....INT2.%.TP
27AD0: 54 59 01 70 0D 45 4C 41 4E 30 36 33 33 00 5F 48 TY.p.ELAN0633._H
27AE0: 49 44 70 0A 15 42 41 44 52 70 01 48 49 44 32 A4 IDp..BADRp.HID2.
27AF0: 00 A0 27 93 54 50 54 59 0A 02 70 0D 53 59 4E 41 ..'.TPTY..p.SYNA
27B00: 32 42 36 31 00 5F 48 49 44 70 0A 2C 42 41 44 52 2B61._HIDp.,BADR
显然,可以通过重新编译包含文件中的此 id 代码的内核来解决此问题elan_i2c_core.c
,但我不想弄乱内核!
还有其他方法可以解决这个问题吗?
如果没有,请帮我提交错误报告。
答案1
因此,最终我设法让触摸板在 Ubuntu 18.04 内核版本上运行:5.3.0-46-generic
感谢此链接上的评论:
https://www.reddit.com/r/linuxquestions/comments/f9h0q4/touchpad_issue_lenovo_s14515iil/
基本上需要做的是:
打开文件
/etc/default/grub
进行编辑,例如运行sudoedit /etc/default/grub
在行首添加
GRUB_CMDLINE_LINUX_DEFAULT
: ,"i8042.nopnp=1 pci=nocrs"
内容如下:GRUB_CMDLINE_LINUX_DEFAULT="i8042.nopnp=1 pci=nocrs"
如果双引号之间还有其他参数,那么保留它们也许没问题。
保存文件并退出
运行此命令来更新 GRUB 配置:
sudo update-grub
重启
答案2
这对我适用于 Ideapad3 17IIL05:
sudo vi /etc/default/grub
更新以下几行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nocrs"
GRUB_CMDLINE_LINUX="initcall_blacklist=elants_i2c_driver_init"
保存文件并运行:
sudo update-grub
答案3
我在联想 81WE IdeaPad 3 15IIL05 上安装了内核 5.19,问题就解决了