AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1248176
Accepted
Kelvin Bouma
Kelvin Bouma
Asked: 2020-06-09 04:00:48 +0800 CST2020-06-09 04:00:48 +0800 CST 2020-06-09 04:00:48 +0800 CST

IdeaPad 5 15are05 - elan 触摸板在 20.04 和 18.04 上都不起作用

  • 772

我昨天买了一台联想 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 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)]

触摸板应该列在虚拟核心指针下,但不是。

我真的很想知道如何解决这个问题,因为我需要触摸板才能工作而且我不想购买新的笔记本电脑,所以请帮助我!

lenovo touchpad elantech ideapad 20.04
  • 5 5 个回答
  • 30222 Views

5 个回答

  • Voted
  1. theunreal89
    2020-06-17T09:45:45+08:002020-06-17T09:45:45+08:00

    似乎不可能将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 <[email protected]>
    

    所以有比编译内核更快的方法。只需创建一个 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
    

    /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
    

    然后使用以下命令使其可执行,启用并启动该单元:

    chmod +x /usr/local/bin/touchpadfix
    sudo systemctl daemon-reload
    sudo systemctl enable --now touchpadfix.service
    

    触摸板应该立即开始工作!

    资料来源:https ://wiki.archlinux.org/index.php/Lenovo_IdeaPad_5_15are0 在这篇文章中为我们提供了 unbind-bind 修复和dl3it用户https://bugzilla.kernel.org/show_bug.cgi?id=207759#c17

    • 8
  2. Best Answer
    Kelvin Bouma
    2020-06-10T01:04:35+08:002020-06-10T01:04:35+08:00

    我找到了解决方案,在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
    

    然后,从源代码(通过 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.xor目录。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 配置:

    sudo update-grub
    

    然后重新启动,你的触摸板应该可以正常工作了!

    注意:我使用过但之前未提及的网站:

    • BuildYourOwnKernel | Ubuntu 维基
    • 如何从源代码构建和安装最新的 Linux 内核 | 免费代码营
    • 6
  3. GoOnGetErDone
    2020-07-12T22:09:09+08:002020-07-12T22:09:09+08:00

    几乎 100% 正确,这是解决方法。

    打开终端

    sudo 鼠标垫 /etc/default/grub

    编辑如下:GRUB_CMDLINE_LINUX="initcall_blacklist=elants_i2c_driver_init"

    保存、退出鼠标垫或您选择的文本编辑器。

    须藤更新-grub

    在“安静的飞溅”之前或之后添加并不重要。

    请记住,这是一种让触摸板工作的“解决方法”,触摸板指示器图标将无法正常工作。

    • 4
  4. Walf
    2020-07-09T19:16:10+08:002020-07-09T19:16:10+08:00

    我能够使用此启动板错误评论中的建议解决此问题(通过此联想论坛回复):

    Jasper van der Neut - Stulen (neutstulen) 写于 2020-06-18: #31

    作为一种解决方法,您可以添加"initcall_blacklist=elants_i2c_driver_init"、GRUB_CMDLINE_LINUX运行update-grub、关闭笔记本电脑并重新启动它。

    这也适用于从安装媒体引导时,通过添加initcall_blacklist=elants_i2c_driver_init引导参数。在 grub 的加载屏幕中,我quiet splash在编辑Start Ubuntu选项后添加了它。

    • 3
  5. Rudi Pittman
    2020-06-13T08:33:26+08:002020-06-13T08:33:26+08:00

    一个更简单的解决方案是:将“blacklist elants_i2c”添加到 /etc/modprobe.d/unneeded-modules.conf(您必须创建它),保存并重新启动。使用相同的触摸板和 Manjaro。供应商=04f3 产品=3140 版本=0100

    • 2

相关问题

  • 为什么我的以太网端口有时不工作?

  • Live USB 无法在 Lenovo Ideapad s10-3 中启动

  • Lenovo ThinkPads,亮度功能键由两步而不是一步,寻找解决方法[关闭]

  • 如何解决联想笔记本电脑上恢复/电源问题时禁用的蓝牙?

  • 自 10.04 起,笔记本电脑的扩展显示器显示摇晃/波动的图像 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve