You are on page 1of 19

Linux System Administration 456 Mdulos

www.4linux.com.br

-2

Sumrio
Mdulos...................................................................................................................................... 3 1.1. Objetivos :....................................................................................................................... 3 1.2. Comandos........................................................................................................................ 4 1.3. Exemplo de configurao da placa de som...................................................................13 1.4. Exemplo de configurao da placa de rede..................................................................16 REFERNCIAS BIBLIOGRFICAS.................................................................................................................... 20 ANEXOS................................................................................................................................... 22 Primeiro anexo..................................................................................................................... 23
Tpico do Anexo ............................................................................................................................ 23

ndice de tabelas ndice de Figuras

Mdulos - 3

Mdulos

1.1. Objetivos :
Entender como trabalhar com mdulos no Linux.

Mdulos - 4

1.2. Comandos
A primeira coisa que preciso pensar quando se fala em dispositivos no Linux, list-los:

#lspci 01:00.0 VGA compatible controller: nVidia Corporation GeForce 8500 GT (rev a1) 03:00.0 04:01.0 Ethernet Ethernet controller: controller: Realtek Semiconductor Co., Ltd. Inc. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 01) Atheros Communications AR5212/AR5213 Multiprotocol MAC/baseband processor (rev 01)
O comando lspci ir imprimir na tela as informaes sobre meus dispositivos:

#lspci -v | more

O -v verbose para mostrar as informaes em detalhes. Aqui e mostrado a relao dos dispositivos que necessrio configurar, tais como placa de rede, placa de som, vdeo etc.

Dica: Para voc saber mais informaes sobre todo o seu hardware, voc pode instalar um pacote chamado lshw.

# aptitude install lshw

Para us-lo:

# lshw

Mdulos - 5 Quando instalado uma distribuio como, por exemplo, Debian, RedHat, Suse, Slackware, dentre outras, esta sendo utilizando um kernel que foi compilado pelos desenvolvedores da distribuio. Como esse kernel deve ser capaz de rodar em praticamente qualquer PC e dar suporte a qualquer tipo de recurso que o usurio pretenda utilizar, o desenvolvedor compila um kernel que fornece todas as funcionalidades bsicas e, em separado, compila pedaos de cdigo que do suporte a funcionalidades mais especficas. Esses pedaos de cdigo so os chamados mdulos. Dessa forma, quando o sistema carregado um kernel bsico se coloca na memria e passa a controlar a mquina. Neste ponto so verificadas outras funcionalidades que se espera que o kernel d suporte, como por exemplo utilizar uma partio XFS; neste momento, se o kernel no possuir suporte nativo a esse file system ele ir verificar se o mdulo que d suporte a ele foi compilado. Se esse mdulo for encontrado, ele ser carregado expandindo as funcionalidades do kernel. Para descobrir qual a verso do kernel est sendo usada:

# uname -r

Antes de comear a configurar qualquer dispositivo, veja as explicaes de alguns comandos para a manipulao de mdulos. Um mdulo built-in quando o mesmo j est incorporado no kernel do sistema, ou seja, assim que o kernel for iniciado, o dispositivo tambm ser, caso a mquina o tenha. Agora os mdulos que no so built-in , ou seja, que no so carregados quando o sistema inicia, significa que o kernel pode suportar, mas o mesmo precisa ser levantado manualmente. Ento, mdulo como lego, pode estar ali, mas para funcionar, voc precisa montar, ou melhor carregar. E justamente a que entra a sua funo. J os built-in so transparentes para os usurios, no necessrio se preocupar com eles pois j esto no kernel.

Mdulos - 6 Por exemplo: no Debian as placas de rede Realtek so built-in, ento depois que o sistema liga, j possvel digitar:

# ifconfig -a

Com esse comando possvel ver que a mesma j est funcionando, com isso necessrio apenas colocar o IP.

