Elan touchpad driver linux

Настройка тачпада ELAN в *buntu

Проблема

Многие «счастливые» обладатели ноутбуков Acer, Asus, Packard Bell и других «антилинуксоидных» производителей наверное зпметили, что их мультисенсорный тачпад ELAN определяется операционной системой Linux как PS/2 мышь. И естественно никаких мультисенсорных жестов от нее не добиться.

То, как ее пытаются решить Линуксоиды

Начинающие линуксоиды сразу бегут на сайт производителя своего ноутдруга за драйвером, но обнаруживают, что большинство драйверов написано под софтверного гиганта Windows, а для Linux есть драйвер на несколько устройств, но не на тачпад ELAN, что обидно. После этого наш линуксоид бежит на сайт производителя тачпада — и, поковырявшись в меню, видит следующую картину:

Неправда ли это обидно? Последнее, что может сделать обделенный линуксоид — обратиться за помощью к гуглу или на разные форумы. Я, как обладатель именно такого «проблемного» ноутдруга, лазал по гуглу и форумам около недели, но везде мне советовали поставить драйвер Synaptics, но ни одна статья и ни один совет не помогли. Вот 2 из множества перелопаченных мною статей, которые мне не помогли: , . Как видите, пока все очень печально

То, как надо решать данную проблему

Я как то раз наткнулся на тему на официальном форуме ubuntu, в которой линуксоид с Arch Linux столкнулся с этой же проблемой и решил ее. Вот ссылка на этот топик: url.

Для тех, кто плохо знает английский, я вкратце донесу до Вас смысл данной статьи. Участник форума transmition имеет на своем компьютере тачпад Elantech (ELAN), и он не работает, а только видится как PS/2 мышь. transmition где-то вычитал, что эта проблема пофикшена в ядре линукса версии 2.6.34. transmition обновился до этой версии кернела, но проблема осталось. Тогда transmition ввел в консоль 2 команды, предварительно отредактировав файлы xinputOutput и xorg.conf, лежащие в директории «/etc/X11». Сами конфиги файлов transmition приложил. В этих конфигах прописано устройство ввода Elan таким образом, чтобы оно работало как тачпад, а не как PS/2 мышь. Для начинающих пользователей линукс: не надо заменять свои файлы файлами пользователя transmition, т.к. это может привести к тому, что у вас при перезапуске системы перестанет работать X сервер. В ваших файлах надо будет лишь изменить/добавить пару строчек, у каждого по-разному, по этому не буду давать общую инструкцию, чтобы потом не полчать гневные комментарии. Просто наведу вас на статью, где объяснено, как надо конфигурировать один из этих файлов, а точнее объясняется, что и для чего в этом файле прописано. Вот ссылка: . После того как вы сконфигурировали файлы, наберите в консоли две комманды, желательно от рута:

echo «options psmouse force_elantech=1» | sudo tee -a /etc/modprobe.d/psmouse.conf
sudo rmmod psmouse && sudo modprobe psmouse

После этого тачпад должен заработать, т.к. после выполнения вышеописанных действий он заработал и у меня, и у парочки моих знакомых с ноутбуками, на которых стоит тачпад Elan. Удачи вам при изучении Linux.

Источник

9. Elantech Touchpad DriverВ¶

Extra information for hardware version 1 found and provided by Steve Havelka

Version 2 (EeePC) hardware support based on patches received from Woody at Xandros and forwarded to me by user StewieGriffin at the eeeuser.com forum

9.1. IntroductionВ¶

Currently the Linux Elantech touchpad driver is aware of four different hardware versions unimaginatively called version 1,version 2, version 3 and version 4. Version 1 is found in “older” laptops and uses 4 bytes per packet. Version 2 seems to be introduced with the EeePC and uses 6 bytes per packet, and provides additional features such as position of two fingers, and width of the touch. Hardware version 3 uses 6 bytes per packet (and for 2 fingers the concatenation of two 6 bytes packets) and allows tracking of up to 3 fingers. Hardware version 4 uses 6 bytes per packet, and can combine a status packet with multiple head or motion packets. Hardware version 4 allows tracking up to 5 fingers.

