16.2. Configurando a placa de som

Contriuido porMoses Moore.

16.2.1. Localizando o dispositivo correto

Antes de você começar, você deve saber qual o modelo da placa que você possui, qual chipset ela utiliza, e se ela é uma placa PCI ou ISA. O FreeBSD suporta uma larga variedade de placas PCI e ISA. Se você não localizar a sua placa na lista seginte, verifique a página de manual pcm(4). Esta não é uma lista completa; entretando ela lista algumas das placas mais comuns.

Para utilizar o seu dispositivo de som, você irá precisar carregar o driver de dispositivo apropriado. Isto pode ser efetuado de duas formas. A forma mais simples consiste-se em carregar o módulo de kernel apropriado para sua placa de som com o comando kldload(8) o que pode ser feito a partir da linha de comando:

# kldload snd_emu10k1.ko


ou através da adição de uma linha apropriada no arquivo /boot/loader.conf, tal como o exemplo abaixo:

snd_emu10k1_load="YES"

Estes exemplos são para uma placa de som Creative SoundBlaster Live!. Outros módulos de som carregáveis disponíveis são listados no /boot/defaults/loader.conf.

Alternativamente, você pode compilar de forma estática o suporte à sua placa de som no seu kernel. A sessão abaixo fornece as informações que você precisa para adicionar o suporte ao seu hardware desta maneira. Para maiores informações sobre a recompilação do seu kernel, por favor consulte Capítulo 9.

16.2.1.1. Placas de som Creative, Advance, e ESS

Se você possui uma das placas abaixo, você irá precisar adicionar:

device pcm

Ao seu arquivo de configuração do kernel. Se você possui uma placa ISA PnP, você também terá que adicionar:

device sbc

Para uma plana não-PnP, adicione:

device pcm
device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15

Ao seu arquivo de configuração do kernel. A configuração mostrada acima é a padrão. Você pode precisar alterar o IRQ ou outras configurações para adaptar-se a sua placa. Consulte a página de manual sbc(4) para maiores informações.

Nota: A placa de som Sound Blaster Live não é suportada no FreeBSD FreeBSD 4.0 sem um patch, o qual esta sessão não irá abranger. É recomendado que você atualize seu sistema para a última versão -STABLE antes de tentar utilizar esta placa.

16.2.1.2. Placas Gravis UltraSound

Para um placa ISA PnP, você irá precisar adicionar:

device pcm
device gusc

Ao seu arquivo de configuração do kernel. se você possui uma placa ISA não-PnP, você irá precisar adicionar:

device pcm
device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13

Ao seu arquivo de configuração do kernel. A configuração mostrada acima é a padrão. Você pode precisar alterar o IRQ ou outras configurações para adaptar-se a sua placa. Consulte a página de manual gusc(4) para maiores informações.

16.2.1.3. Placas de som Crystal

Para placas Crystal, você irá precisar adicionar:

device pcm
device csa

Ao seu arquivo de configuração do kernel.

16.2.1.4. Suporte Genérico

Para placas PCI ou ISa PnP, você irá precisar adicionar:

device pcm

Ao seu arquivo de configuração do kernel. Se você possui uma placa de som ISA não-PnP a qual não possui um bridge driver, você irá precisar adicionar:

device pcm0 at isa? irq 10 drq 1 flags 0x0

Ao seu arquivo de configuração do kernel. A configuração mostrada acima é a padrão. Você pode precisar alterar o IRQ ou outras configurações para adaptar-se a sua placa.

16.2.1.5. Som Onboard

Alguns sistemas com idispositivos de som embutidos na placa mãe podem precisar que a seguinte opção esteja presente em seu arquivo de configuração do kernel:

options PNPBIOS

16.2.2. Criando e testando os nós de dispositivos (Device Nodes)

Depois que você reinicializar, logue no sistema e verifique se o seu dispositivo está sendo listado no arquivo /var/run/dmesg.boot, como mostrado abaixo:

# grep pcm /var/run/dmesg.boot
pcm0: <SB16 DSP 4.11> on sbc0

A saída para o seu sistema pode parecer diferente. Se o dispositivo pcm não for exibido, algo de errado ocorreu anteriormente. Se isto acontecer, verifique novamente o arquivo de configuração do seu kernel e certifique-se de que você escolheu o dispositivo correto. Os problemas mais comuns estão listados em Seção 16.2.2.1 .

