Até onde eu sei, você pode usar modprobe
para ajustar os parâmetros somente quando o recurso em questão foi compilado como um módulo - e você está carregando o módulo em primeiro lugar. Para definir os parâmetros do módulo persistentemente, você terá o diretório /etc/modprobe.d
. (Geralmente você deve deixar /usr/lib/modprobe.d
para as configurações padrão da distribuição - todos os arquivos podem ser sobrescritos pelas atualizações de pacotes).
Se o módulo em questão foi construído no kernel principal, então você deve usar a sintaxe <module_name>.<parameter_name>=<value>
, normalmente como uma opção de inicialização. Se o parâmetro em questão estiver disponível como uma configuração sysctl
, você poderá usar o comando sysctl -w
para ajustá-lo também.
Todos os parâmetros de sysctl disponíveis são apresentados em /proc/sys
: por exemplo, kernel.domainname
está em /proc/sys/kernel/domainname
. Nem todos os parâmetros do módulo estão disponíveis como sysctls, mas alguns podem ser.
Se um módulo carregável já tiver sido carregado e você desejar alterar seus parâmetros imediatamente sem descarregá-lo, será possível gravar o novo valor em /sys/module/<module_name>/parameters/<parameter_name>
. Se o módulo não puder aceitar a reconfiguração dinâmica para esse parâmetro, o arquivo será somente leitura.
Pelo menos no meu sistema, kernel.domainname
é um parâmetro sysctl para o kernel principal e tentar alterá-lo com modprobe
não funcionará:
# sysctl kernel.domainname
kernel.domainname = (none)
# modprobe kernel domainname="example.com"
modprobe: FATAL: Module kernel not found in directory /lib/modules/<kernel_version>
# sysctl kernel.domainname
kernel.domainname = (none)
Em poucas palavras: Se você não tiver certeza, primeiro procure em /proc/sys
ou a saída de sysctl -a
: se o parâmetro que você está procurando não estiver lá, ele não é um parâmetro sysctl e provavelmente é um parâmetro do módulo (ou o módulo que forneceria o sysctl não está atualmente carregado, neste caso, é melhor definir o valor como um parâmetro do módulo de qualquer maneira - tentar definir um sysctl pertencente a um módulo que não está atualmente carregado produzirá apenas um erro).
Em seguida, descubra a qual módulo o parâmetro pertence. Se o módulo estiver embutido no kernel, você provavelmente terá que usar uma opção de boot; se for carregável com modprobe
(ou seja, o respectivo arquivo <module>.ko
existe em algum lugar na árvore de diretórios /lib/modules/<kernel version>/
), você poderá usar modprobe
e / ou /etc/modprobe.d/
.