Bug 14355

Summary: чудеса с мышами
Product: Sisyphus Reporter: inger <inger>
Component: xorg-x11-serverAssignee: Valery Inozemtsev <shrek>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: critical    
Priority: P2 CC: boyarsh, ldv, mike
Version: unstable   
Hardware: all   
OS: Linux   

Description inger@altlinux.org 2008-02-07 11:58:01 MSK
Ранее в конфиге были прописаны три мыши, 
одна CorePointer, вторая AlwaysCore .. 

Согласно рекомендациям убрал эти *Core*. В результате в системе стал проявляться
тройной(!!) клик. Его можно уменьшить до двойного (ха, ха, за), сократив
количество записей мышей до одной, но ...

Полностью проблема решается только при соблюдении следующих условий:
1. мышь одна
2. протокол auto (это не уверен, но уже устал перебирать комбинации)
3. сказано что она CorePointer (как только убираю CorePointer, тут же начинает
свистопляска)

В общем это абзац и хотелось бы узнать в свете наших конфигураторов xorg как же
нынче принято прописывать мыши, например если их три:
1. внешняя USB
2. touchpad
3. "пипка", не помню как это по-умному называется.

Эта же проблема была и на 64 битах с одной прописанной мышью, сейчас не могу
проверить, но скорее всего проблема решится если я пропишу там CorePointer и
возможно поменяю протокол с IMPS/2 на Auto.
Comment 1 Valery Inozemtsev 2008-02-07 14:42:45 MSK
(In reply to comment #0)
> Ранее в конфиге были прописаны три мыши, 
> одна CorePointer, вторая AlwaysCore .. 

зачем?

> 
> Согласно рекомендациям убрал эти *Core*. В результате в системе стал 
проявляться
> тройной(!!) клик. Его можно уменьшить до двойного (ха, ха, за), сократив
> количество записей мышей до одной, но ...

CorePointer верни

> 
> Полностью проблема решается только при соблюдении следующих условий:
> 1. мышь одна
> 2. протокол auto (это не уверен, но уже устал перебирать комбинации)
> 3. сказано что она CorePointer (как только убираю CorePointer, тут же 
начинает
> свистопляска)
> 
> В общем это абзац и хотелось бы узнать в свете наших конфигураторов xorg как 
же
> нынче принято прописывать мыши, например если их три:
> 1. внешняя USB
> 2. touchpad
> 3. "пипка", не помню как это по-умному называется.

$ cat /proc/bus/input/devices | grep ^N | tail -3
N: Name="SynPS/2 Synaptics TouchPad"
N: Name="TPPS/2 IBM TrackPoint"
N: Name="Logitech USB Receiver"

xorg.conf
...
Section "InputDevice"
        Identifier      "TrackPoint"
        Driver  "mouse"
        Option  "Protocol"              "IMPS/2"
        Option  "Device"                "/dev/input/mice"
        Option  "ZAxisMapping"          "4 5"
        Option  "EmulateWheel"          "true"
        Option  "EmulateWheelButton"    "3"
        Option  "EmulateWheelInertia"   "10"
        Option  "EmulateWheelTimeout"   "200"
EndSection
...
Section "ServerLayout"
        Identifier      "ThinkPad T41"
        Screen          "IBM"
        InputDevice     "TrackPoint"    "CorePointer"
        InputDevice     "ThinkPad"      "CoreKeyboard"
EndSection

ни двойных, не тем более тройных кликов

> 
> Эта же проблема была и на 64 битах с одной прописанной мышью, сейчас не могу
> проверить, но скорее всего проблема решится если я пропишу там CorePointer и
> возможно поменяю протокол с IMPS/2 на Auto.

Comment 2 Aleksey Gulvanjuk 2008-02-08 09:57:26 MSK
Section "ServerLayout"
        Identifier     "Minimal layout"
        Screen         "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "Macintosh mouse button emulation|0" "CorePointer"
#        InputDevice    "Logitech USB Receiver|1" "AlwaysCore"
EndSection

Section "ServerFlags"
        Option      "AllowMouseOpenFail" "true"
EndSection

Section "InputDevice"
        Identifier  "Macintosh mouse button emulation|0"
        Driver      "mouse"
        Option      "Device" "/dev/input/mice"
        Option      "Protocol" "IMPS/2"
        Option      "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
        Identifier  "Logitech USB Receiver|1"
        Driver      "mouse"
        Option      "Device" "/dev/input/mice"
        Option      "Protocol" "IMPS/2"
EndSection

Сгенерированный конфиг, троекликная проблема (видимо после последнего 
обновления иксов выскочила, заметил по перезагрузке)

Решилась комментированием того, что закомментировано :-)

Мышь одна.

