Professional Documents
Culture Documents
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
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.
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 .
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:
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:
# 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
#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!
Mdulos - 10
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:
Mdulos - 11 Abra a bandeja do cdrom e verifique que o suporte ao CDROM foi carregado novamente:
# 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
# modprobe sr_mod
# 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
# 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!
#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.
#sndconfig
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
#lspci | grep -i eth 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX
# 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
#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:
O de rede:
Mais uma dica para a placa de rede: Se sua placa de rede suportar, defina que ela deve operar em full duplex.
Mdulos - 18
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:
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