Comment puis-je recharger correctement un module du noyau?

12

Question connexe

Je ne peux pas recharger un module du noyau pour essayer de nouveaux indicateurs.
Exemple: la thinkpad_acpivaleur par défaut est sans fan_control=1. Donc, si mon ordinateur fonctionne vraiment à chaud et que les ventilateurs n'atteignent pas leur vitesse maximale, il peut parfois être utile de charger temporairement le module avec fan_controlet de régler le ventilateur pendant plusieurs minutes à la vitesse la plus élevée possible et de tout rétablir à des mots postérieurs normaux.
Ce n'est pas possible car il semble que certains modules du noyau dépendent d'autres et il semble que les noyaux Linux modernes le vérifient.
Alors qu'est-ce que j'ai fait jusqu'à présent:

  • Vérification des dépendances
    • modinfo -F depends thinkpad_acpi
  • Essayez de décharger ces modules
    • rmmod ou modprobe -r $dependencies
    • Certains modules dépendent à nouveau d'autres, essayez de les décharger aussi. Ne fonctionne pas, même s'il n'y a pas de «dépendances» (ou du moins, modinfo me le dit)
  • Google beaucoup pour modprobe: FATAL: Module x is in use.
  • Lecture de tldp
queryAllThings
la source
Vous pouvez toujours changer l'option et redémarrer. Une meilleure question est de savoir pourquoi votre ordinateur chauffe.
terdon
Désolé, un redémarrage est exactement ce que je ne veux pas faire et mon ordinateur peut devenir chaud parce que la charge du processeur est rapide, ou le couvercle est fermé, ou l'ordinateur est à l'extérieur et le soleil brille;).
queryAllThings
OK, une autre option serait de contrôler la vitesse de votre ventilateur. Jetez un œil à la page tthinkwiki pertinente: thinkwiki.org/wiki/How_to_control_fan_speed
terdon
1
Je sais! Quote: Pour activer le contrôle du ventilateur, le paramètre du module fan_control = 1 doit être donné à thinkpad-acpi. Je veux juste savoir s'il est possible de recharger un module du noyau. Si je débogue sans fil, il est également nécessaire de recharger certains modules avec d'autres indicateurs.
queryAllThings
Je ne sais pas comment faire avec snd_hda_intel:: $ sudo rmmod -f snd_hda_intel rmmod: ERROR: ../libkmod/libkmod-module.c:769 kmod_module_remove_module() could not remove 'snd_hda_intel': Resource temporarily unavailable rmmod: ERROR: could not remove module snd_hda_intel: Resource temporarily unavailable \
Tomislav Nakic-Alfirevic

Réponses:

4

Si le déchargement forcé est activé dans le noyau ( zgrep FORCE_UNLOAD /proc/config.gzdit =y), vous pouvez rmmod -fle module du noyau problématique, pour forcer le déchargement.

Selon le patch qui permet cela , ce n'est que pour les développeurs du noyau et les personnes désespérées.

Le mieux est probablement de comprendre pourquoi le module est utilisé et par quel processus, mais au moins forcer le déchargement devrait permettre de recharger à nouveau le module.

Alexandre
la source
2
Ce qui semble être la valeur par défaut sur Debian. PS: Sur Debian /proc/config.gzse trouve sous /boot/config-$(uname -r).gz.
queryAllThings
et grep FORCE_UNLOAD /boot/config-$(uname -r)sur Ubuntu.
sabalaba