terça-feira, 25 de agosto de 2009

Trabalhando com módulos

Objetivos
Devemos saber identificar os modulos do nosso hardware, e configura-los corretamente;
Também devemos saber a diferença entre um modulo e um driver.

Introdução
Quando instalamos um Debian, RedHat, Suse, Slackware, entre outras distribuição, estamos utilizando um kernel que foi compilado pelos desenvolvedores da distribuição.
O que kernel que vem por default em uma distriuição, deve ser capaz de rodar praticamente qualquer PC e dar suporte a quaisquer tipos de recursos que o usuário pretenza utilizar, o desenvolvedor compila um kernel que fornece todas as funcionalidades básicas, e , separando, compila pedaços de codigo que dão suporte a funcionalidades mais específicas. Esses pedaços de codigo são os chamados modulos.
Dessa forma, quando o sistema é carregado, um kernel basico se coloca na memoria e passa a controlar a maquina. Neste ponto são verificadas outras funcionalidades que se espera que o kernel de suporte, como por exemplo utilizar uma partição XFS. Neste momento, se o kernel não possuir suporte nativo a esse file system ele irá verificar se o modulo que dá suporte a ele foi compilado. Se esse modulo for encontrado, ele será carregado expandindo as funcionalidades do kernel.

Em um sistema como esse, haverá diversos modulos carregados e um número maior ainda que não estará sendo utilizado, mas disponível.

Os moduloes disponíveis, em geral, encontra-se no diretorio /lib/modules, e os modulos que estão carregados podem ser visualizados com o comando lsmod.
Ao mesmo tempo que a capacidade de subir modulos é uma vantagem do ponto de vista que apenas os modulos realmente necessários serão carregados, há a desvantagem de fragmentação do kernel na memoria.



Pratica dirigida

1- Determine qual versão do kernel está rodando:

# uname -a

2 -Determine quais modulos estão carregados:

# lsmod

# cat /proc/modules

3 – Determine quais modulos estão compilados (disponíveis):

# modprobe -l

4 – Determine quais modulos estão compilados explorando o diretorio /lib/modules:

# find /lib/modules/$(uname -r) -name '*ko'

6 – Determine para que serve o modulo chamado ext3:

# modinfo ext3

7 – Determine quais modulos são utilizados pelo dispositivo do cdrom:

# lsmod |grep cdrom

8 – Tente remover o modulo cdrom utilizado o rmmod:

# rmmod cdrom

9 – Remova o modulo ide_cd com rmmod já que ele está utilizando o modulo cdrom:

# rmmod ide_cd

10 – Verifique que o modulo ide_cd foi removido mas o cdrom ainda está carregado:

# lsmod |grep ide_cd

# lsmod |grep cdrom

11 – Já que o modulo cdrom não está mais sendo utilizado podemos remove-lo:

# rmmod cdrom

# lsmod |grep cdrom

12 – Remova o modulo cdrom da memoria utilizando o comando “modprobe -r”:

# modprobe -r cdrom

13 – Remova o modulo cdrom da memoria utilizando o comando “modprobe -r”:

# modprobe -r ide_cd


14 – Verifique que o ide_cd foi removido e que o cdrom....

# lsmod |grep ide_cd
# lsmod |grep cdrom

15 – Já que removemos o suporte ao cd-rom, vamos restaura-lo:

# insmod ide_cd

# insmod $(modprobe -l ide_cd)

# insmod $(modprobe -l cdrom)

# lsmod |grep cdrom

15 - Identique qual é a placa de rede do seu computador:

# lspci |grep -i eth

16 – Determine se o modulo/placa de rede suportam operar em modo full duplex:

# modinfo 8139too

4 – Como faço para que o modulo seja carregado durante o boot?

# echo >> /etc/modules

Exercicios teoricos

1- Qual a diferença entre “lsmod” e “modprobe -l”?

2 – Qual a diferença entre “insmod” e “modprobe -i”?

3 – Qual diferença entre “rmmod” e “modprobe -r”?

DICA LPI:O comando que exibe o kernel em uso, e suas opções: uname -a


0 comentários:

Postar um comentário