Nota: Se você estiver executando o FreeBSD 5.0 ou posterior, você pode pular tranqüilamente o resto desta sessão. Estas versões utilizam um devfs(5) para criar automaticamente os nós de dispositivos.

Se o comando prévio retornou pcm0, você terá que executar os seguintes comandos, logado como root:

# cd /dev
# sh MAKEDEV snd0

Se o comando retornou pcm1, siga os mesmos passos mostrados acima, subistituindo snd0 por snd1.

Nota: Os comandos acima não irão criar o dispositivo /dev/snd!

O MAKEDEV irá criar um grupo de nós de dispositivo, incluindo:

Dispositivo Descrição
/dev/audio Dispositivo de audio compatível com padrão Sparc®
/dev/dsp Dispositivo de voz digitalizada
/dev/dspW Semelhante ao /dev/dsp, mas com uma amostragem de 16 bits
/dev/midi Acesso direto ao dispositivo midi
/dev/mixer Porta de controle do dispositivo de mixagem
/dev/music Interface nível 2 do sequenciador
/dev/sequencer Dispositivo sequenciador
/dev/pss Interface de dispositivo programável

Se tudo correu bem, agora você deve ter uma placa de som que funciona. Se o seu drive de CD-ROM ou de DVD-ROM estiver devidamente conectado a sua placa de som, você pode colocar um CD no drive e reproduzi-lo com o uso do cdcontrol(1):

% cdcontrol -f /dev/acd0c play 1

Várias aplicações, tal como o audio/workman oferece uma interface melhor. Você pode desejar instalar uma aplicação tal como o audio/mpg123 para ouvir seus arquivos de audio no formato MP3.

16.2.2.1. Problemas Comuns

Erro Solução
``unsupported subdevice XX''

Um ou mais dos nós de dispositivo não foram criados corretamente. Repita os passos acima.

``sb_dspwr(XX) timed out''

A porta de I/O não esta ajustada corretamente.

``bad irq XX''

O IRQ está ajustado de forma incorreta. Certifique-se de que o IRQ setado é o mesmo IRQ utilizado pela sua placa.

``xxx: gus pcm not attached, out of memory''

Não existe memória suficiente para utilizar o dispositivo.

``xxx: can't open /dev/dsp!''

Verifique com o comando fstat | grep dsp se alguma outra aplicação esta mantendo o dispositivo aberto. Criadores de problema dignos de atenção são o esound e o suporte a som do KDE.

16.2.3. Utilizando múltiplas fontes de som

Contribuido por Munish Chopra.

É freqüentemente desejável termos múltiplas fontes de som, as quais possam ser reproduzidas simultaneamente, como por exemplo quando o esound ou o artsd não suportam o compartilhamento do dispositivo de som com alguma aplicação.

O FreeBSD permite que você faça isso através dos Canais virtuais de som, os quais podem ser configurados atráves do sysctl(8). Os canais virtuais permitem que você multiplexe os canais de reprodução da sua placa de som através de uma mixagem do som pelo kernel.

Para configurar os canais virtuais, existem 2 variáveis do sysctl que precisam ser ajustadas, se você é o usuário root, isto pode ser feito da seguinte forma:

# sysctl hw.snd.pcm0.vchans=4
# sysctl hw.snd.maxautovchans=4

O exemplo acima define 4 canais virtuais, o qual é um número razoável para uso no dia a dia. A variável hw.snd.pcm0.vchans define o número de canais virtuais que o pcm0 possui, e ela é configurável uma vez que o dispositivo tenha sido atachado. Já a variável hw.snd.maxautovchans define o número de canais virtuais atribuido a um dispositivo atachado via kldload(8). Uma vez que o módulo pcm pode ser carregado independentemente dos drivers de hardware, a variável hw.snd.maxautovchans pode armazenar quantos canais virtuais serão atribuidos a qualquer dispositivo de som atachado após a inicialização do sistema.

Se você não está utilizando o devfs(5),, você terá que apontar a sua aplicação para /dev/dsp0.x, onde x será um valor de 0 a 3 se a variável hw.snd.pcm.0.vchans estiver definida para 4 como no exemplo anterior. Em um sistema que utilize o devfs(5), a atribuição ocorre de forma automática e transparente ao usuário.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.