Configurando áudio e rede

Nesse post, vou falar sobre configuração de dispostivos, usando os comandos de gerenciamento de módulos que comentei no post ‘Comandos para gerenciar módulos no Linux‘.

Dentro do sistema, podemos listar informações sobre todos dispositivos de hardware que foram reconhecidos pelo kernel, para sabermos qual módulo (driver) eles precisarão para funcionar. O comando que fornece a listagem completa desses dispositivos é o lspci:

# lspci
00:11.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
00:12.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)

A saída do comando lspci é bem mais extensa. Aqui no post, vou falar sobre a configuração de áudio e rede, por isso listei somente os dois dispositivos.

Estou usando uma máquina virtualizada, mas o conceito e os procedimentos para identificar o dispositivo e o módulo são os mesmos para uma máquina física😉 .

Vejamos… minha placa de áudio é: Ensoniq ES1371 [AudioPCI-97] (rev 02). O primeiro passo, é ir até o diretório de drivers e procurar o módulo para a minha placa:

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

Já estamos no diretório, mas a principal questão é: como saber qual o meu módulo! Uma coisa que podemos fazer é pesquisar no diretório para ver se tem algo que case com ‘ensoniq‘:

# grep -iR ‘ensoniq’ sound/
Arquivo binário sound/pci/snd-ens1370.ko casa com o padrão
Arquivo binário sound/pci/snd-ens1371.ko casa com o padrão

Acima, temos duas entradas que casam com ‘ensoniq’. De acordo com o comando lspci, minha placa é uma Ensoniq ES1371. Do resultado do grep, temos uma entrada que indica qual o módulo da minnha placa (snd-ens1371.ko).

Para ter mais informações sobre o módulo, tais como descrição, autor, licença, etc, usamos o comando modinfo.

# modinfo snd-ens1371
filename:       /lib/modules/2.6.26-2-686/kernel/sound/pci/snd-ens1371.ko
description:    Ensoniq/Creative AudioPCI ES1371+
license:        GPL
author:         Jaroslav Kysela <perex@perex.cz>, Thomas Sailer <sailer@ife.ee.ethz.ch>
alias:          pci:v00001102d00008938sv*sd*bc*sc*i*
alias:          pci:v00001274d00005880sv*sd*bc*sc*i*
alias:          pci:v00001274d00001371sv*sd*bc*sc*i*
depends:        snd-pcm,snd,snd-rawmidi,gameport,snd-ac97-codec
vermagic:       2.6.26-2-686 SMP mod_unload modversions 686
parm:           index:Index value for Ensoniq AudioPCI soundcard. (array of int)
parm:           id:ID string for Ensoniq AudioPCI soundcard. (array of charp)
parm:           enable:Enable Ensoniq AudioPCI soundcard. (array of bool)
parm:           joystick_port:Joystick port address. (array of int)
parm:           spdif:S/PDIF output (-1 = none, 0 = auto, 1 = force). (array of int)
parm:           lineio:Line In to Rear Out (0 = auto, 1 = force). (array of int)

A informação importante aqui é o campo description:

description:    Ensoniq/Creative AudioPCI ES1371+

Como a descrição aponta para o modelo da minha placa, posso carregar o módulo com o modprobe:

# modprobe snd_ens1371

Lembrando que quando vamos carregar o módulo, não colocamos a extensão .ko, apenas o nome do módulo mesmo!

Conferindo com o lsmod, se o módulo foi carregado:

# lsmod | grep snd_ens1371
snd_ens1371            19072  0
gameport               10700  1 snd_ens1371
snd_rawmidi            18528  1 snd_ens1371
snd_ac97_codec         88484  1 snd_ens1371
snd_pcm                62596  2 snd_ens1371,snd_ac97_codec
snd                    45604  6 snd_ens1371,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm,snd_timer

No caso, o módulo snd_ens1371 foi carregado juntamente com suas dependências… essas dependências são listadas na saída do comando modinfo:

# modinfo -F depends snd_ens1371
snd-pcm,snd,snd-rawmidi,gameport,snd-ac97-codec

A opção -F do comando modinfo mostra um determinado campo! No exemplo acima, pedi para mostrar somente o campo das dependências!

Bem, vimos que o módulo da placa de som foi iniciado, porém falta executar o teste, que pode ser feito com algum programa de áudio como por exemplo o mplayer.

Mas existe uma forma mais prática para testar a placa:

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

No comando acima, estamos pedindo para ler o binário /bin/ls direcionando a saída para o dispositivo de som (/dev/dsp). Como estamos lendo um binário, o comando produz um barulho na caixa de som. Se ouvir, ok, a placa está funcionando!

Essa parte de módulos para configurar, é na tentativa e erro! As distros que carregam os módulos automaticamente (como o Ubuntu por exemplo), fazem mais ou menos isso quando está iniciando. Ele pesquisa o diretório onde os módulos estão e vai testando; se apresentar erro, ele passa para outro até chegar em um que não retorna erro. Aí, pára a pesquisa e carrega o módulo.

Falando sobre a placa de rede… vamos checar a saída do comando lspci para ver o modelo:

# lspci
00:11.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)

Acima, minha placa é uma PCnet32; vou pesquisar no diretório de drivers para checar se tem algum módulo que seja para essa placa:

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

