Portál AbcLinuxu, 30. dubna 2025 09:08

Myši a klávesnice v X serveru 1.5

7.11.2008 18:57 | Přečteno: 2114× | Výběrový blog | poslední úprava: 8.11.2008 10:55

Dnes jsem měl konečně čas se podívat na zoubek konfiguraci vstupních zařízení u nových X. Ta nabízejí dvě základní možnosti: buď klasickou "statickou" v xorg.conf, nebo dynamickou pomocí HAL. Mě už dlouho zajímala dynamická konfigurace, především protože právě díky ní lze mít na notebooku opravdu dobře (TM) fungující hlodavce

Dřívější X servery totiž s možností mobilních zařízení vůbec nepočítaly. V době sériových a PS/2 myší to totiž ani nebylo potřeba. Všechny myši uměly to stejné (tři tlačítka a později kolečko) a připojovaly se přes stejné rozhraní, takže se na koncepci X serveru "načti zařízení při svém startu" nemuselo nic měnit. S nástupem USB myší, event rozhraní a udevu se toto vše ale zbortilo. Myši se začaly chovat každá jinak a připojovat se pokaždé přes jiné zařízení. "Vyřešilo" se to hackem v podobě zařízení /dev/input/mice, do kterého se slévaly události ze všech myší, o kterých jádro vědělo. Ani to ale nebylo ideální. Jednak se u všech USB myší připojovaných za běhu daly využít jen základní vlastnosti, ale to nebylo to nejhorší. Opravdu nepříjemná byla duplikace signálů od Touchpadu (která se dala dalším hackem potlačit) a nemožnost nastavit Option "EmulateWheel" "true" pouze pro trackpoint (to už nijak obejít nešlo).

X.org 1.5 umí všechny tyto neduhy řešit pomocí dynamické konfigurace zařízení přes HAL. To s sebou ale bohužel nese opuštění staré dobré přehledné syntaxe xorg.conf, na druhou stranu ovšem stačí konfigurovat nezbytné minimum. Na svém počítači používám 4 vstupní zařízení: klávesnici, trackpoint, touchpad a USB myš Logitech RX300. Z toho mi ubuntí HAL s X rozpoznávají USB myš a touchpad, ale trackpoint a klávesnice ještě potřebují "nakopnout", aby odpovídaly mé oblíbené konfiguraci:

# klávesnice
Section "InputDevice"
        ...
        Option "XkbLayout" "us,cz"
        Option "XkbOptions" "grp:shift_toggle,grp:switch,lv3:ralt_switch"
EndSection

# trackpoint
Section "InputDevice"
        ...
        Option "EmulateWheel" "true"
        Option "EmulateWheelTimeout" "200"
        Option "EmulateWheelButton" "2"
        ...
EndSection
Tedy ne, že by je nerozpoznaly vůbec, pouze u klávesnice nastaví natvrdo českou klávesovou mapu a u trackpointu se snaží emulovat kolečko při stisku neexistujícího tlačítka "4". Takže je vlastně potřeba přepsat výše zmíněný konfigurák tak, aby mu porozuměl HAL:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>

    <match key="info.product" string="TPPS/2 IBM TrackPoint">
      <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
      <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
      <merge key="input.x11_options.ZAxsisMapping" type="string">4 5</merge>
      <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
    </match>

    <match key="info.capabilities" contains="input.keys">
      <merge key="input.x11_options.XkbLayout" type="string">us,cz</merge>
      <merge key="input.x11_options.XkbOptions" type="string">grp:shift_toggle,grp:switch,lv3:ralt_switch</merge>
    </match>
  
  </device>
</deviceinfo>
Toto XML je pak potřeba pojmenovat a dát do míst, kde HAL hledá svou konfiguraci - v mém případě je to soubor /etc/hal/fdi/policy/10-x11-input.fdi. Potom už všechny myši krásně myšují i lidem, co notebooky používají opravdu jako notebooky. :-)

       

Hodnocení: 100 %

        špatnédobré        

Anketa

Jak dlouhá doba vám připadá přiměřená pro vyřešení srovnatelného problému?
 (66 %)
 (7 %)
 (0 %)
 (0 %)
 (0 %)
 (0 %)
 (0 %)
 (28 %)