Lembrando que s possvel aplicar um ip na placa de rede se a mesma j estiver com seu mdulo levantado (ou fazendo uma analogia com o Windows, o driver configurado).

J no Red Hat essa mesma placa no vem como mdulo built-in, ento preciso levantar o mdulo. Por isso que compilar um kernel muito importante, mas tambm exige conhecimento de hardware e de kernel.

Lembrando que as distribuies trazem um kernel genrico, e voc dever customiz-lo especificamente para a sua mquina, mas para isso haja Kernel Panic.

Ento se o mdulo built-in no necessrio ter trabalho nenhum. Agora se no for built-in, ter que levantar o mdulo com os comandos a seguir. O comando lspci ir listar todos os dispositivos, mesmo que este j tenha o mdulo built-in no kernel. O demais comandos que vai ser mostrado mas a frente no se aplica para mdulos built-in (afinal de contas eles j foram carregados). Os comandos mostrados agora so para manipulao de mdulos. Depois que foi listado nossos dispositivos com o comando lspci .

Mdulos - 7 Para listar todos os mdulos ativos no meu sistema:

# lsmod ou # cat /proc/modules

Esse comando tem a funo de listar todos os mdulos que esto ativos no sistema, mesmo que o mdulo no esteja sendo usado no momento. O prximo comando essencial nessa parte de mdulos o modprobe:

#modprobe nome_mdulo

Ele o responsvel por ativar/levantar um mdulo. atravs dele que se habilita um determinado dispositivo, como por exemplo a placa de rede. Para ver quais os mdulos esto compilados (disponveis para uso):

# modprobe -l
O parmetro l de limo, e no o nmero um. Os mdulos ficam no seguinte diretrio:

# cd /lib/modules/$(uname -r)

possvel colocar um comando dentro de $() quando se deseja que essa varivel guarde como valor o resultado do comando. Se existir mais de um kernel compilado na mquina, logicamente haver mais de um diretrio em /lib/modules.
Voc pode descobrir quais mdulos tem disponveis da seguinte forma:

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

Mdulos - 8 Uma coisa legal no Linux que temos vrias maneiras de fazer uma coisa s, a voc escolhe a que mais lhe agrada.

Lembre-se que possvel ter vrios kernels disponveis, mas s um funcionando ao mesmo tempo, pois isso para se ter certeza que esta entrando no diretrio que guarda os mdulos do kernel que esta sendo utilizado no momento, a e necessrio digitar esse comando acima.

O modprobe levanta um mdulo com a sua dependncia, ou seja, se determinado mdulo para ser iniciado precisa que um mdulo em especfico j esteja no ar, o modprobe faz isso sem lhe perguntar nada. Veja que prtico!

Um exemplo prtico a placa de som, que para funcionar, alm do mdulo da placa em si, precisa do soundcore (mdulo de som). Ento, nesse caso o comando modprobe j resolveria essa dependncia levantando o mdulo da placa e tambm o soundcore.
Para determinar o nmero de mdulos carregados:

# lsmod | grep -v ^"Module" | wc -l

Para determinar o nmero de mdulos disponveis:

# modprobe -l | wc -l

No caso tenho 1756 mdulos disponveis e 88 mdulos carregados na memria (isso pode variar de sistema para sistema). Para levantar um mdulo sem resolver sua dependncia, lembre -se usado o seguinte comando: que nem todos os mdulos tem dependncias, pode ser

# insmod mdulo

Mdulos - 9 Se o mdulo tiver dependncia e for utilizado o comando insmod, ele acusar um erro. Agora, mostrando o inverso, se deseja derrubar um mdulo, ou seja, desativ-lo:

#modprobe -r nome_do_mdulo

E para remover um mdulo sem Dependncia:

#rmmod mdulo

OBS : Lembre-se de que um mdulo s pode ser desativado se o mesmo no estiver em uso!

Exemplo: s possvel derrubar o mdulo da placa de rede, caso a mesma tambm esteja derrubada. Ou seja, sem funcionamento.

