Como adicionar parâmetros do módulo kernel?

19

Como adicionar um parâmetro de módulo do kernel no Ubuntu 11.04?

Posso usar o /etc/modulearquivo? Se sim, como?

waterloo2005
fonte
1
Você quer dizer parâmetros como i915.modeset=1?
Lekensteyn
Quero dizer 'opções thinkpad_acpi fan_control = 1' em um arquivo em /etc/modprobe.d/ ou 'thinkpad_acpi fan_control = 1' em / etc / modules?
precisa

Respostas:

18

/etc/modulesparece estar carregado por /etc/init/module-init-tools.conf. O primeiro argumento é o nome do módulo, outros argumentos são os parâmetros. Adicionar o seguinte a /etc/modulesparece bom:

thinkpad_acpi fan_control=1

Para carregar este módulo e definir esses parâmetros no estágio inicial da inicialização, adicione a linha anterior ao /etc/initramfs-tools/modulesarquivo. Após uma alteração nesse arquivo, você precisa regenerar o ramdisk:

sudo update-initramfs -u

Como uma alternativa possível, você pode tentar adicionar as opções à linha do kernel (eu não a testei, mas parece funcionar com configurações como i915.modeset=1. Edite /etc/default/grube localize a linha com GRUB_CMDLINE_LINUX_DEFAULT="quiet splash". Substitua por algo como:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash thinkpad_acpi.fan_control=1"

Para obter uma lista de opções para um módulo do kernel:

modinfo -p thinkpad_acpi

Isso não funcionou i915, pois eu tive que executar:

modinfo i915 | grep ^parm

Para obter o valor atual de um parâmetro do módulo, execute:

sudo cat /sys/module/MODULE/parameters/PARAM

Para o fan_controlparâmetro do thinkpad_acpimódulo, você deve executar:

sudo cat /sys/module/thinkpad_acpi/parameters/fan_control

Se esta função retornar um erro, verifique se o módulo foi carregado e se a opção existe ou não.

Lekensteyn
fonte
2
Como saber se um parâmetro do módulo entrou em vigor? graças
waterloo2005
@ waterloo2005: Você pode usar /syspara isso. Veja a resposta revisada.
Lekensteyn
Acho que não adiciono parâmetro no / etc / modules. Eu só preciso adicioná-los em /etc/modprobe.d/. Graças
waterloo2005
A distinção entre /etc/modulese /etc/modprobe.d: o primeiro aplica-se aos módulos carregados na fase inicial de arranque (direita depois começa Plymouth), este último é carregado mais tarde (por initscripts)
Lekensteyn
Onde posso encontrar instruções oficiais sobre isso? graças
waterloo2005
10

Configurando opções do módulo usando arquivos em /etc/modprobe.d/

Os arquivos no diretório /etc/modprobe.d/ podem ser usados ​​para passar as configurações do módulo para o udev, que usará o modprobe para gerenciar o carregamento dos módulos durante a inicialização do sistema. Os arquivos de configuração neste diretório podem ter qualquer nome, pois terminam com a extensão .conf. A sintaxe é:

/etc/modprobe.d/myfilename.conf
---------------------------------------------------------
options modname parametername=parametervalue

Por exemplo:

/etc/modprobe.d/thinkfan.conf
---------------------------------------------------------
# On ThinkPads, this lets the 'thinkfan' daemon control fan speed
options thinkpad_acpi fan_control=1

Fonte: Módulos do kernel - ArchWiki


Até onde eu sei, você pode usar o método mencionado para módulos que são carregados automaticamente no momento da inicialização (para evitar descarregar e recarregar módulos com parâmetros especiais, como pode ser o caso de módulos de driver) e o /etc/modulesarquivo de módulos que são não carregado automaticamente no momento da inicialização.

user2366867
fonte
7

Com o Ubuntu 16.04, não é mais possível incluir os parâmetros do módulo do kernel /etc/modules. Um erro é gerado no log de inicialização dizendo que não é possível encontrar "my_kernel_mod myparam = x".

Em vez disso, é necessário colocar apenas o nome do módulo do kernel /etc/modulese colocar as opções em /etc/modprobe.d/myfilename.conf (como sugerido acima ).

Pierz
fonte