Jump to content

LX700/MX3100/MX3000 sous Linux ... les touches


Recommended Posts

Bon ben voilà, j'ai fais l'acquisition d'un clavier LX700

le problème c'est que meme en utilisant evdev, certaines touches ne provoquent aucun évenement avec xev ...

j'aimerai pouvoir utiliser toutes les touches de ce clavier ... comment faire ?

( et par pitié, pas de setkeycodes sauf s'il y a un lien pour un hack (kernel apparemment) qui le débloque pour les claviers branchés en USB, et on va dire que je n'ai pas de port PS2 )

Edit :

Euh oui, j'oubliais :

Gentoo + XOrg7.0 + Kernel vanilla 2.6.16.16

Link to comment
Share on other sites

Ça doit pas être courant des gars avec ce type de clavier...

'va falloir aller chercher sur le net...

Regarde ça par exemple ça pourrait t'intéresser... http://planet.gentoo.org/developers/flamee...hing_my_overlay

:pleure:

je vais essayer ça ce WE, merci bcps, c'est exactement ce que je cherchais ... 'fin, j'espère :chinois:

PS : j'ai déja fait pas mal de recherches et franchement, le seul truc qui est proposé, c'est d'utiliser setkeycodes et de le brancher en PS2 ... le problème, c'est que la souris se retrouve aussi en PS2 et ça, je veux plus jamais voir sur une bécanne ( une souris USB sur un port PS2 finit souvent par aller se bloquer dans un coin de l'écran ... ). De plus, comme certaines bécannes au boulot n'ont plus de PS2, je préfère éviter cette solution qui me semble en fin de vie.

PPS : t'as fais quoi comme recherche pour trouver ce lien ?

Link to comment
Share on other sites

une souris USB sur un port PS2 finit souvent par aller se bloquer dans un coin de l'écran ...
Hum... J'ai jamais vu ça perso. À mon avis le problème vient de toi.

j'ai pu voir ça avec Sax et Sax2 sous Suse dans les versions 6.x, 7.x et 8.x, les 9.x et 10.x n'ayant été testées qu'en USB ... et j'avais constaté le phénomène sur Caldera et Redhat en 98-99. On va dire que c'était l'aube de l'informatique pour certains. Faut dire aussi qu'il y avait presque un driver par souris et qu'il fallait essayer les divers un à un pour trouver qqch de +- stable ( ou fonctionnel ? c'était déja pas mal ). je précise que je n'ai jamais vu ce phénomène sur une souris "pure PS2".

et non, ça ne vient pas de moi, ça vient du fait qu'une souris conçue pour fonctionner en USB arrive (arrivait ?) à saturer sans trops de peine le port PS2('fin, le buffer d'entrée dans le driver ) qui perdait complètement les pédales, peut-etre que c'est corrigé dans les dernières versions de X, mais c'était un phénomène connu à l'époque ( entre 1998 et 2002 ). Utilisant Linux, et plus particulièrement Suse depuis 1998 (ou fin 97), je peux dire que j'en ai parfois bavé lors de la sortie de nouvelles versions. Par contre, je suis bien content, après 8 ans de Suse, d'etre (enfin) passé à Gentoo :eeek2:

Link to comment
Share on other sites

j'ai essayé, j'ai eu droit à un super plantage de X ...

en fait, il faut que je remappe au moins la touche F1 correctement pour pouvoir faire un ctrl+alt+f1 ... evdev ne la mappe pas correctement. j'ai tout remis en état et je regarde à ce patch ce WE

par contre, j'avais fait "lx700 + xorg" "lx700 + linux" "mx3100 + linux" ( meme clavier ) ... mais pas "lx700 + gentoo" :arrow:

Link to comment
Share on other sites

j'ai essayé, j'ai eu droit à un super plantage de X ...

en fait, il faut que je remappe au moins la touche F1 correctement pour pouvoir faire un ctrl+alt+f1 ... evdev ne la mappe pas correctement. j'ai tout remis en état et je regarde à ce patch ce WE

par contre, j'avais fait "lx700 + xorg" "lx700 + linux" "mx3100 + linux" ( meme clavier ) ... mais pas "lx700 + gentoo" :byebye:

hello angel eyes

j'avais trouvé un trucs

tien configurer sa mx1000 sous linux

goodbye :transpi::non:

Link to comment
Share on other sites

j'ai essayé, j'ai eu droit à un super plantage de X ...

en fait, il faut que je remappe au moins la touche F1 correctement pour pouvoir faire un ctrl+alt+f1 ... evdev ne la mappe pas correctement. j'ai tout remis en état et je regarde à ce patch ce WE

par contre, j'avais fait "lx700 + xorg" "lx700 + linux" "mx3100 + linux" ( meme clavier ) ... mais pas "lx700 + gentoo" :mdr2:

hello angel eyes

j'avais trouvé un trucs

tien configurer sa mx1000 sous linux

goodbye :mdr2::non:

Mirci bcps, mais pour la MX1000, j'avais déja :mdr2:

en fait j'ai une config LX700 + MX1000, donc 2 souris (1 en réserve), qui sont reconnues comme il faut

le plus gros problème vient du clavier ...

Link to comment
Share on other sites

un petit tuto pour expliquer où j'en suis et comme j'ai résolu quelques problèmes amusants (hum! vive linux)

En fait, j'avais une MX1000, puis j'ai acheté le LX700. La souris du LX700 n'est pas top à coté de la MX1000, mais elle est déja au dessus de la moyenne, et je la garde en réserve, mais connectée au système et pleinement fonctionelle ( pas marrant de passer d'une MX1000 configurée à une autre non configurée ) => 2 souris sur le PC, ça permet de faire des cycles de charges complets, et je rappele que j'en suis à ma troisième MX1000 ( émetteur mort, puis troisième btn mort ...)

Quand on utilise le driver evdev, tous les périphériques considérés comme HID se retrouvent dans /dev/input/event* ... dans un ordre pas forcément ... ordonné, et pas forcément reproductible d'un boot à l'autre, voir meme après une hibernation.

alors pour régler ce problème, on utilise udev ...

en utilisant udev, on peut, entre autres choses, nommer un périphérique ( en fait, ici, on fait un link vers le /dev/input/event? recherché ) en lui faisant chercher des clefs dans le "truc abject" qu'il pond en faisant

# udevinfo -a -p /sys/path/to/device

pour une MX1000, on a l'entrée suivante dans /etc/udev/rules.d/...

BUS=="usb", \
SYSFS{idProduct}=="c50e", SYSFS{idVendor}=="046d", KERNEL=="event*", \
NAME="input/%k", SYMLINK="input/mx1000"

ce qui nous pond un racourcis /dev/input/mx1000 vers le /dev/input/event? correspondant.

pour le kit clavier souris, ça devient plus marrant vu que le clavier et la souris on les memes id ... et qu'on ne peut pas mélanger les clefs de champs différents. Pourtant un truc genre : "vendeur + produit + numéro d'interface" serait bien pratique.

alors, en cherchant, j'ai obtenu ceci :

BUS=="usb", \
DRIVER=="usbhid", \
SYSFS{bInterfaceProtocol}=="02", SYSFS{bInterfaceSubClass}=="01", SYSFS{bInterfaceClass}=="03", \
SYSFS{bInterfaceNumber}=="01", KERNEL=="event*", \
SYMLINK="input/lx700/CClick"

BUS=="usb", \
DRIVER=="usbhid", \
SYSFS{bInterfaceProtocol}=="01", SYSFS{bInterfaceSubClass}=="01", SYSFS{bInterfaceClass}=="03", \
SYSFS{bInterfaceNumber}=="00", KERNEL=="event*", \
SYMLINK="input/lx700/CKeyboard"

