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.565 ]

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

Configurar uma rede doméstica e compartilhar ADSL no Slackware

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

Introdução ao uso de Shell Script

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

Configurando JAVA no Firefox para acessar página de bancos

Leitura recomendada

Instalação do Linux em dual boot com Windows 10 em notebook Samsung

Configurando HD via porta USB no Linux

Guia definitivo para resolver problemas do chipset Ac97 Intel (intel8x0) presente nas placas mãe Asus k8u-x (Ali 5455)

Instalando e configurando uma impressora multifuncional Epson Stylus CX3500

Como utilizar duas GPU em Notebook Optimus com drive legacy 390xx

  
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