vlido saber que quando dito remover, refere-se a tirar o mdulo da memria e no delet-lo do sistema!

Exemplo: Determine quais mdulos so utilizados pelo dispositivo de cdrom:

# lsmod | grep cdrom cdrom 32544 1 sr_mod


Essa mensagem significa que o mdulo cdrom usado pelo mdulo sr_mod. 32544 o tamanho do mdulo. 1 quantidade de mdulos que usam o mdulo listado.

Mdulos - 10

Tente remover o mdulo cdrom utilizando o rmmod:

# rmmod cdrom ERROR: Module cdrom is in use by sr_mod

No funcionou porque o mdulo cdrom est sendo usado pelo sr_mod, e lembre-se que s possvel tirar um mdulo da memria se ele no estiver em uso.

Remova o mdulo sr_mod com rmmod j que ele est utilizando o mdulo cdrom:

# rmmod sr_mod

O comando no vai retornar nenhuma mensagem, significa que ele tirou o mdulo da memria. Verifique que o mdulo ide_cd foi removido mas o cdrom ainda est carregado:

# lsmod | grep sr_mod

No retornou nada, significa que no est mais na memria.

# lsmod | grep cdrom cdrom 32544 0


Retornou a linha do mdulo cdrom, ele ainda continua na memria. J que o mdulo cdrom no est mais sendo utilizado podemos remov-lo:

# rmmod cdrom # lsmod | grep cdrom

Mdulos - 11 Abra a bandeja do cdrom e verifique que o suporte ao CDROM foi carregado novamente:

# eject # lsmod |grep cdrom


No foi! Ento, levante os mdulos do cdrom novamente, s que com o comando insmod (para o comando insmod deve ser informado o caminho completo de onde est o mdulo):

# modprobe -l cdrom /lib/modules/2.6.18-5-686/kernel/drivers/cdrom/cdrom.ko Ou: # insmod $(modprobe -l cdrom)


E depois:

# insmod $(modprobe -l sr_mod)

Verificando se os mdulos levantaram:

# lsmod |grep cdrom cdrom 32544 1 sr_mod


Verifique se consegue usar o cdrom:

# eject
Puxar o cdrom:

# eject -t

Mdulos - 12

Tire os mdulos da memria novamente para ver que o modprobe bem mais prtico para usar:

# modprobe -r sr_mod

Tente ejetar o cd agora, voc no conseguir. Levante os mdulos agora:

# modprobe sr_mod

Veja que ele levantou o cdrom tambm:

# lsmod | grep cdrom cdrom 32544 1 sr_mod

Como o modprobe sabe quais mdulos dependem de quais mdulos:

# cd /lib/modules/$(uname -r) # ls -l # vi modules.dep

Esse arquivo construdo com o comando depmod (cobrado na LPI):

# depmod -a

Esses seriam os principais comandos que podem ser usado nessa parte de mdulos. Sabendo os comandos, o diretrio e os dispositivos, faa a configurao dos mesmos.

Mdulos - 13

1.3. Exemplo de configurao da placa de som


Primeiro listaremos para ver o modelo:

# lspci | grep -i audio 00:05.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
No caso uma C-Media. Ento,v at o diretrio dos drivers e procure o mdulo para a placa:

# cd /lib/modules/2.6.18-3-686/kernel/sound/pci

Agora vem a questo. Como descobrir qual o mdulo exato para a placa de som?
Um comando que ajuda um pouco, mas ainda sim exige prtica o modinfo, veja um exemplo:

# modinfo cmpci filename: cmpci.o description: "CM8x38 Audio Driver" author: "ChenLi Tien, cltien@cmedia.com.tw" license: "GPL"

possvel perceber que o mdulo diz: CM8x38 . Onde x ser qualquer nmero nessa srie. Ento, CM8738 o modelo que se encaixa nesse mdulo. Nesse caso foi sendo testado arquivo por arquivo dentro do diretrio com o modinfo.

