Portál AbcLinuxu, 24. dubna 2024 14:08


Dotaz: multimedialni USB klavesnice posila scancode 7 pro vsechny klavesy

20.6.2005 20:22 Pinky | skóre: 30
multimedialni USB klavesnice posila scancode 7 pro vsechny klavesy
Přečteno: 257×
Odpovědět | Admin
Ahoj, dobrý den mám multimediální klávesnici Chicony KU-0108. Po zapojení fungovala základní část hned jak v konzoli tak v Xkách. můj problém je že jediné co se mi podařilo udělat s multimediálními klávesami je aby z programu xev vraceli vsechny to same:
KeyPress event, serial 26, synthetic NO, window 0x1600001,
    root 0x43, subw 0x0, time 797003, (587,559), root:(620,610),
    state 0x10, keycode 7 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 26, synthetic NO, window 0x1600001,
    root 0x43, subw 0x0, time 797003, (587,559), root:(620,610),
    state 0x10, keycode 7 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
bohužel moje situace je poněkud specifická, jelikož mám dva grafické terminály pro dva uživatele (ruby patch pro kernel + isolatedev pro xorg) v čemž nebude problém, ale musím přiřadit konkrétní zařízení konkrétnímu Xterminálu takže musím použít evdev. s návodem z abclinuxu pro tuhle klávesnici jsem si nijak nepomohl, můj tip je že se ty klávesy někde špatně překládají??? protože
cat /dev/input/evdev4 | dumphex
(tohle je numericka cast viz. nize.) vraci scakody spravne. takže jak donutit xorg to správně interpretovat.
cat /proc/bus/dev/input
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd event0 
B: EV=120013 
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe 
B: MSC=10 
B: LED=7 

I: Bus=0011 Vendor=0002 Product=0004 Version=0000
N: Name="GenPS/2 Genius Wheel Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=mouse0 event1 ts0 
B: EV=7 
B: KEY=1f0000 0 0 0 0 0 0 0 0 
B: REL=103 

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

I: Bus=0003 Vendor=04f2 Product=0111 Version=0101
N: Name="Chicony USB Keyboard"
P: Phys=usb-0000:00:10.0-2/input0
H: Handlers=kbd event3 
B: EV=120013 
B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe 
B: MSC=10 
B: LED=7 

I: Bus=0003 Vendor=04f2 Product=0111 Version=0101
N: Name="Chicony USB Keyboard"
P: Phys=usb-0000:00:10.0-2/input1
H: Handlers=kbd event4 
B: EV=13 
B: KEY=801f 0 0 387a d801d100 1e0000 0 0 0 
B: MSC=10
Kde prvni je běžná část USB klávesnice, druhá jsou multimediální klávesy, jediná co mě napadlo bylo přidat do xorg.conf tu druhou klávesnici, zkoušel jsem různé variaty nastavení pro obě části klávesnice, z tohohle jsem vycházel.
Section "ServerLayout"
        Identifier     "Muj"
        Screen         "Screen0"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Keyboard0_media" "SendCoreEvents"
        Option         "SingleCard" "true"
EndSection

Section "ServerLayout"
        Identifier     "Jeho"
        Screen         "Screen1"
        InputDevice    "Mouse1" "CorePointer"
        InputDevice    "Keyboard1" "CoreKeyboard"
        Option         "SingleCard" "true"
EndSection
#
Section "ServerFlags"
#       Option "PciOsConfig" "1"
        Option "DontVTSwitch" "True"
        Option "DontZap" "True"
#    Option "DontZoom" "True"
EndSection

Section "Files"
        RgbPath      "/usr/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
        FontPath     "/usr/share/fonts/misc/"
        FontPath     "/usr/share/fonts/TTF/"
        FontPath     "/usr/share/fonts/Speedo/"
        FontPath     "/usr/share/fonts/Type1/"
        FontPath     "/usr/share/fonts/CID/"
        FontPath     "/usr/share/fonts/75dpi/"
        FontPath     "/usr/share/fonts/100dpi/"
EndSection

Section "Module"
        Load  "record"
#       Load  "extmod"
    SubSection  "extmod"
      Option    "omit xfree86-dga"   # don't initialise the DGA extension
    EndSubSection
        Load  "dbe"
        Load  "dri"
        Load  "glx"
        Load  "xtrap"
        Load  "freetype"
        Load  "type1"
#       Load  "speedo"Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "Protocol" "evdev"
    Option      "Dev Name"      "Chicony USB Keyboard"
    Option      "Dev Phys"      "usb-*/input0"
#    Option      "Device" "/dev/input/event0"
#    Option      "xkb_symbols" "scorpius" name[Group1]= "Advance Scorpius KI"
        Option      "XkbModel" "chicony"
        Option      "XkbLayout" "cz_qwerty,us"
        Option      "XkbOptions" "grp:switch,grp:shift_toggle,grp_led:scroll"
        Option      "Xleds"      "1 2 3"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0_media"
        Driver      "kbd"
        Option      "Protocol" "evdev"
        Option      "Dev Name"      "Chicony USB Keyboard"
        Option      "Dev Phys"      "usb-*/input1"
        Option      "Device" "/dev/input/event4"
#       Option "XkbSymbols" "scorpius" name[Group1]= "Advance Scorpius KI"
        Option      "XkbModel" "chicony"
        Option      "XkbModel" "pc104"
        Option      "XkbLayout" "cz_qwerty,us"
        Option      "XkbOptions" "grp:switch,grp:shift_toggle,grp_led:scroll"
        Option      "Xleds"      "1 2 3"
EndSection

