Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: InputDevices projekt  (Přečteno 3308 krát)

nettezzaumana

  • Host
InputDevices projekt
« kdy: 11 Května 2007, 18:34:07 »
Zdravím,

Snažím se vytvořit HOWTO pro nastavení InputDevices pro X-window-system. Zároveň vytvářím podpůrné skripty pro integraci speciálních tlačítek zejména na laptopech. Tato tlačítka je podle mě možné integrovat právě do xorg.conf a manipulace s možnostmi ACPI se náležitě zjednoduší a ztransparentní.

Pracuji na Ubuntu (takže primární kompatabilita jest pro od Debianu odvozené distribuce), používám ntb ASUS F3T (ALPS touchpad) a jako grafickou kartu mám nvidia go 7300.

Vytvořil jsem skript založený na 'nvidia-xconfig', pro lepší a jednoduché nastavení sekcí „Device“, „Screen“ a „Extensions“ pro Ubuntu Linux. To ale není můj hlavní záměr.

V současné době se potýkám se zásadním problémem: nerozumím zcela přesně způsobu deklarace „Option 'Device'“ v sekci „InputDevice“ v /etc/X11/xorg.conf. Dostávám totiž rozdílné výpisy z /proc/bus/input/devices když nastartuju linux s rozdílně zapojeným zařízením jako např. USB myš. Touchpad sice funguje jako stále /dev/psaux, ale to mi připadá neobratné, protože bych do xorg.conf chtěl integrovat i právě ona speciální tlačítka, a ta se mi právě pokaždé inicializují jinak a proto je nemohu deklarovat jako /dev/input/eventX. Je pravda, že jediné co zůstává stále stejné je položka „P: Phys=...“, ale ani po přečtení mnoha man pages a jiné dokumentace jsem nenašel její propojení s /dev.

Manuálové stránky mi dříve přišly „za trest“ a že jsou příliš obšírné, ale např. 'man xorg.conf' mi teď připadá nejmírněji řečeno „ošizená“.

Dále úplně přesně nechápu tlačítko „Fn“ na notebooku. U sebe mám pomocí tohoto tlačítka nastaveny některé vychytané funkce související s manipulací s hardwarem (hlasitost, ovládání LCD, vypínání touchpadu a wifi, pouštění programů apod), nicméně toto tlačítko je pro klávesovou zkratku použitelné pouze ve formě „event“ a jen s některýma klávesama (u mě pouze s Fx). Napsal jsem si pro ten účel v C prográmek na vypisování vstupních signálů a ten mi potvrdil, že takovýto signál vyvolá pouze použítí s Fx klávesama a jinak s ničím jiným. Mimo jiné i v Gnome v dialogu „nastavení klávesových zkratek“ je tato zkratka definovaná jako event v decimálním formátu.

Takže co bych rád:

   1. Pokud se někdo bude chtít zapojit do tohoto projektu, budu rád. V současné chvíli by se mi hodil někdo, kdo má zkušenosti s VGA kartama od Amd (dříve Ati) a popř. jiným touchpadem.
   
   2. Dále bych rád požádal o jakoukoliv radu nebo o dokumentaci související s výše uvedenými otázkami. Zejména pokud by mi nemohl někdo ozřejmit způsob systémové deklarace fyzických zařízení a jejich propojení s /dev.

   3. Jako poslední téma vhodné k zamyšlení je způsob, jak synchronizovat takto do X deklarovaná tlačítka, jinak související s acpi-events s acpi. Já osobně v současném stádiu vývoje používám pro tyto fce jednoduchý a dle mého soudu prasácký opis: nevolám přímo jednotlivé acpi.sh, ale volám `opisem` samotné acpi.

O mě:

Používám Linux už pár let a cítím silnou potřebu mu vrátit co mi dává, proto se snažím např. s touto aktivitou. Jsem samouk, programuji v C, učím se Javu a jako pomůcky občas používám skripty nejčastěji v #!/bin/sh a perlu ..

Pokud výše uvedené někoho zaujalo a má k tomu co říct, nebo je-li schopen a ochoten zodpovědět mé otázky, nebo má-li dokumentaci která by mi pomohla a nebo na konec, děláte-li někdo na tom samém nebo příbuzném tématu, kontaktujte mě prosím na fantomas@darkcastle.eu a uvidíme co dál.

Moje ambice jsou asi mimořádně velké, protože kdyby se nakonec podařilo vylepšit samotný instalátor X-window-systemu, uděláme dobře.

PS. Pokud si toto přečte Radek Hulán, tak nepředpokládaje, že snad krom puzení „vrátit Linuxu co mu dal“, bude znát odpověď na jakoukoliv z mých otázek, by ho mohlo napadnout snad jediné, a sice poslat mi peníze. Proto prosím:

Radku Huláne, peníze mě neposílej. Pošli je v rámci svého nehynoucího obdivu k „Wov.Solutions“ do nějaké rozvojové země, aby si i chudí domorodci mohli nad rámec projektu „Starter“ napsat dokument třebas se žádostí o pracovní místo.

Howg
« Poslední změna: 10 Března 2009, 11:00:18 od nettezzaumana »

Vojtěch Trefný

  • Příspěvků: 9307
  • Don Quijote
InputDevices projekt..
« Odpověď #1 kdy: 11 Května 2007, 18:38:08 »
Přesunuto do vhodnějšího tématu a duplicitní příspěvěk smazán.

Martin Kiklhorn

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Závislák
  • ******
  • Příspěvků: 4807
  • グーグル!ご存知ですか?
    • HEJ
Re: InputDevices projekt
« Odpověď #2 kdy: 19 Května 2008, 17:07:07 »
Nevím zda je to ještě aktuální, osobně se snažím "jen" rozchodit všechna hejblátka na R1F,

   
   2. Dále bych rád požádal o jakoukoliv radu nebo o dokumentaci související s výše uvedenými otázkami. Zejména pokud by mi nemohl někdo ozřejmit způsob systémové deklarace fyzických zařízení a jejich propojení s /dev.

Při svém hledání jsem narazil na info jak je to vlastně  všechno propojené, snad to bude užitečné:

http://www.linuxjournal.com/article/6396
http://www.linuxjournal.com/article/6429
Jsou ve vašem dotazu OPRAVDU VŠECHNY vám dostupné informace o problému?
Linux user since 2007-10-11, Registered #456007
Virtual
| Distribuce
~/slozka znamená /home/"vase jmeno"/slozka
6521 69DE 0F34 FCBC FB1D  DE76 360E 52B2 F71A B8E8

nettezzaumana

  • Host
Re: InputDevices projekt
« Odpověď #3 kdy: 19 Května 2008, 19:32:56 »
uff. myslim, ze tohle je jeden z prvnich mych prispevku na tomto foru ;)

program jsem nevytvoril, pac se to ukazalo jako prilis obtizne, spokojiv se s tim, ze uz alespon vim, jak se to dela.

nejjednodussi je rucne vychytat eventy pri stisku kombinace funkcnich tlacitek pomoci dbus-monitor a nebo acpi_listen .. jednoduse spuste (viz. priklady nize) jednu z techto aplikaci (doporucuji acpi_listen) a mackejte funkcni tlacitka a sledujte co to vypisuje ..

Citace: dbus-monitor
# dbus-monitor --system
signal sender=org.freedesktop.DBus -> dest=:1.35 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.35"
signal sender=:1.8 -> dest=(null destination) path=/com/novell/powersave; interface=com.novell.powersave.manager; member=AcpiEvent
   string "hotkey ATKD 00000095 00000000"
signal sender=:1.8 -> dest=(null destination) path=/com/novell/powersave; interface=com.novell.powersave.manager; member=PowersaveEvent
   string "other"