Mdulos - 14 No caso, sabe-se que o mdulo para a Placa C-Media cmpci , pois foi confirmado com o modinfo, ento levante o mdulo com o comando:

#modprobe cmpci

E vale lembrar que no foi colocado a extenso " .ko " quando for levantar o mdulo com o comando!

Para ver o se mdulo carregou corretamente:

#lsmod Module Size Used by Not tainted cmpci 26040 0 (unused) soundcore 3236 2 [cmpci]
Perceba que ele levantou o mdulo cmpci e sua dependncia soundcore que est sendo usado pelo cmpci soundcore 3236 2 [cmpci]

Lembre-se que nessa parte de mdulos mais ou menos como tentativa e erro.

No Red Hat, podemos usar um aplicativo chamado sndconfig.

#sndconfig

Que vem na instalao padro e pergunta da LPI!

Mdulos - 15

Veja que a placa de som est funcionando (pelo menos foi carregada, veja com o lsmod) com o comando lsmod . Pelo menos seu mdulo foi iniciado. Ento, agora tem que testar. Existe muitas opes atravs de programas de udio. Mas tem o jeito mais rpido que no precisa dos programas de udio (xmms, mplayer). Para voc mexer com o volume em modo texto:

$ alsamixer

Mdulos - 16

1.4. Exemplo de configurao da placa de rede.


Novamente executo o lspci para ver o modelo:

#lspci | grep -i eth 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX

Agora sei que a placa uma 3com. V ao diretrio:

# cd /lib/modules/2.6.18-4-686/kernel/drivers/net

Nesse diretrio veja os mdulos que a 3com tem e execute o modinfo para tentar detectar o modelo:

#modinfo 3c59x filename: 3c59x.ko author: Donald Becker <becker@scyld.com> description: 3Com 3c59x/3c9xx ethernet driver license: GPL
Este modelo 3c905 e a resposta do modinfo diz que esse mdulo para todos os modelos 3c9XX . Neste caso possvel saber que o mdulo: 3c59x , levante o mdulo:

#modprobe 3c59x

Mdulos - 17 Para finalizar, veja se o mesmo est no ar:

#lsmod Module Size Used by cmpci 26040 0 (unused) soundcore 3236 2 [cmpci] 3c59x 24648 1
Agora, basta testar usando o comando:

#ifconfig -a
Caso aparecer a eth0 est OK!

Para que esses mdulos sejam carregados sempre na inicializao da mquina faa (Debian):
O de som:

# echo cmpci >> /etc/modules

O de rede:

# echo 3c59x >> /etc/modules

Mais uma dica para a placa de rede: Se sua placa de rede suportar, defina que ela deve operar em full duplex.

Mdulos - 18

# vi /etc/modules.conf alias eth0 8139too options 8139too full_duplex=1

Ateno: no arquivo /etc/modules.conf possvel relacionar que um mdulo estar associado a uma determinada interface. Veja que eth0 est associada ao mdulo 8139too. Isso muito til quando preciso mais que uma placa de rede na mquina, assim o sistema sabe que tal mdulo para tal interface.

modo

full-duplex

permite

que

placa

de

rede

envie

receba

dados

simultaneamente. S vai existir vantagem a placa de rede operar nesse modo, se as mquinas usadas precisarem transmitir grande quantidade de dados ao mesmo tempo. Para ver se sua placa de rede estar operando em modo full-duplex faa:

# mii-tool eth0: negotiated 100baseTx-FD flow-control, link ok


Se isso 100baseTx-FD aparecer, sua placa de rede est operando no modo fullduplex.

FD uma abreviao para Full-Duplex. HD uma abreviao para Half-Duplex.

Mdulos - 19 Pode ser usado o mii-tool para fazer com que placa de rede opere no modo FD ou HD: No modo FD:

# mii-tool -F 100baseTx-FD

No modo HD:

# mii-tool -F 100baseTx-HD

You might also like