Some Hardware version 3 and version 4 also have a trackpoint which uses a separate packet format. It is also 6 bytes per packet.

The driver tries to support both hardware versions and should be compatible with the Xorg Synaptics touchpad driver and its graphical configuration utilities.

Note that a mouse button is also associated with either the touchpad or the trackpoint when a trackpoint is available. Disabling the Touchpad in xorg (TouchPadOff=0) will also disable the buttons associated with the touchpad.

Читайте также:  The windows are open in spanish

Additionally the operation of the touchpad can be altered by adjusting the contents of some of its internal registers. These registers are represented by the driver as sysfs entries under /sys/bus/serio/drivers/psmouse/serio? that can be read from and written to.

Currently only the registers for hardware version 1 are somewhat understood. Hardware version 2 seems to use some of the same registers but it is not known whether the bits in the registers represent the same thing or might have changed their meaning.

On top of that, some register settings have effect only when the touchpad is in relative mode and not in absolute mode. As the Linux Elantech touchpad driver always puts the hardware into absolute mode not all information mentioned below can be used immediately. But because there is no freely available Elantech documentation the information is provided here anyway for completeness sake.

9.2. Extra knobsВ¶

Currently the Linux Elantech touchpad driver provides three extra knobs under /sys/bus/serio/drivers/psmouse/serio? for the user.

Turn different levels of debugging ON or OFF.

By echoing “0” to this file all debugging will be turned OFF.

Currently a value of “1” will turn on some basic debugging and a value of “2” will turn on packet debugging. For hardware version 1 the default is OFF. For version 2 the default is “1”.

Turning packet debugging on will make the driver dump every packet received to the syslog before processing it. Be warned that this can generate quite a lot of data!

Turns parity checking ON or OFF.

By echoing “0” to this file parity checking will be turned OFF. Any non-zero value will turn it ON. For hardware version 1 the default is ON. For version 2 the default it is OFF.

Hardware version 1 provides basic data integrity verification by calculating a parity bit for the last 3 bytes of each packet. The driver can check these bits and reject any packet that appears corrupted. Using this knob you can bypass that check.

Hardware version 2 does not provide the same parity bits. Only some basic data consistency checking can be done. For now checking is disabled by default. Currently even turning it on will do nothing.

Sets crc_enabled to 0/1. The name “crc_enabled” is the official name of this integrity check, even though it is not an actual cyclic redundancy check.

Depending on the state of crc_enabled, certain basic data integrity verification is done by the driver on hardware version 3 and 4. The driver will reject any packet that appears corrupted. Using this knob, The state of crc_enabled can be altered with this knob.

Reading the crc_enabled value will show the active value. Echoing “0” or “1” to this file will set the state to “0” or “1”.

9.3. Differentiating hardware versionsВ¶

To detect the hardware version, read the version number as param[0].param[1].param[2]:

In the wild, there appear to be more versions, such as 00.01.64, 01.00.21, 02.00.00, 02.00.04, 02.00.06:

In the wild, there appear to be more versions, such as 04.03.01, 04.04.11. There appears to be almost no difference, except for EF113, which does not report pressure/width and has different data consistency checks.

Probably all the versions with param[0] = 02.08.00 can be considered as 6 bytes.

9.4. Hardware version 1В¶

9.4.1. RegistersВ¶

By echoing a hexadecimal value to a register it contents can be altered.

Источник

9. Elantech Touchpad DriverВ¶

Extra information for hardware version 1 found and provided by Steve Havelka

Version 2 (EeePC) hardware support based on patches received from Woody at Xandros and forwarded to me by user StewieGriffin at the eeeuser.com forum

9.1. IntroductionВ¶

