IdeaPad 5 15are05 - сенсорная панель elan не работает ни на 20.04, ни на 18.04

Вчера я купил 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)]

Сенсорная панель должна быть указана под указателем виртуального ядра, но это не так.

Мне бы очень хотелось узнать, как это исправить, поскольку мне нужна тачпад, и я не хочу покупать новый ноутбук, поэтому, пожалуйста, помогите мне!

3
задан 8 June 2020 в 15:00

3 ответа

в настоящее время не поддерживается перемещение хранилища, но вы должны быть в состоянии избежать неприятностей с привязными креплениями , символические ссылки или ссылки на каталоги, в зависимости от вашей платформы.

Это в нашей дорожной карте, однако: https://github.com/canonical/multipass/issues/1215

-------- -121 -------- 863838 ----

Я нашел решение, большой привет dl3it на Ideapad 5-15ARE05: Сенсорный экран не работает | Форумы Lenovo . (Примечание: там написано «сенсорный экран», но я думаю, это просто название сенсорной панели. Оно работает нормально.)

Проблема в том, что ядро ​​что-то не так с драйверами. Чтобы это исправить, вам нужно установить основное ядро ​​и настроить его самостоятельно.

Прежде всего, установите зависимости, выполнив это в командной строке:

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 .

Там, измените звездочку на м , нажав ввод, а затем введите м .

После этого используйте стрелки влево и вправо, чтобы изменить выбранную опцию внизу на «сохранить», и нажмите . Введите . Затем, Вы захотите сохранить его как .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

И затем перезагрузите компьютер, и ваш тачпад должен нормально работать!

ПРИМЕЧАНИЕ: сайты, которые я использовал и не делал не упомянуть раньше:

5
ответ дан 19 June 2020 в 21:29

С используемого ПК на другой запустите:

scp <path_to_the_file> username_of_the_other_PC@IP_address_of_the_other_PC:<path_where_you_want_to_copy_the_file>

EXP:

scp ~/folder_1/filename.mp4 second_pc@192.168.1.50:~/hdd_2/folder_2/
--- ------121--------863447----

Более простое решение: добавить «черный список elants_i2c» в /etc/modprobe.d/unneeded-modules.conf (вы будете надо создать это), сохранить и перезагрузить. Работаю на идентичном тачпаде и манжаро. Поставщик = 04f3 Продукт = 3140 Версия = 0100

0
ответ дан 19 June 2020 в 21:29

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

0
ответ дан 19 June 2020 в 21:29

Другие вопросы по тегам:

Похожие вопросы: