Gerenciando módulos no Linux

Aprenda como configurar alguns dispositivos (placa de som e rede) em modo texto e como bônus vários comandos importantes nesse gerenciamento.

[ Hits: 127.588 ]

Por: Leonardo Afonso Amorim em 28/10/2008


Exemplo prático: Placa de som



Usarei o exemplo da minha placa de som para mostrar a técnica.

Primeiro listar o dispositivo de som para ver o modelo:

# lspci | grep audio
Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)

No meu caso é uma C-Media.

Então, vou até o diretório dos drivers e procuro o módulo para a minha placa:

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

Agora vem a questão!!! Como saber qual é o meu módulo???

Um comando que ajuda um pouco, mas ainda sim exige prática é o modinfo, veja um exemplo:

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

Podem perceber que o módulo diz: CM8x38. Onde "x" será qualquer número nessa série!

Então, CM8738 é o meu modelo que se encaixa nesse módulo! Nesse caso fui testando arquivo por arquivo dentro do diretório com o modinfo...

No meu caso, sei que o módulo para a Placa C-Media é cmpci, pois acabei de confirmar com o modinfo, então vou levantar o módulo com o comando:

# modprobe cmpci

E vale lembrar que não colocamos a extensão ".ko" quando vamos levantar o módulo com o comando!

Para ver o se módulo carregou corretamente:

# lsmod
Module Size Used by
Not tainted
cmpci 26040 0 (unused)
soundcore 3236 2 [cmpci]

Percebam que ele levantou o módulo cmpci e sua dependência soundcore:

cmpci soundcore 3236 2 [cmpci]

Lembrando que nessa parte de módulos é mais ou menos como tentativa e erro.

Na prática, se você achar que é um determinado módulo, execute o modinfo primeiro nele assim irá poupar erros!

No Red Hat, podemos usar um aplicativo chamado:

# sndconfig

a LPI!

Vimos que nossa placa de som está funcionando (pelo menos foi carregada, vimos com o lsmod) com o comando lsmod. Pelo menos seu módulo foi iniciado!

Então, agora temos que testar! Temos muitas opções através de programas de áudio. Mas tem o jeito mais rápido que não precisa de programinhas de áudio (xmms, mplayer)!!!

Vamos testar assim:

# cat /bin/ls >> /dev/dsp

Esse comando fará um barulho estranho na caixa de som! Se o mesmo sair "Parabéns!" sua placa de som está funcionando!!!

Caso não queira usar esse comando, poderá usar qualquer aplicativo de som. Usamos esse comando, pois é um teste simples, porém eficiente pois testamos a placa em si.

As vezes pode estar com problema o aplicativo e acharemos que é a placa que não está no ar,

Dica: para você mexer com o volume em modo texto, use:

alsamixer

Página anterior     Próxima página

Páginas do artigo
   1. Reconhecendo o hardware
   2. Definição de módulo
   3. Comandos para gerenciamento de módulos
   4. Exemplo prático: Placa de som
   5. Exemplo prático: Placa de rede
   6. Dicas finais
Outros artigos deste autor

Afinal, será que ser hacker, realmente, é o que a mídia divulga?

Configurar uma rede doméstica e compartilhar ADSL no Slackware

Técnicas de memorização para facilitar o uso VI (Comandos básicos)

O que é $PATH, como funciona e como trabalhar com ele

Configurando impressora HP692C no Slackware

Leitura recomendada

Tabela de Partição GUID - Uma Pequena Introdução

Como a propaganda afeta você?

Configurando uma multi-funcional HP 1315 no Slackware 10.2

Hardmodem PCI US Robotics

Instalando leitores de impressão digital modelo Digital Persona no Linux

  
Comentários
[1] Comentário enviado por corbe em 28/10/2008 - 10:01h

Estou tendo dificuldades em subir o modulo usbhid, uso o slackware, baixei o kernel-modules, da mesma versão do meu kernel, descompactei o pacote, copiei o usbhid
do pacote para meu diretorio de driver, e quando dou modprobe usbhid me aparece module invalid format,
o que isso quer dizer?

[2] Comentário enviado por corbe em 28/10/2008 - 10:13h

acho que a pergunta certa é , como instalo um modulo que não existe na minha pasta de modulos. ( /lib/modules/2.6.24.2/kernel/drivers.. )

[3] Comentário enviado por leonardoamorim em 28/10/2008 - 10:20h

Quando não encontrar um módulo no diretório correspondente é necessário recompilar o kernel ativando novos módulos.
Se o módulo for proprietário você deve procurar no site do fabricante verificando se tem versão para Linux. A nvidia por exemplo dispõe em seu site drivers de vídeo para Linux.

[4] Comentário enviado por corbe em 28/10/2008 - 10:31h


E no caso da nvidia, devo baixar o modulo do site e ainda sim recompilar o kernel? ou simplismente copialos ao diretorio de driver do sistema?

[5] Comentário enviado por leonardoamorim em 28/10/2008 - 10:33h

Corbe,

Segue um link de como instalar o módulo nvidia no Debian Etch:
http://leonardoafonso.blogspot.com/2007/08/configurando-placa-nvidia-no-debian.html

[6] Comentário enviado por walber em 28/10/2008 - 23:06h

Leonardo, mandou muito nesse artigo, parabéns.

[7] Comentário enviado por corbe em 29/10/2008 - 10:08h

Olá,
quando tento dar modprobe usbhid aparece a seguinte msg

FATAL: Error inserting usbhid (/lib/modules/2.6.24.5/kernel/drivers/hid/usbhid/usbhid.ko): Invalid module format

algum saberia me dizer o motivo que não consigo carregar esse modulo

[8] Comentário enviado por mafioso em 29/10/2008 - 12:11h

São artigos como este que faz o uso do Linux ser cada vez mais fácil e agradável. Parabéns pelo artigo, kra. Eu já sabia bem estes conceitos de módulo, mas aprendi na marra... Seu artigo há uns anos atrás teria me poupado horas de pesquisa. Valeu.

A única coisa que eu adicionaria, é que para saber qual o módulo necessário para determinada placa, você também pode buscar no google. modinfo em cada módulo pode fazer alguém entrar em parafuso. Mesmo porque algumas placas funcionam com diferentes módulos, então é bom pesquisar para saber qual o melhor. Minha placa de rede wireless por exemplo, trabalha nativamente com o módulo bcm38xx. Porém, descobri que é muito melhor utilizar o módulo ndiswrapper pesquisando rapidamente no Google.

[9] Comentário enviado por rafranco em 29/10/2008 - 19:40h

leonardoamorim, estou há vários dias tentando fazer funcionar uma placa de som Creative CT4810 com chipset Ensoniq ES1371, espetada em um micro rodando Slackware 12.0 e DreamLinux 3.0. Ela até funcionou algumas vezes mas basta desligar o micro e tudo se perde. Segui seus ensinamentos e verifiquei no kernel 2.6.21.5 a existência de dois módulos de som snd-ens1370 e 1371. O comando modprobe levanta os módulos sem problemas. O Slack configura como ES1371, via alsaconf. Em rc.modules, descomentei as linhas correspondentes aos módulos. Passo pelo alsamixer, mas som que é bom, nada. Se puder ajudar, agradeço. P.S.: Na partição vizinha, o DreamLinux configurou tudo sozinho!

[10] Comentário enviado por Caaio Rooberto em 15/04/2009 - 11:10h

Meu amigo, eu estou aprendendo agora a mexer no linux. Pra variar, meu professor me passou um trabalho exatamente sobre modulos e processos correntes no linux.
Eis a duvida...
Aki estao as especificacoes do trabalho pa vc ter uma ideia:


Processo corrente e Procfs

Escrever um módulo que informe as seguintes dados do processo corrente em um
arquivo do /proc:

- PID do processo.
- Áreas de memória usada pelo processo.
- Arquivos abertos pelo processo. (Caso tenha algum arquivo aberto)


Para mais esclarecimento, o professor ainda falou q devemos usar uma estrutura chamada task_struct e q este processo corrente especificado acima eh do tipo task_struct. Logo, para conseguirmos o PID, a area de memoria usada e etc nós temos q usar esta task_struct. A questao eh essa, eu n sei usar isso.

Qlqr ajuda sera bem vinda.
Desde jah agradeco.

[11] Comentário enviado por (xinelo) em 27/08/2009 - 20:54h

como faço para deletar um módulo do sitema?

[12] Comentário enviado por roneibrasil em 05/01/2010 - 20:48h

tenho o ubuntu 9.10 karmic koala 64 bits e não estou conseguindo fazer funcionar o wireless, que é uma placa RTL8101E PCI Express Fast Ethernet controller (rev 02). sabe o que posso fazer? alguma dica? obrigado

[13] Comentário enviado por luizvieira em 06/04/2010 - 19:48h

Muito bom!
[ ]'s

[14] Comentário enviado por galdinocamargo em 20/05/2010 - 00:21h

Gostei também, muito bom!

abraço,
Rodrigo Galdino.

[15] Comentário enviado por tntsys em 25/05/2011 - 20:25h

legal cara vc é professor da 4linux.

[16] Comentário enviado por vbassis em 25/06/2011 - 13:25h

Parabéns!!!!!
excelente artigo.

Abraço,
Vinicius

[17] Comentário enviado por rodrigocontrib em 27/06/2013 - 06:39h

Fala ae,
Criei duas linhas de comando para auxiliar no modinfo, a primeira gera um arquivo teste-2706 a segunda pega este arquivo e da um cat grepando para um parametro qualquer da sua interface.
no meu caso a minha placa de som é : 00:05.0 Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2)

lsmod |grep -i snd |awk '{print " find . -type f -iname " $1 "*" }'|sh + > /home/rodrigo/teste-2706
cat /home/rodrigo/teste-2706 | awk '{print " modinfo " $1}' |sh + |grep -i MCP*

Boa noite a todos, e fiquem com Jesus Cristo!

[18] Comentário enviado por sauloneiva em 09/07/2015 - 11:23h

Olá!!!
Estou tentando usar o modprobe -l, porém esta dando esta mensagem:
modprobe: unrecognized option '--l'.
Estou usando o Debian Weezy.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts