Вчера я купил Lenovo 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: неизвестный пакет 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)]
Сенсорная панель должна быть указана под указателем виртуального ядра, но это не так.
Мне бы очень хотелось узнать, как это исправить, поскольку мне нужна тачпад, и я не хочу покупать новый ноутбук, поэтому, пожалуйста, помогите мне!
Я нашел решение, большое спасибо dl3it на Ideapad 5-15ARE05: Сенсорный экран не работает | Форумы Lenovo . (Примечание: там написано touchscreen, но я думаю, это просто название сенсорной панели. Работает нормально.)
Проблема в том, что ядро что-то не так с драйверами. Чтобы исправить это, вам придется установить основное ядро и настроить его самостоятельно.
Во-первых, установите зависимости, выполнив это в командной строке:
sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf
Затем загрузите ядро 5.6.x или 5.7.x (x может быть любым целым числом, я использовал 5.7.1, и он был протестирован на 5.6. 14 и 5.7.0-rc7) из исходных кодов (через kernel.org). Находясь на kernel.org , щелкните [tarball]
для нужного ядра.
Распакуйте все так же, как и любой другой файл .tar.gz
.
Затем перейдите в каталог linux-5.6.x
или linux-5.7.x
в командной строке.
Выполните sudo make menuconfig
и перейдите к Драйверы устройств → Поддержка устройств ввода → Сенсорные экраны → Сенсорный экран Elan eKTH I2C .
Там измените звездочку на m
, нажав клавишу ВВОД, а затем набрав m
.
После этого используйте стрелки влево и вправо, чтобы изменить выбранную опцию внизу на «сохранить», и нажмите Enter . Затем вы захотите сохранить его как .config
(который должен быть установлен по умолчанию).
Теперь, находясь в том же каталоге, выполните следующую команду:
sudo make -jx && sudo make modules_install -jx && sudo make install -jx
(Измените x
на количество потоки вашего процессора.Если вы не укажете этот параметр, это займет много времени.)
Это займет некоторое время, но после его завершения вам нужно будет убедиться, что ваш компьютер загрузится с новым ядром. Для этого выполните:
sudo update-initramfs -c -k
(Измените
на версию ядра, которую вы только что установили, например 5.7.1
.)
Затем исправьте конфигурацию grub, выполнив:
sudo update-grub
А затем перезагрузитесь, и ваш тачпад должен работать нормально!
ПРИМЕЧАНИЕ: веб-сайты, которые я использовал и не упоминал раньше:
Более простое решение: добавить «blacklist elants_i2c» в / etc / modprobe. d / undeeded-modules.conf (вам нужно будет его создать), сохраните и перезагрузитесь. Работает идентично тачпаду и Manjaro. Vendor = 04f3 Product = 3140 Version = 0100
It seems not to be possible to blacklist elants_i2c
driver, as it is a built-in kernel module for 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>
so there is a faster way than compiling the kernel. Just create a SystemD unit like the below:
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
and create /usr/local/bin/touchpadfix
file as follows
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
and then make it executable, enable and start the unit with the following commands:
chmod +x /usr/local/bin/touchpadfix
sudo systemctl daemon-reload
sudo systemctl enable --now touchpadfix.service
and touchpad should start to work immediately!
SOURCE: https://wiki.archlinux.org/index.php/Lenovo_IdeaPad_5_15are0 which is giving us unbind-bind fix and another guy in a forum which suggested SystemD unit, which I cannot retrieve right now
Мне удалось решить эту проблему, воспользовавшись советом из этого комментария об ошибке панели запуска (из этого ответа на форуме Lenovo):
Джаспер ван дер Нойт - Стулен (neutstulen) написал 18.06.2020: #31
В качестве обходного пути вы можете добавить
"initcall_blacklist=elants_i2c_driver_init"
вGRUB_CMDLINE_LINUX
, запуститьupdate-grub
, выключите ноутбук и включите его снова.
Это также работает при загрузке с установочного носителя путем добавления initcall_blacklist=elants_i2c_driver_init
к параметрам загрузки. На экране загрузки grub я добавил его после тихой заставки
при редактировании параметра Запустить Ubuntu.
Почти 100% правильно, вот обходной путь.
Откройте терминал
sudo mousepad /etc/default/grub
Редактируйте следующим образом: GRUB_CMDLINE_LINUX="initcall_blacklist=elants_i2c_driver_init"
Сохранить, выйти из коврика для мыши или текстового редактора по вашему выбору.
sudo update-grub
Добавить до или после «тихого всплеска» НЕ ЗНАЧИТ.
Имейте в виду, что это «обходной путь», который заставит сенсорную панель работать, значок индикатора сенсорной панели НЕ будет работать должным образом.