Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[FreeBSD 5.4] Touches multimédia sur Presario 700

9 réponses
Avatar
MaXX
Bonjour,
Je vien de finir d'installer Freebsd sur un Compaq Presario 700, Tout
fonctionne à merveille (lan,video,wifi,dvd,...) sauf 4 des 6 touches
multimédia. Vol+ et Vol- fonctionnent mais pour les autres impossible
d'avoir le keycode avec xev(1). Etrangement c'est pareil pour toutes les
combinaisons avec la touche Fn. Y-a-t'il une bidoulle à faire qq part pour
que le clavier me donne ce code?

J'ai inspecté la page de man de atkbd(4), et il y a un truc intéressant:
[...]
Driver Flags
The atkbd driver accepts the following driver flags. They can be set
either in /boot/device.hints, or else from within the boot loader (see
loader(8)).
[...]
bit 1 (NO_RESET)
When this option is given, the atkbd driver will not reset the key-
board when initializing it. It may be useful for laptop computers
whose function keys have special functions and these functions are
forgotten when the keyboard is reset.

que dois-je mettre dans le device.hint?
mon idée est : hint.atkbd.0.flags="0X2" .

J'ai cherché pendant des heures sur google, mais je retombe invariablement
sur les mêmes archives/sites ou infos spécifique Linux...

Merci d'avance,

--
MaXX

9 réponses

Avatar
Paul Gaborit
À (at) Wed, 12 Oct 2005 13:37:53 +0000,
MaXX écrivait (wrote):
que dois-je mettre dans le device.hint?
mon idée est : hint.atkbd.0.flags="0X2" .


hint.atkbd.0.flags="0x2"

...avec un x minuscule pour faire plus clean. Ça devrait le faire
(positionner le flag à la bonne valeur).

Ceci étant, je ne saurais dire si ce flag est celui qui corrigera
votre problème de touches.

--
paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

Avatar
talon
MaXX wrote:
Bonjour,
Je vien de finir d'installer Freebsd sur un Compaq Presario 700, Tout
fonctionne à merveille (lan,video,wifi,dvd,...) sauf 4 des 6 touches
multimédia. Vol+ et Vol- fonctionnent mais pour les autres impossible
d'avoir le keycode avec xev(1). Etrangement c'est pareil pour toutes les
combinaisons avec la touche Fn. Y-a-t'il une bidoulle à faire qq part pour
que le clavier me donne ce code?


Sur les claviers "étendus" il peut y avoir des "scancodes" qui ne sont pas
reconnus par X. Autrement dit, quand tu tapes une touche, ça produit un
scancode. Le serveur X reconnaît éventuellement ce scancode (c'est programmé
en dur dans le serveur) et émet un "keycode". Ensuite il y a une association
keycode -> Symbole qui est programmable par xmodmap.
Bref si le scancode n'est pas programmé en dur tu es feinté, xev ne reconnaît
rien et xmodmap ne peut rien faire. Si par contre le scancode est reconnu,
alors il y a toujours moyen de se débrouiller qutte à modifier les fichiers
sous /usr/X11R6/lib/X11/xkb


J'ai inspecté la page de man de atkbd(4), et il y a un truc intéressant:
[...]
Driver Flags
The atkbd driver accepts the following driver flags. They can be set
either in /boot/device.hints, or else from within the boot loader (see
loader(8)).
[...]
bit 1 (NO_RESET)
When this option is given, the atkbd driver will not reset the key-
board when initializing it. It may be useful for laptop computers
whose function keys have special functions and these functions are
forgotten when the keyboard is reset.

que dois-je mettre dans le device.hint?
mon idée est : hint.atkbd.0.flags="0X2" .

J'ai cherché pendant des heures sur google, mais je retombe invariablement
sur les mêmes archives/sites ou infos spécifique Linux...


Là encore les scancodes sont analysés par le driver atkbd et il ne reconnaît
pas nécessairement tous les scancodes possibles. Il peut être nécessaire de
bidouiller le fichier. Sous Linux c'est plus facile, il y a un outil pour
faire sortir les scancodes bruts du clavier, et un autre pour les remapper
comme on veut.


Merci d'avance,



--

Michel TALON

Avatar
talon
MaXX wrote:
J'ai lu ça... Et je dois dire que ça m'énerve un peu, pourquoi on n'a pas un
outil du genre sous Free? Où on l'a mais je sais pas où...


On l'a pas, les associations scancode -> symbole sont programmées en dur dans
atkbd.c, tu n'as qu'à regarder c'est trés facile à repérer.


Allez, je m'y remet...

Merci,


--

Michel TALON

Avatar
MaXX
Paul Gaborit wrote:
À (at) Wed, 12 Oct 2005 13:37:53 +0000,
MaXX écrivait (wrote):
que dois-je mettre dans le device.hint?
mon idée est : hint.atkbd.0.flags="0X2" .
hint.atkbd.0.flags="0x2"

...avec un x minuscule pour faire plus clean.
Oups!...


Ça devrait le faire (positionner le flag à la bonne valeur).
Ceci étant, je ne saurais dire si ce flag est celui qui corrigera
votre problème de touches.
Je serais bien vite fixé... si j'ai plus de clavier sshd va probablement me

sauver ;-)

Merci,

--
MaXX


Avatar
MaXX
Michel Talon wrote:
MaXX wrote:
[...]

Y-a-t'il une bidoulle à faire qq part
pour que le clavier me donne ce code?


