联想IdeaPad 330触控板无法正常工作

我刚买了一台IdeaPad 330联想笔记本电脑。 当我安装Ubuntu时,触摸板无法正常工作。 我设法使用键盘,使用选项卡,空格和输入按钮成功安装Ubuntu。 我以为触摸板在安装后会起作用,但不是运气。

有人知道如何解决这个问题吗? 它在Windows 10上完美运行。

所有希望都不会丢失! 我已成功重新编译了最新的ubuntu 4.18.0内核,并在我拥有的Lenovo 330-15igm上添加了elan061C触摸板的ACPI ID,现在有一个可用的触摸板。

由于内核驱动程序中没有ACPI ID,因此在启动时未检测到Lenovo 330系列的触摸板。 Windows将其识别为i2c设备上的Elan HID,330上的检测问题与此处提到的lenovo 320笔记本电脑类似: 联想Ideapad 320 – 触控板不起作用

解决方案是修补内核,类似于这里所做的: https : //bugs.launchpad.net/ubuntu/+source/linux/+bug/1700657

或者在此报告: https : //unix.stackexchange.com/questions/427566/touchpad-on-lenovo-v330-thinkpad-v-series-is-not-recognized/434655#434655

仅供参考: 与ubuntu中的其他elan触控板不同 ,我发现使用i8042选项修改启动参数并没有对这款触控板产生影响。 不要浪费你的时间。

elan_i2c_core.c的内核驱动程序源中仍然没有许多elan touchpad ACPI设备ID,所以目前没有希望没有编写dkms模块(这对我不起作用)或编译自定义内核的情况下获得工作触摸板。

请查看dmesg | grep i2c的输出 dmesg | grep i2cdmesg | grep elan dmesg | grep elan ,看看是否有检测到的设备。 我发现ubuntu 16.04的stock和HWE内核根本没有检测到elan设备或任何指针设备,这表明16.04内核中的i2c设备检测中有“缺失”。

安装18.04 WAS能够看到elan设备:

 user-Lenovo-ideapad-330-15IGM kernel: [ 7.396065] i2c_hid i2c-ELAN061C:00: i2c-ELAN061C:00 supply vdd not found, using dummy regulator 

但触摸板无法正常工作或注册任何输入。

还有很多其他人都有这种麻烦,因为elan触摸板太新了,无法获得主线内核支持。

如果您想让您的设备正常工作:

通过安装acpidump找到你的ACPI id: sudo apt install acpidump并运行:

sudo acpidump | grep -C3 ELAN

-C3告诉grep在这里描述之前和之后包括3行: https : //stackoverflow.com/questions/9081/grep-a-file-but-show-several-surrounding-lines )

我的结果是:

  0E70: 5F 53 42 2E 47 50 4F 31 00 79 00 08 53 42 46 49 _SB.GPO1.y..SBFI 0E80: 11 0E 0A 0B 89 06 00 15 01 3C 00 00 00 79 00 14 .........<...y.. 0E90: 46 07 5F 49 4E 49 00 A0 23 93 54 50 54 59 01 70 F._INI..#.TPTY.p 0EA0: 0D 45 4C 41 4E 30 36 31 43 00 5F 48 49 44 70 0A .ELAN061C._HIDp. 0EB0: 15 42 41 44 52 70 01 48 49 44 32 A0 25 93 54 50 .BADRp.HID2.%.TP 0EC0: 54 59 0A 02 70 0D 53 59 4E 41 32 42 34 38 00 5F TY..p.SYNA2B48._ 0ED0: 48 49 44 70 0A 2C 42 41 44 52 70 0A 20 48 49 44 HIDp.,BADRp. HID 

注意中线上的ELAN061C!

检查输出dmesg | grep i2c和dmesg | grep elan,看看是否有检测到的设备。

安装一个可以检测设备的内核,对我来说这是4.17.4-041704-generic。

elan_i2c_core.c的内核驱动程序源中仍然没有此ACPI设备ID,所以目前没有希望没有编写dkms模块(这对我不起作用)或编译自定义内核的情况下获得可用的触摸板。

使用最新的内核源代码: http : //kernel.ubuntu.com/~kernel-ppa/mainline/v4.17.4/

使用最新的补丁修补内核并使用此指南进行编译,请遵循以下指南: 如何应用内核补丁

除了在这里安装依赖项: https : build-essential kernel-package fakeroot libncurses5-dev debhelper libssl-dev libudev-dev xz-utils我还需要build-essential kernel-package fakeroot libncurses5-dev debhelper libssl-dev libudev-dev xz-utilsbison

在自定义步骤,我编辑了v4.17.4/drivers/input/mouse/elan_i2c_core.c

添加以下行添加到文件末尾附近的elan_i2c_core.c(箭头是注释,不要将它们添加到文件中!)

  #ifdef CONFIG_ACPI static const struct acpi_device_id elan_acpi_id[] = { { "ELAN0000", 0 }, { "ELAN0100", 0 }, { "ELAN0600", 0 }, { "ELAN0602", 0 }, { "ELAN0605", 0 }, { "ELAN0608", 0 }, { "ELAN0609", 0 }, { "ELAN060B", 0 }, { "ELAN060C", 0 }, { "ELAN0611", 0 }, { "ELAN0612", 0 }, { "ELAN0618", 0 }, { "ELAN061C", 0 }, <-add this { "ELAN061D", 0 }, <- and this for the lenovo 330 with the core i3 { "ELAN1000", 0 }, { } }; MODULE_DEVICE_TABLE(acpi, elan_acpi_id); #endif 

安装新生成的4.18.0-rc3-custom内核后(补丁更新了4.17.4源代码)我很高兴地报告触摸板在Ubuntu 18.04中的左键,右键单击和手势效果很好。

因人而异。

特别感谢Dimitry Torokov和Donald Shanty

截至2018年8月初,我能够让我的光标工作(ELAN 061C) – 无需修补或编译源代码 – 只需升级到4.18-rc7主线版本 。

有关说明,请访问TecMint 。

我刚买了一台联想IdeaPad 330系列,在安装kubuntu时,我注意到的第一件事就是Touchpad无法正常工作。 这篇文章很好地解释了为什么会发生这样的事情,以及如何进行相应的故障排除,并且它确实帮助解决了这个问题。 我所要做的就是升级内核https://itsfoss.com/upgrade-linux-kernel-ubuntu/和触摸板等完美无缺地工作。 (您可能不希望升级到最新版本,而是寻找最适合您设备的版本,并解决问题。)

 Lenovo-ideapad-330-15IKB Kernel: 4.15.0.30.32 

触控板完全惰性。

手动下载并尝试安装4.18.0-041800rc7但每次都出错。

安装UKUU并寻找4.18但无法得到它。

走在前面告诉它:

 sudo ukuu --install-latest 

它试图安装4.17,但它在第三个主要步骤出错,前两个返回ok。

重新启动并仍在运行4.15。

继续运行:

 sudo ukuu --install-latest 

再次,这次它成功完成,没有错误,并建议重新启动将需要开始使用新内核。

重新启动。

运行4.17.14-041714-generic

我的手指划过触摸板,只是为了它的地狱,它现在正在工作。 多次重启和触摸板很好,水龙头,卷轴,整个工程。

 sudo acpidump | grep -C3 ELAN 

收益:

  E040: 49 32 43 30 5B 82 4A 22 54 50 44 30 08 48 49 44 I2C0[.J"TPD0.HID E050: 32 00 08 53 50 45 44 00 08 42 41 44 52 00 14 42 2..SPED..BADR..B E060: 08 5F 49 4E 49 00 A0 23 93 54 50 54 59 01 70 0D ._INI..#.TPTY.p. E070: 45 4C 41 4E 30 36 31 44 00 5F 48 49 44 70 0A 15 ELAN061D._HIDp.. E080: 42 41 44 52 70 01 48 49 44 32 A0 25 93 54 50 54 BADRp.HID2.%.TPT E090: 59 0A 02 70 0D 53 59 4E 41 32 42 34 39 00 5F 48 Y..p.SYNA2B49._H E0A0: 49 44 70 0A 2C 42 41 44 52 70 0A 20 48 49 44 32 IDp.,BADRp. HID2 -- E3B0: 54 4D 4C 32 39 35 32 00 5F 48 49 44 70 00 48 49 TML2952._HIDp.HI E3C0: 44 32 70 0A 4A 42 41 44 52 70 0C 80 1A 06 00 53 D2p.JBADRp.....S E3D0: 50 45 44 A4 00 A0 30 93 53 44 53 31 0A 03 70 0D PED...0.SDS1..p. E3E0: 45 4C 41 4E 32 30 39 37 00 5F 48 49 44 70 01 48 ELAN2097._HIDp.H E3F0: 49 44 32 70 0A 10 42 41 44 52 70 0C 80 1A 06 00 ID2p..BADRp..... E400: 53 50 45 44 A4 00 A0 30 93 53 44 53 31 0A 04 70 SPED...0.SDS1..p E410: 0D 4E 54 52 47 30 30 30 31 00 5F 48 49 44 70 01 .NTRG0001._HIDp. 

它在那里TWICE。 一次作为ELAN061D,第二次作为ELAN2097。

所以这种使用UKUU将内核升级到4.17的方法,设法解决了死触摸板的问题。

从源4.18.4编译内核,除了右键单击右触摸板按钮,一切正常,但如果我在触摸板上单击双指,右键单击工作。 可悲的是