signal sender=:1.8 -> dest=(null destination) path=/com/novell/powersave; interface=com.novell.powersave.manager; member=AcpiEvent
   string "hotkey ATKD 0000005c 00000001"
signal sender=:1.8 -> dest=(null destination) path=/com/novell/powersave; interface=com.novell.powersave.manager; member=PowersaveEvent
   string "other"
signal sender=:1.8 -> dest=(null destination) path=/com/novell/powersave; interface=com.novell.powersave.manager; member=AcpiEvent
   string "hotkey ATKD 0000006b 00000003"
signal sender=:1.8 -> dest=(null destination) path=/com/novell/powersave; interface=com.novell.powersave.manager; member=PowersaveEvent
   string "other"

Citace: acpi_listen
> acpi_listen
hotkey ATKD 00000095 00000001
hotkey ATKD 0000005c 00000002
hotkey ATKD 0000006b 00000004
..
dal uz je to jednoduche jako facka::

vytvorime soubor, kde si definujeme co delaji "takto odchytana" tlacitka, ulozime ho treba jako /sbin/myevents a priradime mu executable flag ::
Citace
#!/bin/bash
# what should perform our hardware events

case "$1" in
  prvni_cudlik )
    konqueror &
    exit 0
    ;;
  druhy_cudlik )
    echo "nekdo zmacknul muj druhy cudlik" >/dev/tty10 &
    exit 0
    ;;
  treti_cudlik )
    echo "zmacknuli treti cudlik" >/dev/tty10 &
    exit 0
    ;;
esac
a potom nas zajima retezec od zacatku do posledniho cisla. Akce se definuji jako soubory v /etc/acpi/events ..
Priklad ::

/etc/acpi/events/prvni_cudlik
Citace
event=hotkey ATKD 00000095
action=/sbin/myevents prvni_cudlik
Spusti se konqueror, stejne jako dva nasledujici soubory o5 provedou pozadovanou akci dle /sbin/myevents

/etc/acpi/events/druhy_cudlik
Citace
event=hotkey ATKD 0000005c
action=/usr/bin/myevents druhy_cudlik

/etc/acpi/events/treti_cudlik
Citace
event=hotkey ATKD 0000006b
action=/usr/bin/myevents treti_cudlik
posledni dva jen napriklad vypisou hlasku na na terminal 10, ze nam nekdo zmacknul cudlik

..atd

!! pozor !!
prikazy se provadeji jako root, proto je nutne v /sbin/myevents pouzivat su/sudo (su <username> -c "foo") pri akcich, kdy je nevhodne, aby se spousteli s rootovskejma pravama ..
napr .. treba ono spusteni konqueroru ..


.. takze to pak vypada takto .. s acpi & dbusem lze cvicit jeste mnohem vic a ucinil jsem mnoho daleko straslivejsich objevu, ale tohle snad musi stacit. ;)
staci si zahrat na hackera a pustit se do dokumentaci acpi driveru v kernelu, protoze nektera tlacitka jsou jednoduse nepodporovana.

ps. tado metoda je to nejjednodusi a efektivni reseni, diky kteremu lze priradit ruznym tlacitkum na ntbs vsechny akce, ktere si lze predstavit

pps. program jsem nedopsal, pac by to slozite musel parsovat z /proc a ted to integrovat do xorg .. fuj

zdravi ntz ;)
« Poslední změna: 10 Března 2009, 10:58:29 od nettezzaumana »

nettezzaumana

  • Host
Re: InputDevices projekt
« Odpověď #4 kdy: 19 Května 2008, 21:24:17 »
ps. tenhle prispevek byl stoprocentne kdysi jeden z uplne prvnich na zdejsim foru .. huh
jsem rad, ze jsem ho ted nakonec snad doresil..

enjoy by ntz ;)
« Poslední změna: 23 Října 2008, 20:06:02 od nettezzaumana »

 

Provoz zaštiťuje spolek OpenAlt.