# grep -iR ‘pcnet32’ net
Arquivo binário net/pcnet32.ko casa com o padrão
Arquivo binário net/lance.ko casa com o padrão

De acordo com a saída do comando grep, existe um módulo (pcnet32.ko) que casa com a placa. Agora, resta saber se esse módulo é o correto… para isso, vamos usar o comando modinfo:

# modinfo pcnet32
filename:       /lib/modules/2.6.26-2-686/kernel/drivers/net/pcnet32.ko
license:        GPL
description:    Driver for PCnet32 and PCnetPCI based ethercards
author:         Thomas Bogendoerfer

De acordo com o campo descrição, esse módulo pode ser usado pela minha placa; sendo assim posso carregá-lo com o modprobe:

# modprobe pcnet32

Checando se o módulo foi carregado:

# lsmod | grep pcnet
pcnet32                27396  0
mii                     4896  1 pcnet32

Novamente, o módulo foi carregado juntamente com suas dependências; vejam que confere com o modinfo:

# modinfo -F depends pcnet32
mii

Para testar se esta ok:

# ifconfig -a

Se aparecer a interface eth0, indica que o módulo subiu corretamente (aí é só configurar a placa com o IP para colocá-la na rede)!

Um detalhe importante. Nas distribuições de hoje em dia, esses módulos vem incorporados ao kernel (built-in). Mas para o caso de módulos que foram carregados na mão, como vimos aqui, temos que garantir que os módulos sejam carregados todas as vezes que a máquina for ligada.

Para isso, vamos editar o arquivo /etc/modules, colocando os módulos lá, sempre um por linha:

# vim /etc/modules
pcnet32
snd_ens1371

Bem, nesse post fico por aqui. Até a próxima🙂 !

3 Responses to “Configurando áudio e rede”


  1. 1 Alexandre 11/06/2010 às 12:06 AM

    Oi Nix é o Alexandre.Já é o meu segundo post que entro e obrigado por ter me respondido a questão que eu coloquei no post”Comandos para gerenciar módulos no Linux”(12.07.2009).Entrei com o comando lspci e o resultado foi esse:09:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller (rev 13).O modelo da minha placa é PCI-E?Depois coloquei no terminal cd/lib/modules/$(uname -r)/kernel/drivers/ e o resultado foi bash: cd/lib/modules/2.6.32-22-generic/kernel/drivers/: Arquivo ou diretório não encontrado.E agora?falow.

    • 2 Nix 12/06/2010 às 1:19 PM

      Oi Alexandre.
      O comando não deu certo porque vc não incluiu os espaços😉.
      Experimente digitar o comando novamente como mostrado abaixo, que vc conseguira entrar no diretorio.
      cd /lib/modules/$(uname -r)/kernel/drivers/

      []’s

  2. 3 Alexandre 12/06/2010 às 6:28 PM

    Xiiii Nix deu certo de novo rsrsrsr.Ah,eu achei um programinha (HardInfo 0.5.1) e ele já dá os módulos de mão beijada.No meu
    caso o modulo do Ethernet controller é sky2(kernel modules).Só
    que olha o que aconteceu:
    *com o comando lsmod apareceu isso:
    sky2 40775 0(ué se ele não está sendo usado porque aparece o icone com o gerenciador de rede com as redes sem fio disponivel?)
    *verificando se ele está carregado com o comando lsmod | grep sky2:
    sky2 40775 0
    *Agora testando se está ok com o comando ifconfig -a:
    eth0 Link encap:Ethernet Endereço de HW 00:23:ae:e7:cb:3c
    inet end.: 189.62.27.157 Bcast:189.62.31.255 Masc:255.255.240.0
    endereço inet6: fe80::223:aeff:fee7:cb3c/64 Escopo:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
    pacotes RX:13125 erros:0 descartados:0 excesso:0 quadro:0
    Pacotes TX:7629 erros:0 descartados:0 excesso:0 portadora:0
    colisões:0 txqueuelen:1000
    RX bytes:16213551 (16.2 MB) TX bytes:639101 (639.1 KB)
    IRQ:18

    eth1 Link encap:Ethernet Endereço de HW 00:25:56:4f:70:39
    endereço inet6: fe80::225:56ff:fe4f:7039/64 Escopo:Link
    UP BROADCAST MULTICAST MTU:1500 Métrica:1
    pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
    Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
    colisões:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
    IRQ:17 Endereço de E/S:0xc000

    lo Link encap:Loopback Local
    inet end.: 127.0.0.1 Masc:255.0.0.0
    endereço inet6: ::1/128 Escopo:Máquina
    UP LOOPBACK RUNNING MTU:16436 Métrica:1
    pacotes RX:12 erros:0 descartados:0 excesso:0 quadro:0
    Pacotes TX:12 erros:0 descartados:0 excesso:0 portadora:0
    colisões:0 txqueuelen:0
    RX bytes:720 (720.0 B) TX bytes:720 (720.0 B)

    Resultado:A interface entrou e o módulo subiu corretamente.
    ????mas o modulo sky2 não está sendo usado como eu indiquei
    acima.Como pode?Valew por ter me respondido=)


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
julho 2009
S T Q Q S S D
« jun   ago »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Flickr Photos

Morning Silence

Mais fotos

%d blogueiros gostam disto: