FreeBSD Handbook/Administração/Configuração e Ajuste/Ajustando com o sysctl
11.11 Ajustando com o sysctl
editarO 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
editarEm 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.