Celkem 29 hlasů

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Jardík avatar 7.11.2008 21:27 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Odpovědět | Sbalit | Link | Blokovat | Admin
1 min
Věřím v jednoho Boha.
8.11.2008 12:20 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Odpovědět | Sbalit | Link | Blokovat | Admin
Zajímaly by mě názory těch, co v anketě napsali "více". Jakože je ten problém natolik zásadní, že znamená nutnost úplně nového návrhu a následného vývoje?
oVirt | SPICE
mirec avatar 8.11.2008 12:58 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Odpovědět | Sbalit | Link | Blokovat | Admin
Čo vlastne treba zmeniť xorg.conf aby to fungovalo?
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
8.11.2008 13:02 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Příloha:
Já to dělal na čisté instalaci, takže jsem nic měnit nemusel (vlastně jo, přidával jsem DisplaySize k monitoru). Viz přílohu. U upgradů se naopak musí některé věci zakomentovat/smazat, informací je po netu více (i v místních blozích).
8.11.2008 13:06 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Příloha:
Hm, toto je výchozí konfigurák. Tento používám...
mirec avatar 8.11.2008 13:21 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Som idiot, mal som tam Option "AutoAddDevices" "false"
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
8.11.2008 13:16 Mandarinka
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Odpovědět | Sbalit | Link | Blokovat | Admin
To mi připomíná, jak mi mrznuly věci při používání PS/2 myši na notebooku s touchpadem. To jsem taky nikdy nevyřešil... když nepočítám změnu OS.
mirec avatar 8.11.2008 13:36 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Odpovědět | Sbalit | Link | Blokovat | Admin
Ešte otázka - ako to rozbehať na thinkpade r61i? Skúšal som hodiť do hal tých pár riadkov, reštartovať hal a pri štarte X mi loguje niečo takéto:
(II) config/hal: Adding input device TPPS/2 IBM TrackPoint
(**) TPPS/2 IBM TrackPoint: always reports core events
(**) TPPS/2 IBM TrackPoint: Device: "/dev/input/event5"
(II) TPPS/2 IBM TrackPoint: Found x and y relative axes
(II) TPPS/2 IBM TrackPoint: Found mouse buttons
(II) TPPS/2 IBM TrackPoint: Configuring as mouse
(II) XINPUT: Adding extended input device "TPPS/2 IBM TrackPoint" (type: MOUSE)
(**) Option "Emulate3Buttons" "true"
(II) TPPS/2 IBM TrackPoint: Forcing middle mouse button emulation.
(II) config/hal: Adding input device AT Translated Set 2 keyboard
Veci ako scrollovanie trackpoinotm úplne ignoruje. Treba na to nejaký špeciálny software?
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
mirec avatar 8.11.2008 14:04 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Tak ešte drobný výpis hal-device:
$ hal-device /org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input
udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input'
  input.x11_options.Emulate3Buttons = 'true'  (string)
  input.x11_options.YAxisMapping = '4 5'  (string)
  linux.sysfs_path = '/sys/class/input/input4/event4'  (string)
  info.category = 'input'  (string)
  input.device = '/dev/input/event4'  (string)
  info.subsystem = 'input'  (string)
  input.x11_options.XAxisMapping = '6 7'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port'  (string)
  info.capabilities = { 'input', 'input.mouse' } (string list)
  info.product = 'TPPS/2 IBM TrackPoint'  (string)
  input.product = 'TPPS/2 IBM TrackPoint'  (string)
  input.x11_options.EmulateWheelTimeOut = '200'  (string)
  info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.device_file = '/dev/input/event4'  (string)
  input.x11_driver = 'evdev'  (string)
  input.x11_options.EmulateWheel = 'true'  (string)
  input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port'  (string)
  input.x11_options.EmulateWheelButton = '2'  (string)
  input.x11_options.ZAxsisMapping = '4 5'  (string)
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Marián Kyral avatar 8.11.2008 23:27 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Záleží jestli to podporuje ovladač. Synaptics bez problémů.

Viz: http://www.gentoo-wiki.info/Synaptics_Touchpad/Xorg_7.3, man:synaptics (VertEdgeScroll) a ukázkové fdi: ${sourcecode}/fdi/11-x11-synaptics.fdi.
Marián Kyral avatar 8.11.2008 23:37 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
mirec avatar 9.11.2008 09:05 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
1. Nie je to referenčná dokumentácia

2. Je to to isté čo v tomto blogu, nijako to nerieši môj problém

3. Synaptics s tým nemá nič spoločné, ja synaptics nemám a nemôžem mať (keďže touchpad nemám). U trackpointu sa scrollovanie rieši emuláciou kolieska.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Marián Kyral avatar 9.11.2008 12:32 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
A co je tvůj problém? Psal jsi, že nejde scrolovat a to by podle mně měl ten odkaz vyřešit.
mirec avatar 9.11.2008 12:52 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5

Takže presne to nastavenie mám. Z logu:

(II) XINPUT: Adding extended input device "TPPS/2 IBM TrackPoint" (type: MOUSE)
(**) Option "Emulate3Buttons" "true"
(II) TPPS/2 IBM TrackPoint: Forcing middle mouse button emulation.

vyplýva, že jediné nastavenie ktoré z hal použilo je emulácia 3 gombíkov (nie scrollovanie).

Z výpisu hal-device:

udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input'
  input.x11_options.Emulate3Buttons = 'true'  (string)
  input.x11_options.YAxisMapping = '4 5'  (string)
  linux.sysfs_path = '/sys/class/input/input4/event4'  (string)
  info.category = 'input'  (string)
  input.device = '/dev/input/event4'  (string)
  info.subsystem = 'input'  (string)
  input.x11_options.XAxisMapping = '6 7'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port'  (string)
  info.capabilities = { 'input', 'input.mouse' } (string list)
  info.product = 'TPPS/2 IBM TrackPoint'  (string)
  input.product = 'TPPS/2 IBM TrackPoint'  (string)
  input.x11_options.EmulateWheelTimeOut = '200'  (string)
  info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.device_file = '/dev/input/event4'  (string)
  input.x11_driver = 'evdev'  (string)
  input.x11_options.EmulateWheel = 'true'  (string)
  input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port'  (string)
  input.x11_options.EmulateWheelButton = '2'  (string)
  input.x11_options.ZAxsisMapping = '4 5'  (string)

vyplýva, že systém hal má správne informácie o trackpointe (alebo sa mýlim)?

Potrebujem teda vedieť čo mám zlé. Najlepšie nejaká referenčná dokumentácia s voľbami, požiadavkami, napr. xorg-server >=, hal .. proste aký software k tomu potrebujem ...

No a k verziám:

x11-base/xorg-server-1.5.2
x11-proto/inputproto-1.4.4
x11-drivers/xf86-input-evdev-2.0.7
x11-drivers/xf86-input-mouse-1.3.0
x11-drivers/xf86-input-keyboard-1.3.1
sys-apps/hal-0.5.11-r1
sys-apps/dbus-1.2.3-r1
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
9.11.2008 14:10 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
jestli používáš Intrepid, tak přidej svoje logy, nastavení, atd. k tomuto bugu. Něco je tam shnilého, ale kdo ví, co to je...
mirec avatar 9.11.2008 16:49 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
No interpid pravdepodobne nepoužívam (teda aspoň som žiaden taký balíček nenašiel). Pochybujem, že mi niekto dokáže povedať čo tu mám zlé (keďže konfiguráky sú správne, hal má správne informácie, xorg by mal používať nastavenia z hal ale to nerobí ...). Toto na hal fakt neznášam .. kým to funguje nik sa o to nezaujíma a keď to nefunguje tak to nik nevie opraviť. Takže to vidím asi tak, že sa vrátim k starej konfigurácii a vždy pred pripojením myši budem musieť kontrolovať do ktorého USB myš pripájam a pripájať keď mám prepnuté na konzolu ...
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
9.11.2008 17:01 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Intrepid je kódové označení pro Ubuntu 8.10.
mirec avatar 9.11.2008 09:08 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Ešte ma tak napadlo .. tam používajú na konfiguráciu nástroj xinput. Je k tomu nejaká dokumentácia? Konkrétne ma zaujíma ako a či vôbec funguje príkaz list-props, ak áno v ktorej verzii, či treba nejaký patch aby to fungovalo ...
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
mirec avatar 8.11.2008 14:55 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Odpovědět | Sbalit | Link | Blokovat | Admin
Toto sa snažím nastaviť už asi rok. Je k tomuto rozumná dokumentácia? Chcel by som vedieť akú verziu čoho potrebujem na to aby mi to zožralo viac než 1 nastavenie. Predpokladám, že tento blog bol písaný len ako čisté copy & paste zo zahraničných webov (tam som videl identické nastavenia). Referenčná dokumentácia mi ale úplne chýba. Je tu iná možnosť ako zistiť kde je problém okrem čítania zdrojových kódov?
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
8.11.2008 17:01 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Je to copy & paste mého nastavení, ke kterému jsem si došel asi po půl dni gůglení a nastavování. Krom Xorg.0.log sleduj i výpisy daemon.log. Pokud máš v konfiguraci chybu, stěžuje si tam.
mirec avatar 8.11.2008 18:20 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Môj xorg.conf a Xorg.0.log. Netuším čo je daemon.log.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
8.11.2008 20:11 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
/var/log/daemon.log
mirec avatar 9.11.2008 09:06 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Tak ten súbor nemám.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
David Heidelberg avatar 9.11.2008 14:38 David Heidelberg | skóre: 46 | blog: blog_
Rozbalit Rozbalit vše Re: Myši a klávesnice v X serveru 1.5
Odpovědět | Sbalit | Link | Blokovat | Admin
Děkuji za návod, alespoň jsem se díky němu dostal k tomu, abych nastavil právně klávesnici :-) To řešení přes hal je doopravdy lepší, než přes xorg.conf :-)
Mobilní telefony a tablety s GNU/Linuxem v roce 2020. Proč byste se měli zajímat?

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.