Como recarregar corretamente um módulo do kernel?

12

Questões relacionadas

Não consigo recarregar um módulo do kernel para tentar novos sinalizadores.
Exemplo: o thinkpad_acpipadrão é sem fan_control=1. Portanto, se meu computador estiver muito quente e os ventiladores não atingirem a velocidade máxima, às vezes pode ser útil carregar temporariamente o módulo fan_controle configurá-lo por alguns minutos para a velocidade mais alta possível e mudar tudo de volta para o pós-processamento normal.
Isso não é possível porque parece que alguns módulos do kernel dependem de outros e parece que os kernels modernos do Linux estão verificando isso.
Então, o que eu fiz até agora:

  • Verificando as dependências
    • modinfo -F depends thinkpad_acpi
  • Tente descarregar esses módulos
    • rmmod ou modprobe -r $dependencies
    • Alguns módulos dependem novamente para outros, tente descarregá-los também. Não funciona, mesmo se não houver 'dependências' (ou pelo menos o modinfo me diz isso)
  • Google muito para modprobe: FATAL: Module x is in use.
  • Reading tldp
queryAllThings
fonte
Você sempre pode alterar a opção e reiniciar. Uma pergunta melhor é por que o computador está esquentando.
terdon
Desculpe, uma reinicialização é exatamente o que eu não quero fazer e meu computador pode esquentar porque a carga da CPU é rápida ou a tampa está fechada ou o computador está fora e o sol está brilhando;).
queryAllThings
OK, outra opção seria controlar a velocidade do seu ventilador. Dê uma olhada na página relevante do tthinkwiki: thinkwiki.org/wiki/How_to_control_fan_speed
terdon
1
Eu sei! Citação: Para ativar o controle do ventilador, o parâmetro do módulo fan_control = 1 deve ser fornecido ao thinkpad-acpi. Eu só quero saber se é possível recarregar um módulo do kernel. Se estiver depurando sem fio, também é necessário recarregar alguns módulos com outros sinalizadores.
queryAllThings
Não sei como fazer com 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

Respostas:

4

Se o descarregamento forçado estiver ativado no kernel ( zgrep FORCE_UNLOAD /proc/config.gzdiz =y), você pode rmmod -fusar o módulo problemático do kernel para forçá-lo a descarregar.

De acordo com o patch que permite isso , isso é apenas para desenvolvedores de kernel e pessoas desesperadas.

O melhor é provavelmente descobrir por que o módulo está em uso e por qual processo, mas pelo menos o descarregamento forçado deve possibilitar o recarregamento do módulo novamente.

Alexander
fonte
2
Qual parece ser o padrão no Debian. PS: No Debian /proc/config.gzestá localizado em /boot/config-$(uname -r).gz.
queryAllThings
e grep FORCE_UNLOAD /boot/config-$(uname -r)no Ubuntu.
Sambaaba