FreeBSD Handbook/Administração/Configuração e Ajuste/Ajustando com o sysctl



11.11 Ajustando com o sysctl

editar

O sysctl(8) é uma interface que permite que você faça mudanças em um sistema FreeBSD em tempo real. Isto inclui muitas opções avançadas da pilha TCP/IP e sistema de memória virtual que pode melhorar bastante o sistema para um administrador experiente. Mais de quinhentas variáveis do sistema podem ser lidas e definidas usando o sysctl(8).

Na sua essência, o sysctl(8) tem duas funções: ler e modificar configurações do sistema.

Para ver todas as variáveis que podem ser lidas:

% sysctl -a

Para ler uma variável em particular, por exemplo, kern.maxproc:

% sysctl kern.maxproc
kern.maxproc: 1044

Para configurar um valor em particular, use a sintaxe intuitiva variável=valor

# sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000

Configurações de variáveis do sysctl geralmente são strings, números ou boleanos (sendo um boleano 1 para sim ou 0 para não).

11.11.1. sysctl(8) Apenas para Leitura

editar

Em alguns casos pode ser desejável modificar valores sysctl(8) que possam apenas ser lidos. Enquanto isto não seja recomendável, algumas vezes também pode ser inevitável.

Por exemplo, em alguns modelos de computadores portáteis o dispositivo cardbus(4) não provará algumas faixas de memória, e causará falhas com erros parecidos com este:

   cbb0: Could not map register memory
   device_probe_and_attach: cbb0 attach returned 12

Casos como este acima geralmente requerem a modificação de algumas configurações padrão do sysctl(8) que são apenas para leitura. Para mudar esta situação o usuário pode colocar ``OIDs de sysctl(8) em seu arquivo local /boot/loader.conf. Configurações padrão estão localizadas no arquivo /boot/defaults/loader.conf.

Consertar o problema mencionado acima pode requerer que o usuário configure a opção hw.pci.allow_unsupported_io_range=1 no arquivo mencionado anteriormente. Agora o cardbus(4) funcionará adequadamente.