Comment 3 inger@altlinux.org 2008-02-08 15:27:29 MSK
(In reply to comment #1)
> (In reply to comment #0)
> > Ранее в конфиге были прописаны три мыши, 
> > одна CorePointer, вторая AlwaysCore .. 
> 
> зачем?
Раньше это надо было, вот конфигуратор везде и прописывал. Разве не так?


Так что сейчас только одну мышь всегда и везде прописывать?
А как быть с драйверами типа Synaptics?



Comment 4 Valery Inozemtsev 2008-02-08 15:37:12 MSK
> Раньше это надо было, вот конфигуратор везде и прописывал. Разве не так?

нет, не так. две записи на один девайс (/dev/input/mice) соответственно будут 
обрабатываться два раза

> Так что сейчас только одну мышь всегда и везде прописывать?
> А как быть с драйверами типа Synaptics?
использовать для mouse и synaptics разные Device
Comment 5 inger@altlinux.org 2008-02-08 15:43:03 MSK
(In reply to comment #4)
> > Раньше это надо было, вот конфигуратор везде и прописывал. Разве не так?
> 
> нет, не так. две записи на один девайс (/dev/input/mice) соответственно будут 
> обрабатываться два раза
> 
> > Так что сейчас только одну мышь всегда и везде прописывать?
> > А как быть с драйверами типа Synaptics?
> использовать для mouse и synaptics разные Device
О .. уже легче ;)
А как выяснять для кого какой девайс используется?
Особенно интересует TrackPoint и USB-шная мышь.


Comment 6 inger@altlinux.org 2008-02-08 15:47:27 MSK
Ещё в тему вопросы:
1. Можно ли пользоваться /dev/input/event* ?
2. synaptics - это драйвер для всех тачпадов или только определённых?


(In reply to comment #5)
> (In reply to comment #4)
> > > Раньше это надо было, вот конфигуратор везде и прописывал. Разве не так?
> > 
> > нет, не так. две записи на один девайс (/dev/input/mice) соответственно будут 
> > обрабатываться два раза
> > 
> > > Так что сейчас только одну мышь всегда и везде прописывать?
> > > А как быть с драйверами типа Synaptics?
> > использовать для mouse и synaptics разные Device
> О .. уже легче ;)
> А как выяснять для кого какой девайс используется?
> Особенно интересует TrackPoint и USB-шная мышь.
> 
> 
> 

Comment 7 Valery Inozemtsev 2008-02-08 15:58:57 MSK
> О .. уже легче ;)
> А как выяснять для кого какой девайс используется?
> Особенно интересует TrackPoint и USB-шная мышь.

$ cat /proc/bus/input/devices

(In reply to comment #6)
> Ещё в тему вопросы:
> 1. Можно ли пользоваться /dev/input/event* ?

не стоит. номер у event может меняться от загрузке к загрузке. 
использовать /dev/input/by-name/* не предлагаю, т.к. там имена индивидуальны 
для каждой модели мыши

> 2. synaptics - это драйвер для всех тачпадов или только определённых?

назначение сего драйвера мне не известно, хоть в /proc/bus/input/devices 
данные буковки присутствуют для моего тачпада :)
Comment 8 inger@altlinux.org 2008-02-08 16:01:32 MSK
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input0
H: Handlers=kbd event0 
B: EV=120013
B: KEY=4 2000000 3802078 f840d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7

I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/class/input/input1
H: Handlers=kbd event1 
B: EV=40001
B: SND=6

I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="PS/2 Mouse"
P: Phys=isa0060/serio1/input1
S: Sysfs=/class/input/input2
H: Handlers=mouse0 event2 ts0 
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0008 Version=6337
N: Name="AlpsPS/2 ALPS GlidePoint"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input3
H: Handlers=mouse1 event3 ts1 
B: EV=f
B: KEY=420 0 70000 0 0 0 0 0 0 0 0
B: REL=3
B: ABS=1000003

I: Bus=0003 Vendor=046d Product=c510 Version=3410
N: Name="Logitech USB Receiver"
P: Phys=usb-0000:00:1d.2-1/input0
S: Sysfs=/class/input/input4
H: Handlers=mouse2 event4 ts2 
B: EV=7
B: KEY=ffff0000 0 0 0 0 0 0 0 0
B: REL=143
Comment 9 Valery Inozemtsev 2008-02-08 16:04:24 MSK
вообще, Стас, предлагаю не заморачиваться по поводу устройств ввода.
проделай следующее:
1. # apt-get install libXiconfig
2. закоментируй в xorg.conf все упоминания об устройствах ввода
3. # service haldaemon restart
4. рестартани иксы
Comment 10 Alexey Gladkov 2008-02-08 16:09:01 MSK
(In reply to comment #9)
> вообще, Стас, предлагаю не заморачиваться по поводу устройств ввода.
> проделай следующее:

COM мыши будут работать ?
Comment 11 Alexey Gladkov 2008-02-08 16:14:04 MSK
(In reply to comment #7)
> использовать /dev/input/by-name/* не предлагаю, т.к. там имена индивидуальны 
> для каждой модели мыши

/dev/input/by-name у меня нет.

а вот /dev/input/by-path есть.

# ls -la |grep mouse
lrwxrwxrwx 1 root root   9 Feb  8 02:09 platform-i8042-serio-1-event-mouse ->
../event8
lrwxrwxrwx 1 root root   9 Feb  8 02:09 platform-i8042-serio-1-mouse -> ../mouse1

Разве имена ссылок будут меняться ?
Comment 12 Valery Inozemtsev 2008-02-08 16:25:53 MSK
(In reply to comment #10)
> (In reply to comment #9)
> > вообще, Стас, предлагаю не заморачиваться по поводу устройств ввода.
> > проделай следующее:
> 
> COM мыши будут работать ?

1. их оочень давно нет в продаже
2. цена самой дешевой PS/2 мыши 60 рублей
3. затраты на поддержку COM мышей много больше чем 60 рублей

из вышеприведенных пунктов следует что это экономически не выгодно


(In reply to comment #11)
> platform-i8042-serio-1-mouse -> ../mouse1
> 
> Разве имена ссылок будут меняться ?

попробуй повтыкать usb мышь в разные порты
Comment 13 inger@altlinux.org 2008-02-08 16:31:00 MSK
COM мыши нам нужны для школьного линукса.
Можно ли часть устройств прописывать самому?
Comment 14 inger@altlinux.org 2008-02-08 16:32:10 MSK
Собственно комовые мыши не проблема - я могу дописать их если хал никого не
найдёт в системе ... а вот что делать с синаптиками и будут ли работать
одновременно usb + ps/2 ?
Comment 15 Alexey Gladkov 2008-02-08 16:33:41 MSK
(In reply to comment #12)
> из вышеприведенных пунктов следует что это экономически не выгодно

Валер, Стас добавил поддержку этих мышей не от хорошей жизни ... это
потребовалась в Junior. Как оказалось, в школах есть много машин без возможности
воткнуть PS/2 мышь. Так что к сожалению, для нашей страны эта проблема ещё
актуальна. :(

Вопрос по libXiconfig: Если убрать все настройки мышей из xorg.conf и на машине
есть несколько мышей (например Thinkpad + USB + PS/2), то он будет с одним
устройством или со всеми сразу ?
Comment 16 Valery Inozemtsev 2008-02-08 16:49:05 MSK
с libXiconfig/hal будет работать все кроме COM мышей. COM мыши можно прописать 
в xorg.conf руками
Comment 17 Michael Shigorin 2008-02-09 15:04:46 MSK
(In reply to comment #0)
> Согласно рекомендациям убрал эти *Core*.
Это какие-то неправильные рекомендации -- можно ссылку? 
CorePointer/CoreKeyboard действительно нужны AFAIK.

(In reply to comment #2)
> 1. Можно ли пользоваться /dev/input/event* ?
Они плавают.

> 2. synaptics - это драйвер для всех тачпадов или только определённых?
Для тачпадов Synaptics.  Их подавляющее большинство как минимум, но не уверен,
что "всех".

(In reply to comment #16)
> с libXiconfig/hal будет работать все кроме COM мышей.
> COM мыши можно прописать в xorg.conf руками
Сейчас они прописываются alterator-x11, если не найдено ничего другого.

---

Эта бага -- INVALID?
Comment 18 Mikhail Gusarov 2008-02-09 15:06:07 MSK
(In reply to comment #17)
> > 1. Можно ли пользоваться /dev/input/event* ?
> Они плавают.

/dev/input/{by-id,by-path} зато не плавают.
Comment 19 inger@altlinux.org 2008-02-11 09:48:58 MSK
(In reply to comment #16)
> с libXiconfig/hal будет работать все кроме COM мышей. COM мыши можно прописать 
> в xorg.conf руками
OK, отлично, для меня остаётся неясным только:

1. Что делать с synaptics (в принципе наверное не очень сложно патчик сделать на
libXiConfig) ... но в принципе можно некоторое время и без него прожить.
2. Возможно ли будет собрать эту библиотеку под branch 4.0 ?

Comment 20 inger@altlinux.org 2008-02-11 10:16:41 MSK
> 
> Эта бага -- INVALID?

К сожалению нет. 
Дома на ati doubleclick пропал, а на рабочей тачке на nvidia всё также
воспроизводится, даже при наличии corePointer.
Comment 21 inger@altlinux.org 2008-02-11 10:17:43 MSK
(In reply to comment #20)
> > 
> > Эта бага -- INVALID?
> 
> К сожалению нет. 
> Дома на ati doubleclick пропал, а на рабочей тачке на nvidia всё также
> воспроизводится, даже при наличии corePointer.
> 

Причём замечу - в данном случае это не тотальное размножение кликов (когда даже
меню нельзя открыть), а именно race, который возникает время от времени.
Comment 22 Valery Inozemtsev 2008-02-11 15:48:36 MSK
> 1. Что делать с synaptics

ничего. он в любом случае не рабочий

> (в принципе наверное не очень сложно патчик сделать на
> libXiConfig) ... но в принципе можно некоторое время и без него прожить.

все устройства ввода сейчас обрабатываются драйвером evdev (точнее должны)

> 2. Возможно ли будет собрать эту библиотеку под branch 4.0 ?

в xorg-server-1.3 нет input-hotplug
Comment 23 Valery Inozemtsev 2008-06-27 13:13:15 MSD
для xorg-server-1.4 уже не актуально