Currently the Linux Elantech touchpad driver is aware of four different hardware versions unimaginatively called version 1,version 2, version 3 and version 4. Version 1 is found in “older” laptops and uses 4 bytes per packet. Version 2 seems to be introduced with the EeePC and uses 6 bytes per packet, and provides additional features such as position of two fingers, and width of the touch. Hardware version 3 uses 6 bytes per packet (and for 2 fingers the concatenation of two 6 bytes packets) and allows tracking of up to 3 fingers. Hardware version 4 uses 6 bytes per packet, and can combine a status packet with multiple head or motion packets. Hardware version 4 allows tracking up to 5 fingers.

Читайте также:  Oracle linux disable ipv6

Some Hardware version 3 and version 4 also have a trackpoint which uses a separate packet format. It is also 6 bytes per packet.

The driver tries to support both hardware versions and should be compatible with the Xorg Synaptics touchpad driver and its graphical configuration utilities.

Note that a mouse button is also associated with either the touchpad or the trackpoint when a trackpoint is available. Disabling the Touchpad in xorg (TouchPadOff=0) will also disable the buttons associated with the touchpad.

Additionally the operation of the touchpad can be altered by adjusting the contents of some of its internal registers. These registers are represented by the driver as sysfs entries under /sys/bus/serio/drivers/psmouse/serio? that can be read from and written to.

Currently only the registers for hardware version 1 are somewhat understood. Hardware version 2 seems to use some of the same registers but it is not known whether the bits in the registers represent the same thing or might have changed their meaning.

On top of that, some register settings have effect only when the touchpad is in relative mode and not in absolute mode. As the Linux Elantech touchpad driver always puts the hardware into absolute mode not all information mentioned below can be used immediately. But because there is no freely available Elantech documentation the information is provided here anyway for completeness sake.

9.2. Extra knobsВ¶

Currently the Linux Elantech touchpad driver provides three extra knobs under /sys/bus/serio/drivers/psmouse/serio? for the user.

Turn different levels of debugging ON or OFF.

By echoing “0” to this file all debugging will be turned OFF.

Currently a value of “1” will turn on some basic debugging and a value of “2” will turn on packet debugging. For hardware version 1 the default is OFF. For version 2 the default is “1”.

Turning packet debugging on will make the driver dump every packet received to the syslog before processing it. Be warned that this can generate quite a lot of data!

Turns parity checking ON or OFF.

By echoing “0” to this file parity checking will be turned OFF. Any non-zero value will turn it ON. For hardware version 1 the default is ON. For version 2 the default it is OFF.

Hardware version 1 provides basic data integrity verification by calculating a parity bit for the last 3 bytes of each packet. The driver can check these bits and reject any packet that appears corrupted. Using this knob you can bypass that check.

Hardware version 2 does not provide the same parity bits. Only some basic data consistency checking can be done. For now checking is disabled by default. Currently even turning it on will do nothing.

Sets crc_enabled to 0/1. The name “crc_enabled” is the official name of this integrity check, even though it is not an actual cyclic redundancy check.

Depending on the state of crc_enabled, certain basic data integrity verification is done by the driver on hardware version 3 and 4. The driver will reject any packet that appears corrupted. Using this knob, The state of crc_enabled can be altered with this knob.

Reading the crc_enabled value will show the active value. Echoing “0” or “1” to this file will set the state to “0” or “1”.

9.3. Differentiating hardware versionsВ¶

To detect the hardware version, read the version number as param[0].param[1].param[2]:

In the wild, there appear to be more versions, such as 00.01.64, 01.00.21, 02.00.00, 02.00.04, 02.00.06:

In the wild, there appear to be more versions, such as 04.03.01, 04.04.11. There appears to be almost no difference, except for EF113, which does not report pressure/width and has different data consistency checks.

Probably all the versions with param[0] = 02.08.00 can be considered as 6 bytes.

9.4. Hardware version 1В¶

9.4.1. RegistersВ¶

By echoing a hexadecimal value to a register it contents can be altered.

Источник

9. Elantech Touchpad DriverВ¶

Extra information for hardware version 1 found and provided by Steve Havelka

Version 2 (EeePC) hardware support based on patches received from Woody at Xandros and forwarded to me by user StewieGriffin at the eeeuser.com forum

9.1. IntroductionВ¶