Section "InputDevice"
        Identifier  "Keyboard1"
        Driver      "kbd"
        Option      "Protocol" "evdev"
#       Option      "Dev Name"     "AT Raw Set 2 keyboard"
    Option      "Dev Phys"      "isa0060/serio0/input0"
#    Option      "Device" "/dev/input/event1"
        Option      "XkbModel" "pc104"
        Option      "XkbLayout" "cz,us"
        Option      "XkbOptions" "grp:switch,grp:shift_toggle,grp_led:scroll"
        Option      "Xleds"      "1 2 3"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
#       Option      "Protocol" "auto"
        Option      "Protocol" "imps/2"
#       Option      "Protocol" "NetMousePS/2"
#    Option      "Protocol" "evdev"
        Option      "Dev Name"      "GenPS/2 Genius Wheel Mouse"        Option      "Buttons" "5"
        Option      "Zaxismapping" "4 5"
        Option      "Device" "/dev/input/devX0"
        Option      "Device" "/dev/null"
EndSection

Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
#       Option      "Protocol" "auto"
        Option      "Protocol" "imps/2"
#       Option      "Protocol" "NetMousePS/2"
        Option      "Buttons" "7"
        Option      "Zaxismapping" "4 5"
        Option      "Device" "/dev/input/mouse0"
#       Option      "Device" "/dev/misc/mice0"
#       Option      "Device" "/dev/input/devX0"
#       Option      "Device" "/dev/null"
EndSection

Section "InputDevice"
        Identifier  "Mouse2"
        Driver      "mouse"
        Option      "Protocol" "auto"
#       Option      "Protocol" "imps/2"
#       Option      "Protocol" "NetMousePS/2"
#    Option      "Protocol" "evdev"
#    Option      "Dev Name"      "GenPS/2 Genius Wheel Mouse"
#       Option      "Buttons" "7"
#       Option      "Zaxismapping" "4 5"
#       Option      "Device" "/dev/input/devX0"
        Option      "Device" "/dev/ttyS0"
EndSection
konfigurace monitorů a grafických karet jsem si dovolil vynechat, card0,card1,monitor0,monitor1..., podle mě irelevantní.
Jedu na: Getoo
kernel: 2.6.11.9-ruby-k7 nebo 2.6.11.12-ruby-k7
v podtate vanilka s ruby patchem.
/dev/input/devX0 - vycemene symlink na nejakou mys (symlink na siťově tunelovanou konzoli napojenou na myš na jinem pocitaci) Snad jsem na nic nezapomnel, predem dik za napady. Hlavne mne zajima jak zachazet s tou druhou "druhou" klavesnici. PS: Druha moznost je ty multimedialni klavesy orezat, ale to jsem zamitl, takze prosim zadny flame.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.6.2005 22:27 Pinky | skóre: 30
Rozbalit Rozbalit vše Re: multimedialni USB klavesnice posila scancode 7 pro vsechny klavesy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak první zjištění je že dvě evdev klávesnice tam nepůjdou, protože Xka si nastavují rozložení klávesnice (třeba ěščřžýá) a to se nastavuje v optionech daného zařízení a pokud se defunují dvě tak se navzájem přepisují, možná by pomohlo nějaké vhodné rozložení mapy kláves ??. otázka je jestli by tahle dvě zařízení nešla nějak jednoduše spojit protože k te multimedialni časti se memusi posilat žadna odpověď. takže vystup z obou klavesnic se spoji do jednoho streamu a vystup z xorg by se posilal do nemultimedialni časti, pokud by nějakou odezvu požadovala, ale o evdev rozhaní nic nevim :). nebo najít nějaký program který umí využít tohle evdev4 rozhraní multimediální části ???, jenže obojí je hnusné a docela podivný hack, nemáte někdo lepší nápad ??? prosím.
Nejde nějak donutit kernel aby z toho udělal 1 klávesnici (na 2.4 kernelech to prý tak bylo ??)
H: Handlers=kbd event4
nebo vytvořit nějaký spoečný handler ????
20.6.2005 23:22 Pinky | skóre: 30
Rozbalit Rozbalit vše skoro vyreseno: Re: multimedialni USB klavesnice posila scancode 7 pro
Řešní by snad bylo nastavit správně klávesové mapy viz.:
Multiple Core Keyboards
X was not designed to support multiple core keyboards. However, Xdmx provides some support for multiple core keyboards. Best results will be obtained if all of the keyboards are of the same type and are using the same keyboard map. Because the X server passes raw key code information to the X client, key symbols for keyboards with different key maps would be different if the key code for each keyboard was sent without translation to the client. Therefore, Xdmx will attempt to translate the key code from a core keyboard to the key code for the key with the same key symbol of the first core keyboard that was loaded. If the key symbol appears in both maps, the results will be expected. Otherwise, the second core keyboard will return a NoSymbol key symbol for some keys that would have been translated if it was the first core keyboard.
Ale jediné co jsem z toho pochopil je že mě to vrací NoSymbol protože multimediální klávesy nejsou v mapě první=alfanumerické části klávesnice, takže jak mu říct že tam sou.????

tedy kde sehnat mapu v které jsou multimedíální klávesy a spojit ji s mapou moji cz_qwerty
21.6.2005 20:28 Pinky | skóre: 30
Rozbalit Rozbalit vše Re: Xorg guru: Re: multimedialni USB klavesnice posila scancode 7
Jestli tu není nějaký xorg guru který by tohle vyřešil tak asi budu otravovat někoho od Xorgu což se mi moc nechce, opravdu mě nikdo nenakopnete, já se v klávesových mapách xorg moc nevyznám....

Založit nové vláknoNahoru

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

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