[Kernel] Recompiler pour accepter ma souris (résolu)

Reconnaissance et configuration du matériel / kernel linux
Répondre
Woki
Hankyu
Messages : 15
Inscription : mer. 04 juil. 2012, 14:41

[Kernel] Recompiler pour accepter ma souris (résolu)

Message par Woki »

Bonjour,

J'ai récemment fait l'acquisition d'une souris aux boutons programmables. Seulement quand je la connecte sous Arch, j'ai un message d'erreur, et elle ne fonctionne pas :

Code : Tout sélectionner

Jun 13 14:44:11 localhost kernel: [ 4223.061476] hid-generic: probe of 0003:04D9:A067.000D failed with error -22
Jun 13 14:44:11 localhost kernel: [ 4223.067934] hid-generic 0003:04D9:A067.000E: hiddev0,hidraw2: USB HID v1.10 Device [Holtek USB Gaming Mouse] on usb-0000:00:12.0-1/input2
En réalité, elle semble être reconnue uniquement comme un clavier. Et effectivement, si j'ai programmé des boutons sous windows pour correspondre à certaines touches du clavier, cela les affiche sous linux. J'ai bien entendu déjà testé de rebrancher/débrancher dans diverses conditions, rien.

J'ai donc cherché sur Internet, et j'ai trouvé ceci : https://bugs.archlinux.org/task/33322

En gros, la solution qui pourrait fonctionner serait de changer la constante HID_MAX_USAGES dans include/linux/hid.h (actuellement 12288) à une valeur plus grande que 32k. Ensuite, il faut recompiler le noyau.

J'ai déjà changé la variable dans /usr/src/linux-3.9.5-1-ARCH/include/linux/hid.h
Je voudrais donc juste recompiler le noyau. Quelles sont les commandes à lancer ? (Je ne pense pas que ça soit aussi "compliqué" que de partir depuis un noyau trouvé sur internet, le patcher, etc...)

Merci de votre aide !

Edit : solution au post #4
Dernière modification par Woki le ven. 14 juin 2013, 14:23, modifié 2 fois.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Kernel] Recompiler pour accepter ma souris

Message par FoolEcho »

Salut,

Mieux vaut passer par un PKGBUILD (et probablement utiliser le patch indiqué).

Pas testé pour ce cas précis ('suis pas expert en noyau non plus), mais en gros tu dois pouvoir simplement recompiler le module que tu veux plutôt que tout le kernel. Tu as des exemples de PKGBUILD sur AUR (cherche module/kernel).
Sinon, c'est, depuis le répertoire source du module (src/linux/drivers/hid je suppose ici) un machin du genre (tiré d'un PKGBUILD qui traîne):

Code : Tout sélectionner

make -C /usr/src/linux-`uname -r`/ M=`pwd` LE_MODULE_QUE_TU_VEUX.ko
gzip -9 LE_MODULE_QUE_TU_VEUX.ko
Ensuite copier LE_MODULE_QUE_TU_VEUX.ko.gz dans /lib/modules/`uname -r`/updates/drivers/<dépend du module>/
Et enfin depmod -a et modprobe LE_MODULE_QUE_TU_VEUX pour utiliser le module (le supprimer avant s'il existait par un modprobe -r).

D'où... PKGBUILD. :chinois:
«The following statement is not true. The previous statement is true.» :nage:
Woki
Hankyu
Messages : 15
Inscription : mer. 04 juil. 2012, 14:41

Re: [Kernel] Recompiler pour accepter ma souris

Message par Woki »

Salut,

Alors, j'ai regardé quelques exemples de PKGBUILD, et ça ne m'a pas l'air simple à faire du tout. Et surtout, comment trouver un PKGBUILD qui fasse bien ce qui est demandé ?
Recompiler tout le noyau est une opération lourde, je me doute. Mais, dans ce cas précis, est-ce que ce n'est pas plus simple ? Dans le dosier /usr/src/linux-3.9.5-1-ARCH , il semble y avoir tout ce qu'il faut, non ?

Tout ce qui concerne le noyau me semble encore bien sombre, alors si tu peux m'éclairer, je t'en prie.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Kernel] Recompiler pour accepter ma souris

Message par FoolEcho »

Woki a écrit :Dans le dosier /usr/src/linux-3.9.5-1-ARCH , il semble y avoir tout ce qu'il faut, non ?
Non. Ce ne sont juste ce qui permet de construire ou de compiler tout ou partie du noyau, mais sans du code source ça ne sert à rien.

Essaie ce PKGBUILD (je ne le publie pas sur AUR vu que 1-je ne sais pas s'il va fonctionner 2-c'est juste pour te dépanner en attendant que le patch soit intégré au kernel). Je me suis basé sur le lien qui fourni le patch conséquent:

Code : Tout sélectionner

pkgname=hid-holtek-mouse
_srcname=linux-3.9
pkgver=3.9.5
pkgrel=1
pkgdesc="Holtek mouse kernel module ( https://bugs.archlinux.org/task/33322 )"
arch=('i686' 'x86_64')
url="https://patchwork.kernel.org/patch/2595331/"
license=('GPL2')
makedepends=('linux-headers')
options=('!strip')
install=$pkgname.install
source=("http://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
        "http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz"
	"driver_holtek.patch::https://patchwork.kernel.org/patch/2595331/raw/"
)
md5sums=('4348c9b6b2eb3144d601e87c19d5d909'
         'aa22187ae5cd482a69097e9e59244491'
         '9c59fb9bf5c204fb021ecde391e60f29')

mod_dir=/lib/modules/`uname -r`/updates/drivers/hid/

prepare() {
  cd ${srcdir}/${_srcname}/
  patch -p1 -i ${srcdir}/driver_holtek.patch
}

build() {
  cd ${srcdir}/${_srcname}/drivers/hid
  make -C /usr/src/linux-`uname -r`/ M=`pwd` hid-holtek-mouse.ko
  gzip -9 hid-holtek-mouse.ko
}

package() {
  cd ${srcdir}/${_srcname}/drivers/hid
  mkdir -p ${pkgdir}/${mod_dir}
  install -D -m 0644 hid-holtek-mouse.ko.gz ${pkgdir}/${mod_dir}/hid-holtek-mouse.ko.gz
}
Le hid-holtek-mouse.install:

Code : Tout sélectionner

post_install() {
  echo " > Running depmod now..."
  depmod -a
  echo " > You have to reboot or modprobe hid-holtek-mouse to use the driver."
}

post_upgrade() {
  post_install
}

post_remove() {
  echo " > Running depmod now..."
  depmod -a
}
Tu sauves ces deux fichiers dans un répertoire puis tu lances makepkg -sr (ou -sir si tu veux installer dans la foulée) puis tu installes le paquet obtenu avec pacman -U. Après installation, soit tu redémarres, soit tu lances modprobe hid-holtek-mouse comme indiqué (ou même juste reconnecter la souris devrait suffire).

Sans garantie. :copain:
«The following statement is not true. The previous statement is true.» :nage:
Woki
Hankyu
Messages : 15
Inscription : mer. 04 juil. 2012, 14:41

Re: [Kernel] Recompiler pour accepter ma souris

Message par Woki »

... Ça fonctionne !

Whoa, merci beaucoup ! :bravo:

Pour résumer, le PKGBUILD va télécharger et patcher le noyau, c'est ça ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17230
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Kernel] Recompiler pour accepter ma souris (contourné)

Message par benjarobin »

Non, il construit juste un module du noyau, module qui sera chargé à la place du code existant.
Donc ce n'est techniquement pas un patch du noyau, tu remplace juste un bloc par un autre

Mais c'est en effet un peu bourrin de télécharger toutes les sources du kernel pour n'utiliser que 2 ou 3 fichiers sources qui sont en effet patché.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Kernel] Recompiler pour accepter ma souris (contourné)

Message par FoolEcho »

benjarobin a écrit :Mais c'est en effet un peu bourrin de télécharger toutes les sources du kernel pour n'utiliser que 2 ou 3 fichiers sources qui sont en effet patché.
... vais pas m'amuser à récupérer une partie des sources pour un machin qui ne me sert même pas. :copain:

Aussi, tu devras modifier en conséquence et réinstaller ce paquet au fil des révisions du paquet linux afin de conserver la compatibilité (ça vaudrait peut-être le coup de le mettre sur AUR finalement, je ne sais pas -- fonction de l'intégration prévue ou pas).

Sinon... Pourquoi mettre le sujet en contourné si ta souris fonctionne désormais ? (à moins que tu considères que ça sera résolu quand le noyau intégrera ce patch officiellement, il n'y a pas d'alternative)
«The following statement is not true. The previous statement is true.» :nage:
Woki
Hankyu
Messages : 15
Inscription : mer. 04 juil. 2012, 14:41

Re: [Kernel] Recompiler pour accepter ma souris (contourné)

Message par Woki »

D'accord.

Donc au fil des versions, il me faudra juste changer les liens dans sources() pour les faire pointer au bon endroit ?
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Kernel] Recompiler pour accepter ma souris (résolu)

Message par FoolEcho »

Oui.

Ceci étant, je l'ai placé sur AUR avec quelques révisions: hid-holtek-mouse.
Je ne suis pas calé sur ces questions de modules, donc je ne sais pas s'il y a mieux à faire -- en dehors d'affiner les sources à récupérer :wink: (je pense notamment à l'utilisation du répertoire extramodules...). Bref, à creuser.

En espérant que ce patch (ou un similaire) sera incorporé dans le kernel à terme...
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Kernel] Recompiler pour accepter ma souris (résolu)

Message par FoolEcho »

Pour info, je remonte le sujet car je vais demander la suppression du paquet sur AUR: le module hid-holtek-mouse est en effet désormais intégré au noyau 3.11. :chinois:
«The following statement is not true. The previous statement is true.» :nage:
Répondre