Sur les claviers "étendus" il peut y avoir des "scancodes" qui ne sont pas
reconnus par X. Autrement dit, quand tu tapes une touche, ça produit un
scancode. Le serveur X reconnaît éventuellement ce scancode (c'est
programmé en dur dans le serveur) et émet un "keycode". Ensuite il y a une
association keycode -> Symbole qui est programmable par xmodmap.
Bref si le scancode n'est pas programmé en dur tu es feinté, xev ne
reconnaît rien et xmodmap ne peut rien faire. Si par contre le scancode
est reconnu, alors il y a toujours moyen de se débrouiller qutte à
modifier les fichiers sous /usr/X11R6/lib/X11/xkb


Les valeur reconnues sont de 8 à 255 si j'en crois la sortie de xmodmap -pk.
j'ai du positionner le mapping pour le volume; facile vu que j'avais le
keycode avec xev. Mais toutes les autres touche multiédia et les
combinaisons avec Fn restent muettes. Fn annule en quelque sorte la
combinaison, il doit y avoir une astuce.

que dois-je mettre dans le device.hint?
mon idée est : hint.atkbd.0.flags="0X2" .
[...]


Là encore les scancodes sont analysés par le driver atkbd et il ne
reconnaît pas nécessairement tous les scancodes possibles. Il peut être
nécessaire de bidouiller le fichier. Sous Linux c'est plus facile, il y a
un outil pour faire sortir les scancodes bruts du clavier, et un autre
pour les remapper comme on veut.
J'ai lu ça... Et je dois dire que ça m'énerve un peu, pourquoi on n'a pas un

outil du genre sous Free? Où on l'a mais je sais pas où...

Allez, je m'y remet...

Merci,
--
MaXX


Avatar
Eric Masson
MaXX writes:

Je l'active où ce KBDIO_DEBUG??


Dans ton fichier de conf noyau sous la forme :
options KBDIO_DEBUG

Éric Masson

--
quand j'utilise la roulette avec la souris ps/2 weel mouse cros$oft aprés 2/3 recherches je subis un gel d'écran
soyez prudent il y a peut-être des risques d'esplosion du moniteur...
-+- FM in GNU : la souris rit, la roulette ruse et tout explose -+-

Avatar
MaXX
Michel Talon wrote:
J'ai lu ça... Et je dois dire que ça m'énerve un peu, pourquoi on n'a pas
un outil du genre sous Free? Où on l'a mais je sais pas où...
On l'a pas, les associations scancode -> symbole sont programmées en dur

dans atkbd.c, tu n'as qu'à regarder c'est trés facile à repérer.
Effectivement, à partir de la ligne 610 de atkbd.c, mais le plus intéressant

c'est à la ligne 590:
#if KBDIO_DEBUG >= 10
printf("atkbd_read_char(): scancode:0x%xn", scancode);
#endif

Je l'active où ce KBDIO_DEBUG??

Enfin, je vais laisser ça pour plus tard, j'en suis à "hello world" en C et
je sens que si je touche à ce truc je vais tout casser...

Merci pour tout,

--
MaXX


Avatar
espie
In article <diiukm$1ckp$,
Michel Talon wrote:
MaXX wrote:
Bonjour,
Je vien de finir d'installer Freebsd sur un Compaq Presario 700, Tout
fonctionne à merveille (lan,video,wifi,dvd,...) sauf 4 des 6 touches
multimédia. Vol+ et Vol- fonctionnent mais pour les autres impossible
d'avoir le keycode avec xev(1). Etrangement c'est pareil pour toutes les
combinaisons avec la touche Fn. Y-a-t'il une bidoulle à faire qq part pour
que le clavier me donne ce code?


Sur les claviers "étendus" il peut y avoir des "scancodes" qui ne sont pas
reconnus par X. Autrement dit, quand tu tapes une touche, ça produit un
scancode. Le serveur X reconnaît éventuellement ce scancode (c'est programmé
en dur dans le serveur) et émet un "keycode". Ensuite il y a une association
keycode -> Symbole qui est programmable par xmodmap.


D'apres mon experience, tu racontes des conneries.

Je connais au moins quelques claviers avec quelques touches qui ne
generent pas de scancodes, et ne risquent pas d'etre reconnues par le
pilote de clavier, sans que ca soit un probleme de X. Ces touches sont
directement gerees par le bios, la carte son, l'apm, l'acpi, ou que sais-je
encore. Par exemple, je te citerais bien les trois touches `volume+' et
`volume-', et `volume mute' qui generent des interruptions sur le peripherique
PCI maestro2, dans sa fonction carte son...

Sur certains portables, tu peux sans doute causer a l'acpi pour lui dire
de tout te passer. Sur d'autres, je te parie qu'il y a des bouts de pilote
specifiques sous windows pour reconnaitre ces touches.

Mais je suis tout a fait certain que la situation generale est plus complexe
que ta description naive.


Avatar
talon
Marc Espie wrote:

Mais je suis tout a fait certain que la situation generale est plus complexe
que ta description naive.

Ca se peut, mais ça se peut aussi que le problème que la personne a soit

simplement un problème de scancode non reconnu par le serveur X ou le pilote
du clavier. En tout cas ça m'est arrivé, et c'est arrivé à des tas d'autres
gens, voir Google. Que sur des portables certaines touches soient reliées
directement à du matériel particulier, je veux bien le croire.

--

Michel TALON