Currently the Linux Elantech touchpad driver is aware of four different hardware versions unimaginatively called version 1,version 2, version 3 and version 4. Version 1 is found in “older” laptops and uses 4 bytes per packet. Version 2 seems to be introduced with the EeePC and uses 6 bytes per packet, and provides additional features such as position of two fingers, and width of the touch. Hardware version 3 uses 6 bytes per packet (and for 2 fingers the concatenation of two 6 bytes packets) and allows tracking of up to 3 fingers. Hardware version 4 uses 6 bytes per packet, and can combine a status packet with multiple head or motion packets. Hardware version 4 allows tracking up to 5 fingers.

Читайте также:  Windows phone от toshiba

Some Hardware version 3 and version 4 also have a trackpoint which uses a separate packet format. It is also 6 bytes per packet.

The driver tries to support both hardware versions and should be compatible with the Xorg Synaptics touchpad driver and its graphical configuration utilities.

Note that a mouse button is also associated with either the touchpad or the trackpoint when a trackpoint is available. Disabling the Touchpad in xorg (TouchPadOff=0) will also disable the buttons associated with the touchpad.

Additionally the operation of the touchpad can be altered by adjusting the contents of some of its internal registers. These registers are represented by the driver as sysfs entries under /sys/bus/serio/drivers/psmouse/serio? that can be read from and written to.

Currently only the registers for hardware version 1 are somewhat understood. Hardware version 2 seems to use some of the same registers but it is not known whether the bits in the registers represent the same thing or might have changed their meaning.

On top of that, some register settings have effect only when the touchpad is in relative mode and not in absolute mode. As the Linux Elantech touchpad driver always puts the hardware into absolute mode not all information mentioned below can be used immediately. But because there is no freely available Elantech documentation the information is provided here anyway for completeness sake.

9.2. Extra knobsВ¶

Currently the Linux Elantech touchpad driver provides three extra knobs under /sys/bus/serio/drivers/psmouse/serio? for the user.

Turn different levels of debugging ON or OFF.

By echoing “0” to this file all debugging will be turned OFF.

Currently a value of “1” will turn on some basic debugging and a value of “2” will turn on packet debugging. For hardware version 1 the default is OFF. For version 2 the default is “1”.

Turning packet debugging on will make the driver dump every packet received to the syslog before processing it. Be warned that this can generate quite a lot of data!

Turns parity checking ON or OFF.

By echoing “0” to this file parity checking will be turned OFF. Any non-zero value will turn it ON. For hardware version 1 the default is ON. For version 2 the default it is OFF.

Hardware version 1 provides basic data integrity verification by calculating a parity bit for the last 3 bytes of each packet. The driver can check these bits and reject any packet that appears corrupted. Using this knob you can bypass that check.

Hardware version 2 does not provide the same parity bits. Only some basic data consistency checking can be done. For now checking is disabled by default. Currently even turning it on will do nothing.

Sets crc_enabled to 0/1. The name “crc_enabled” is the official name of this integrity check, even though it is not an actual cyclic redundancy check.

Depending on the state of crc_enabled, certain basic data integrity verification is done by the driver on hardware version 3 and 4. The driver will reject any packet that appears corrupted. Using this knob, The state of crc_enabled can be altered with this knob.

Reading the crc_enabled value will show the active value. Echoing “0” or “1” to this file will set the state to “0” or “1”.

9.3. Differentiating hardware versionsВ¶

To detect the hardware version, read the version number as param[0].param[1].param[2]:

In the wild, there appear to be more versions, such as 00.01.64, 01.00.21, 02.00.00, 02.00.04, 02.00.06:

In the wild, there appear to be more versions, such as 04.03.01, 04.04.11. There appears to be almost no difference, except for EF113, which does not report pressure/width and has different data consistency checks.

Probably all the versions with param[0] = 02.08.00 can be considered as 6 bytes.

9.4. Hardware version 1В¶

9.4.1. RegistersВ¶

By echoing a hexadecimal value to a register it contents can be altered.

Источник

Оцените статью