Я только что купил ноутбук IdeaPad 330 Lenovo. Когда я установил Ubuntu, тачпад не работал. Мне удалось успешно установить Ubuntu с помощью клавиатуры, используя кнопки табуляции, пробела и ввода. Я думал, что тачпад будет работать после установки, но не повезло.
Кто-нибудь знает, как это исправить? Он отлично работает в Windows 10.
По состоянию на начало августа 2018 года я смог заставить свой курсор работать (ELAN 061C) - без патчей или компиляции ядра из исходников - просто обновив его до 4.18-rc7 mainline build.
Инструкции можно найти здесь на TecMint.
Вся надежда не потеряна! Я успешно перекомпилировал последнее ядро ubuntu 4.18.0 и добавил ACPI id для тачпада elan061C на Lenovo 330-15igm, которым я владею, и теперь у меня есть рабочий тачпад.
Тачпад Lenovo 330 серии не определяется при загрузке из-за отсутствия ACPI id в драйвере ядра. Windows идентифицирует его как устройство Elan HID over i2c, проблема с обнаружением на 330-м ноутбуке аналогична проблеме ноутбука lenovo 320, упомянутой здесь: https://askubuntu.com/questions/946015/lenovo-ideapad-320-touchpad-doesnt-work.
и решение заключается в исправлении ядра, аналогично тому, что было сделано здесь: 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
FYI: В отличие от других тачпадов elan в ubuntu, я обнаружил, что изменение параметров загрузки с помощью опций i8042 не имеет значения для этого тачпада. Don't waste your time.
Многие идентификаторы ACPI-устройств тачпада elan все еще отсутствуют в исходном коде драйвера ядра elan_i2c_core.c, поэтому нет никакой надежды на данный момент получить работающий тачпад без написания модуля dkms (который у меня не сработал) или компиляции собственного ядра.
Пожалуйста, посмотрите на вывод dmesg | grep i2c
и dmesg | grep elan
чтобы узнать, есть ли вообще обнаруженное устройство. Я обнаружил, что стоковое и HWE ядра для ubuntu 16.04 не обнаруживают устройство elan или любое указывающее устройство вообще, что указывает на то, что в ядрах 16.04 что-то 'отсутствует' в обнаружении устройства i2c.
Установка 18.04 смогла увидеть устройство 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 слишком новая, чтобы иметь поддержку ядра.
Если вы хотите, чтобы ваше устройство работало:
Найдите идентификатор ACPI, установив acpidump: 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.
Этот идентификатор устройства ACPI по-прежнему отсутствует в исходном коде драйвера ядра elan_i2c_core.c, поэтому на данный момент нет никакой надежды получить работающий тачпад без написания модуля dkms (который у меня не работал) или компиляции собственного ядра.
Используйте самые последние исходники ядра отсюда: http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.17.4/
Наложите на ядро последние патчи и скомпилируйте его с помощью этого довольно простого руководства: https://askubuntu.com/questions/724900/how-to-apply-kernel-patches
В дополнение к установке зависимостей здесь:
https://help.ubuntu.com/community/Kernel/Compile
Мне также понадобились пакеты build-essential kernel-package fakeroot libncurses5-dev debhelper libssl-dev libudev-dev xz-utils
и bison
.
на этапе настройки я отредактировал 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 }, <- и это для lenovo 330 с core i3 { "ELAN1000", 0 }, { } }; MODULE_DEVICE_TABLE(acpi, elan_acpi_id);
endif
После установки нового ядра 4.18.0-rc3-custom (патчи обновили исходники 4.17.4) я рад сообщить, что тачпад отлично работает с левым и правым кликами и жестами в Ubuntu 18.04.
YMMV.
Особая благодарность Дмитрию Торокову и Дональду Шанти
Lenovo-ideapad-330-15IKB
Kernel: 4.15.0.30.32
Сенсорная панель полностью инертна.
Вручную скачал и попытался установить 4.18.0-041800rc7
, но он каждый раз выдавал ошибку.
Установил UKUU и поискал 4.18, но не смог ее получить.
Пошел дальше и сказал:
sudo ukuu --install-latest
и он попытался установить 4.17, но ошибся на третьем основном шаге, первые два прошли нормально.
Перезагрузился и все еще работал 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.
Он находится там ДВА раза. Один раз как ELAN061D и второй раз как ELAN2097.
Таким образом, этот метод обновления ядра до 4.17 с помощью UKUU позволил решить проблему с неработающим тачпадом.