# [kernel 4.9.16] Plus de clavier (résolu)

## Thoma HAUC

Bonsoir,

Je viens de passer du kernel 4.4.26 au kernel 4.9.16.

Sous X (sddm), impossible d'avoir un clavier fonctionnel, la souris fonctionne très bien par contre.

Si je repasse au kernel 4.4.26, tout va bien.

Est-ce un problème de configuration du kernel ?

J'ai fait un emerge @module-rebuild et un emerge @x11-module-rebuild.

Est-ce que j'ai oublié quelque chose ?

D'avance merci

ThomaLast edited by Thoma HAUC on Sat Apr 08, 2017 12:11 pm; edited 2 times in total

----------

## DuF

Bonjour,

Si le seul changement que tu as réalisé est le passage au kernel 4.9.16 alors il y a des chances que le problème vienne de la configuration du kernel.

Comment compiles-tu ton kernel (ex: utilises-tu genkernel, te bases-tu sur l'ancien fichier de configuration dans /etc/kernels/*, utilises-tu menuconfig et autres, etc.) ?

Quel est le pilote pour ton clavier ? Utilises-tu "x11-drivers/xf86-input-evdev" et l'as-tu recompilé avec xorg ?

Tu peux aussi comparer ta liste de modules qui sont chargés avec lsmod quand tu es en version 4.4.26 et quand tu es en 4.9.16 (pour ce dernier, une fois que X est démarré et que tu perds le clavier, essaie de te connecter en SSH si besoin avec un téléphone portable ça fera l'affaire)

@+

----------

## Thoma HAUC

Bonjour DuF,

Pour le kernel, je fais :

cd /usr/src

cp linux-4.4.26-gentoo/.config linux-4.9.16-gentoo/ # je reprends l'ancien fichier de config

rm linux

ln -s linux-4.9.16-gentoo linux

cd linux

make menuconfig # un coup de menuconfig

make && make modules_install

cp arch/x86/boot/bzImage /boot/vmlinuz-4.9.16-gentoo

genkernel --install  --mdadm  --no-ramdisk-modules initramfs # un coup de genkernel parce que mes disques sont RAIDés

grub-mkconfig -o /boot/grub/grub.cfg # on met à jour la config de grub

emerge @module-rebuild # on recompile les modules du kernel

emerge @x11-module-rebuild # on recompile les modules de X

-> x11-drivers/xf86-input-evdev-2.10.5

Voici la liste des modules avec le noyau 4.4.26 :

 *Quote:*   

> Module    Size    Used by
> 
> snd_seq_dummy    1698    0
> 
> snd_seq    44759    1    snd_seq_dummy
> ...

 

Je vais faire la liste des modules sur le noyau 4.9.16.

Thoma

----------

## netfab

 *Quote:*   

> 
> 
> cd linux
> 
> make menuconfig # un coup de menuconfig
> ...

 

Le make menuconfig ne sert à rien si tu ne reconfigures pas ton kernel.

Si tu veux réutiliser ton ancien fichier de config, tu dois faire un make oldconfig (après avoir copié ton ancien fichier de config comme tu le fais), et répondre aux questions que le script te posera, en sachant généralement qu'à chaque question :

 - le choix en majuscule est la valeur par défaut : y/N/m --> N est le choix par défaut

 - appuyer sur entrée sélectionne la valeur par défaut

Il y a 2 jours  je suis passé d'un kernel vanilla 4.4.39 à 4.9.20, aucun souci.

----------

## Thoma HAUC

Bonjour,

Je viens de refaire toute la procédure avec un make oldconfig et le résultat est identique.

J'ai arrêté le service xdm pour voir si le clavier fonctionne hors de X.

Et... pas de clavier (USB)...

Qu'en pensez-vous ?

Thoma

----------

## sebB

C'est quoi ton clavier?

Peux tu poster lsusb sous les 2 kernels.

Rien dans dmesg?

Fais un diff des 2 configs voir si un truc nous saute aux yeux.

----------

## Thoma HAUC

Bonsoir,

Effectivement, dans le noyau 4.9.16, pas de trace de détection du clavier USB...

Pourtant, les deux lsusb renvoie 

 *Quote:*   

> Bus 002 Device 002: ID 8087:8001 Intel Corp. 
> 
> Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> 
> Bus 001 Device 002: ID 8087:8009 Intel Corp. 
> ...

 

Le dmesg du noyau 4.4.26 le détecte bien :

 *Quote:*   

> [    0.898779] input: Microsoft Microsoft® Digital Media Keyboard as /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.0/0003:045E:00B4.0001/input/input5
> 
> [    0.953835] hid-generic 0003:045E:00B4.0001: input: USB HID v1.11 Keyboard [Microsoft Microsoft® Digital Media Keyboard] on usb-0000:00:14.0-3/input0
> 
> [    0.967214] input: Microsoft Microsoft® Digital Media Keyboard as /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.1/0003:045E:00B4.0002/input/input6
> ...

 

Pas de trace du clavier dans le dmesg du noyau 4.9.16.

Je vais comparer les deux fichiers .config demain.

Si vous avez des idées entre temps, je suis preneur.

Thoma

----------

## DuF

Bonjour,

Un point de détail mais genkernel (pour moi genkernel-next car étant sous systemd) a une option qui permet de lui faire prendre en compte un fichier de config directement quand tu lances la commande genkernel, par exemple chez moi je fais : genkernel --plymouth --plymouth-theme=solar --mdadm --udev --menuconfig --kernel-config=/etc/kernels/kernel-config-x86_64-4.9.6-gentoo-r1 --install all (il est possible de faire pointer l'option --kernel-config vers /usr/srv/linux-*/.config)

En utilisant genkernel ainsi cela correspond à tes actions suivantes mais en une fois et de manière cohérente : 

```
make menuconfig 

make && make modules_install

cp arch/x86/boot/bzImage /boot/vmlinuz-4.9.16-gentoo

genkernel --install --mdadm --no-ramdisk-modules initramfs 
```

Maintenant clairement le problème se situe quand tu boot sur ton noyau 4.9.16 (même si le lsusb laisse supposer qu'il a identifiée la souris et le clavier). Je vérifierai donc la présence des pilotes qui vont bien dans la configuration du noyau (comme tu as dit en comparant les 2 fichiers de .config mais aussi en refaisant une passe sur le wiki : https://wiki.gentoo.org/wiki/USB/Guide).

Bon courage

----------

## Thoma HAUC

Bonjour,

lsusb permet juste de voir quels périphériques sont présents même en absence de pilote associé.

J'ai fait un tour dans la configuration du noyau, j'ai aussi suivi la page du wiki suggéré mais rien à signaler tout semble correcte.

Je ne comprends vraiment pas ce qui cloche... Sachant que pour l'USB, j'ai les mêmes options sur les deux noyaux. Quelques pilotes supplémentaires sont apparus mais ils ne sont pas lié aux HIDs.

Thoma

----------

## sebB

Peux-tu tester avec le 4.4.52?

Juste pour vérifier...

----------

## DuF

pour le noyau 4.9.16 tu as quoi dans cette section : Device Drivers → HID support → Special HID drivers ?

----------

## Thoma HAUC

@ sebB :

Avec le noyau 4.4.52, le clavier fonctionne très bien...

@ DuF :

Les deux noyaux sont configurés de la même manière dans la rubrique Device Drivers → HID support → Special HID drivers.

J'ai vu une entrée Microsoft non-fully HID-compliant devices présente dans les deux noyaux.

Je vais l'activer pour voir.

----------

## Thoma HAUC

Merci pour votre aide.

Il a fallu activer Microsoft non-fully HID-compliant dans la rubrique Device Drivers → HID support → Special HID drivers du noyau 4.9.xx (j'ai essayé les versions 4.9.6-gentoo-r1 et 4.9.16-gentoo).

Avec les noyaux 4.4.26-gentoo et 4.4.52-gentoo, cette option n'était pas nécessaire.

Par curiosité, si quelqu'un a une explication je suis preneur.

Thoma

----------

## netfab

 *Thoma HAUC wrote:*   

> Merci pour votre aide.
> 
> Il a fallu activer Microsoft non-fully HID-compliant dans la rubrique Device Drivers → HID support → Special HID drivers du noyau 4.9.xx (j'ai essayé les versions 4.9.6-gentoo-r1 et 4.9.16-gentoo).
> 
> Avec les noyaux 4.4.26-gentoo et 4.4.52-gentoo, cette option n'était pas nécessaire.
> ...

 

Probablement qu'entre les versions 4.4.x et 4.9.x, un commit du pilote CONFIG_HID_MICROSOFT a fait que ton clavier est maintenant reconnu par ce pilote.

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/drivers/hid/hid-microsoft.c?id=c847a89a871e1ea21d45120c3045c9b443e258f5

----------

## DuF

C'était effectivement l'option que j'avais vu dans la 4.9.16 et du coup bonne nouvelle que ça fonctionne pour toi.

Après des fois les développeurs peuvent partager un pilote en 2 ou plus de parties, quand il devient trop gros à maintenir de manière générique ou quand un pilote doit ajouter des "contournements" pour que certains périphériques fonctionnent, du coup les équipes peuvent dire on a un pilote générique sans "hack" et le reste on va le séparer au gré des besoins.

----------