qui dit, en gros, que la souris qui a un numéro d'interface égal à 1 est la Cordless Click, meme idée pour le clavier. Ce qui veut dire que si je suis assez tordu pour brancher un deuxième kit clavier/souris, c'est un retour case départ. La MX1000 étant seule sur son récepteur, elle a un numéro d'interface à 0, et n'entre pas en conflit.

au final :

MX1000

--> /dev/input/mx1000

CClick du LX700

--> /dev/input/lx700/CClick

Clavier du LX700

--> /dev/input/lx700/CKeyboard

on a ainsi des entrées univoques dans /dev/input ... c'est déja un bon point de départ.

la suite au prochain épisode ... la MX1000 + evdev, tout un programme.

Link to comment
Share on other sites

en fait non, pas tout un programme ... en utilisant XOrg 7.0 sur Gentoo

j'ai ceci dans /etc/X11/xorg.conf :

Section "ServerLayout"
...
InputDevice	"Mouse[0]" "AlwaysCore"
InputDevice	"Mouse[1]" "AlwaysCore"
...
EndSection

...

Section "InputDevice"
Identifier	 "Mouse[0]"
Driver		 "evdev"
Option		 "Protocol" "evdev"
Option		 "Device" "/dev/input/mx1000"
Option		 "Name" "MX 1000"
Option		 "Buttons" "32"
Option		 "ZAxisMapping"	   "4 5"
Option		 "Resolution"		 "800"
EndSection

Section "InputDevice"
Identifier	 "Mouse[1]"
Driver		 "evdev"
Option		 "Protocol" "evdev"
Option		 "Device" "/dev/input/lx700/CClick"
Option		 "Name" "Cordless Click plus / LX700"
Option		 "Buttons" "32"
Option		 "ZAxisMapping"	   "4 5"
Option		 "Resolution"		 "800"
EndSection

et maintenant, ça marche, tous les boutons de la MX1000 sont reconnus. Tous ? non, car il reste deux irréductibles boutons au dessus et en dessous de la molette qui soit ont comme event "molette + qqch", soit rien quand on désactive le "smart cruise" avec lomoco.

en ce qui concerne la Cordless Click, le scroll horizontal ne provoque pas d'event ... et comme lomoco dit que c'est un device inconnu, j'en conclu que pour le moment, le kernel (ou plutot un module) ne reconnait pas encore ce périphérique ou l'assimile à l'ancienne Cordless Click qui n'avait pas de scroll horizontal. Le reste des boutons est fonctionel.

alors, petite remarque en passant, j'utilise "AlwaysCore" car "CorePointer" me provoque un freeze des souris lors de la sortie d'un Hibernate, ce qui est suffisamment pénible pour pouvoir m'en passer sans me poser de question tant que ça marche. Si qqn ici a plus de renseignement sur ces histoires de "CorePointer et autres" très peux documentées ( vu que tt le monde fait du copier/coller sans se soucier du sens de ces mots clefs ), je suis preneur.

Pour terminer cette partie, je dirais que pour utiliser les boutons supplémentaires des souris, il faut utiliser xmodmap, iwhell-1.0.0_pre12 ( sources ) avec ce patch provenant de ce blog très instructif. Le patch permet d'utiliser plus de 9 boutons ... vu que imwheel, à l'origine, traduit "10" en 1 + 0 ...

pour ce qui est des boutons "smart cruise", il y a moyen de s'en sortir avec imwheel en générant un event 'btn y' lorsqu'il y a 'btn x + btn y' ...

La suite dans le prochain épisode : le clavier est ses boutons ... plantages à l'horizon ...

Link to comment
Share on other sites

bon, ben voilà ...

LX700 : 1

Angel Eyes : 0

ça plante grave à partir du moment où j'utilise le patch et le driver evdev ...

je vais essayer avec un autre driver de carte graphique car il me bloque la machine en local et je dois corriger en réseau et relancer X por récupérer une console ... tout un programme

Edit :

le patch produit imanquablement un core dump ... à la réception d'un event ...

l'utilisation du driver vesa a l'avantage d'éviter un blquage en blank screen ...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...