Guia Prático para o Debian GNU/Linux
Capítulo 10 - Como lidar com o
Kernel no Debian
10.1 Como atualizar o Kernel no Debian
O kernel é o núcleo do sistema. É o que conhecemos como Linux. O
Debian pretende ser um sistema independente de kernel, portanto você pode usar o
Debian GNU/Hurd ao invés do Debian GNU/Linux e logo será possível usar Debian
GNU/BSD.
Para atualizar kernel no Debian basta usar o apt-cache para
descobrir quais versões estão disponíveis e então usar o apt-get
para baixar a nova versão. Os pacotes de kernel se chamam
kernel-image-versão onde versão é a versão que se quer
usar.
Veja Como
procurar pacotes, Seção 3.4 e Instalar
pacotes com APT, Seção 2.3 para saber como fazer isso.
10.2 Como atualizar para o Linux 2.4
O kernel 2.4 não é suportado oficialmente para a versão 2.2 do Debian. A
versão 3.0 virá com ele como opção. No entanto, Adrian Bunk colocou à disposição
um set de pacotes disponíveis para quem quer atualizar o kernel para 2.4.
As linhas APT para ele é:
deb http://www.fs.tum.de/~bunk/debian potato main
deb-src http://www.fs.tum.de/~bunk/debian potato main
Note que é importante uma atualização de vários pacotes antes de se atualizar
o kernel para que ele funcione corretamente, não force uma situação diversa
disso.
10.3 Como compilar kernel no Debian
Todos já estão acostumados àquela imensa lista de comandos para se compilar
kernel (bem, nem todos). No Debian a coisa é bem mais simples.
Para começar veja Como
instalar pacotes, Capítulo 2 e instale o pacote kernel-package
.
Você precisa também, claro, do fonte do kernel. Você pode baixá-lo a partir de
http://www.kernel.org
ou
instalar o pacote kernel-source-versão
correspondente. Nesse último
caso, um arquivo será instalado em /usr/src
com nome
kernel-source-versão.tar.bz2
descompacte-o e crie um link do
diretório recém criado para /usr/src/linux
, dessa forma:
# cd /usr/src
# tar jxpvf kernel-source-versão.tar.bz2
# ln -sf kernel-source-versão linux
Depois basta fazer, dentro do diretório principal do kernel --
/usr/src/linux
.:
$ make menuconfig
$ make-kpkg clean
$ make-kpkg kernel_image
Você pode substituir make menuconfig por make
xconfig para fazer a configuração pelo X. Se esses comandos falharem,
você pode ter de instalar o pacote libncurses5-dev
(ou
libncurses4-dev
em sistemas mais antigos).
Esses comandos criarão um .deb do Kernel recém compilado. Basta instalar como
descrito em Como
instalar pacotes .deb, Seção 2.1.
Você também pode definir 'revisões' para cada kernel que construir. Para isso
use --revision, por exemplo:
$ make-kpkg --revision kov1.0 kernel_image
Note que é necessário que haja dígitos na sua 'revisão'. Depois do kernel ser
instalado ele perguntará se deseja criar um disco de boot e se deseja rodar o
lilo. Normalmente é uma boa idéia conferir o /etc/lilo.conf antes de rodar o
lilo novamente, mas normalmente não haverá problemas em deixar que o processo de
construção o faça, já que os links vmlinuz e
vmlinuz.old são recriados corretamente durante a instalação do deb
do kernel.
10.4 Como configurar os módulos do kernel com o modconf
No Debian, para lidar com módulos de kernel existe uma ferramenta chamada
modconf. Ela é a ferramenta usada para configurar os módulos
durante a instalação e pode ser chamada depois, como root.
Logo depois de entrar no modconf, uma lista de seções será listada. Dentro
das sessões são listados os vários módulos que podem ser instalados (ou seja,
carregados) no sistema.
Para carregar um módulo basta dar enter sobre ele. Alguns módulos requerem
opções adicionais para serem carregados como por exemplo as placas NE 2000 ISA.
Logo que você digita enter, o modconf perguntará por essas opções. Para a placa
NE 2000 do meu 486, por exemplo eu coloco:
io=0x300 irq=5
Essas opções e os módulos carregados serão guardados para toda vez que se
iniciar a máquina ter-se a mesma configuração.
10.5 Como configurar módulos na mão
Os módulos que serão carregados na inicialização do sistema podem ser
configurados também sem o modconf. Basta listá-los um por linha no arquivo
/etc/modules.
Só há um problema. Alguns módulos, como o da placa NE 2000 precisam de opções
para serem carregados. Essas configurações, num sistema comum seriam
configuradas em /etc/modules.conf. Mas, o pacote modutils do Debian
sempre sobrescreve esse arquivo porque o gera automaticamente, a partir de
vários outros.
O certo é criar um arquivo em /etc/modutils/ e rodar o programa
update-modules
. Por exemplo. Para minha placa de som Opti931 (clone
de Sound Blaster Pro), que usa o módulo mad16.o, eu uso o seguinte, no arquivo
/etc/modutils/mad16:
alias mixer0 mad16
alias audio0 mad16
alias midi0 mad16
alias synth0 opl3
options sb mad16=1
options mad16 irq=10 dma=0 dma16=1 io=0x530 joystick=1 cdtype=0
options opl3 io=0x388
post-install mad16 /sbin/adreroute 14 8 15 3 16 6
E coloco "mad16" no /etc/modules. Mais informações
nas manpages insmod(8)
, modprobe(8)
,
modules(5)
e modules.conf(5)
.