OSS
De Wiki do Arch Linux Brasil
Tabela de conteúdo |
Introdução
O OSS, sigla de Open Sound System, é uma arquitetura de som comercialmente suportada que funciona em vários sistemas UNIX-like e compatíveis com POSIX, incluindo Linux, FreeBSD, Solaris e BeOS/Haiku.
Por favor note que este artigo não é sobre o OSS antigo, que é incluído até hoje no código fonte do kernel Linux, apesar de ser não ser mantido há mais de 10 anos.
Este artigo é sobre as novas versões do OSS (geralmente chamadas de OSSv4). Essas versões eram antigamente proprietárias - o OSS se tornou código aberto novamente em Julho de 2007, e atualmente é disponível sob as licenças GPL, BSD ou CDDL.
Vantagens e desvantagens sobre o ALSA
Vantagens sobre o ALSA (para usuários)
- Inclui um software mixer transparente (vmix) em espaço de kernel. Isso significa que múltiplas aplicações podem acessar o dispositivo de som ao mesmo tempo sem quaisquer problemas.
- Os controles de mixagem do vmix permitem que você ajuste o volume de cada aplicativo individualmente.
- Melhor suporte para alguns modelos de placa de som, por exemplo para as Creative X-Fi.
- Na maioria das vezes, a qualidade de som é audivelmente melhor.
- Melhor suporte a aplicações escritas para a API do OSS, é claro. A API do OSS é bastante conhecida e diversas aplicações a suportam. Apesar disso, a emulação da API do OSS fornecida pelo ALSA geralmente possui bugs.
Vantagens sobre o ALSA (para desenvolvedores)
- API mais limpa e fácil de usar.
- API muito melhor documentada.
- Suporte a drivers de som em espaço de usuários (oss_userdev).
- Portabilidade entre todas as plataformas suportadas. Se um aplicativo funciona usando OSS no Linux, ele vai funcionar no FreeBSD e no Solaris também, por exemplo.
- Portabilidade entre sistemas operacionais. É mais fácil portar o OSS para um novo sistema operacional.
Desvantagens com relação ao ALSA
- O suporte a dispositivos de áudio USB é atualmente experimental na versão para Linux.
- Dispositivos de áudio Bluetooth atualmente não são suportados.
- Soft-modems de conexão discada AC'97 e HDAudio (por exemplo o Si3055) atualmente não são suportados.
- O suporte a MIDI ainda não foi concluído. Entretanto, você ainda pode usar MIDI com um sintetizador via software, como o timidity ou o fluidsynth.
- Não há atualmente suporte transparente a suspending. Você precisa derrubar o OSS (usando soundoff) antes de suspender, e recarregar o OSS (usando soundon) depois de voltar.
- O jack sensing automático em laptops atualmente não funciona corretamente com o HDAudio de algumas placas-mãe. Isso significa que, dependendo do modelo da sua placa-mãe, pode ser que você tenha que desligar manualmente suas caixas de som embutidas (por meio do mixer) quando plugar o seu fone de ouvido.
Instalando
- Instale o OSS digitando:
# pacman -S oss
- Inicie o OSS digitando:
# /etc/rc.d/oss start
- Adicione oss à sua variável DAEMONS no /etc/rc.conf, para que o OSS seja carregado automaticamente a cada inicialização.
Nota: As instruções acima atualmente instalarão o OSS 4.1. Se você quiser o OSS 4.0, você ainda pode achá-lo no AUR.
Testando
- Teste o OSS executando:
$ osstest
Você deve ser capaz de ouvir uma música durante o processo de teste.
O mixer
O mixer por linha de comando é chamado ossmix. Ele é muito parecido com o mixer de áudio do BSD (mixerctl).
Um mixer mais amigável, gráfico, também está disponível. Ele é chamado ossxmix. É necessário que você tenha instalada a dependência opcional gtk2 para que ele funcione.
Os controles do ossxmix são explicados no seguinte exemplo:
______________________________ / High Definition Audio ALC262 \ ----------------------------------> Uma aba para cada placa de som. /________________________________\_______________________________ | | [x] vmix0-enable [vmix0-rate: 48.000kHz] vmix0-channels \ As configurações especiais do vmix (mixer virtual) | [ Stereo [v] ] |--> aparecem no topo. Elas incluem taxa de amostragem | / e prioridade do mixer. Elas são fornecidas pelo OSS. | __codec1______________________________________________________ | | _jack_______________________________________________________ \ | | | _int-speaker____________________ __green_________________ | | | | | | | | Estas são as configurações da sua placa de som. | | | | _mode______ | | | | _mode______ | | | Cada controle de mixer que é mostrado aqui é | | | | [ mix [v] ] o o [x] [ ]mute | | [ mix [v] ] o o [x] |--> fornecido pela sua placa de som. Cada controle | | | | | | | | | | | específico da placa de som é mostrado aqui. | | | |________________________________| |_______________________ | | | |____________________________________________________________ | | |______________________________________________________________ / | | ___vmix0_______________________________________________________ \ | | __mocp___ O O _firefox_ O O __pcm7___ O O | Aqui estão os controles de mixer do vmix. Estes | | | | O O | | x x | | O O | são controles de mixer virtual fornecidos pelo OSS. | | | | | | x O | | | | x x | | | | O O | Cada barrinha é o controle de volume de um aplicativo | | | o o [x] | x x | o o [x] | x x | o o [x] | O O |--> diferente. Quando um aplicativo usa a placa de som, | | | | | | x x | | | | x x | | | | O O | seu nome é exibido no lugar de onde estava escrito | | |_________| x x |_________| x x |_________| O O | 'pcm#'. Há também barras para medição do nível de | |______________________________________________________________ | som que sai de cada aplicativo. |________________________________________________________________ /
Resolução de problemas
Resolvendo problemas com dispositivos HDAudio
Entendendo de onde surgem os problemas
Se você possui um dispositivo de som HDAudio, é muito provável que você tenha que ajustar alguns controles do mixer antes que o seu som funcione.
Dispositivos HDAudio são bastante poderosos no sentido em que eles contém vários pequenos circuitos (chamados widgets) que podem ser ajustados via software a qualquer tempo. Esses controles são expostos ao mixer, e eles podem ser usados, por exemplo, para transformar o plugue de fone de ouvido em uma entrada de som ao invés de uma saída de som.
Entretanto, há um efeito colateral, principalmente porque o padrão HDAudio é mais flexível do que ao que parece deveria ser, e porque os fabricantes geralmente só estão preocupados em deixar seus drivers oficiais funcionando.
Então, ao usar dispositivos HDAudio, você geralmente encontra controles de mixer desorganizados, que nem ao menos funcionam por padrão, e você é forçado a testar cada combinação nos controles do mixer, até que o som funcione.
Como resolver
Abra o ossxmix e tente mudar cada controle de mixer na área do meio, que contém os controles específicos da placa de som, como foi explicado na seção anterior "O mixer".
- Aumente cada barrinha de volume.
- Em cada caixa de opções, tente mudar a opção selecionada, tentando todas as combinações possíveis de opções.
- Se você obter ruído, tente abaixar e/ou deixar mudo alguns controles de volume, até que você descubra a origem do ruído.
Por favor note novamente que você não precisa mudar quaisquer controles na área do topo nem na área de baixo, áreas estas que contém os controles de mixer relativos ao vmix
Resolvendo outros tipos de problema
- Se você obter som distorcido, tente abaixar algumas barrinhas de controle de volume.
- Se você precisar mudar a placa de som padrão, dê uma olhada aqui.
- Se você tiver algum outro problema, tente fazer uma busca ou pedir por ajuda nos fóruns da 4front.
Configurando aplicativos para o OSS
Plugin do Flash
Instale o pacote libflashsupport-oss se você estiver usando arquitetura i686.
pacman -S libflashsupport-oss
Caso contrário, se você estiver usando arquitetura x86_64, use o lib32-libflashsupport-oss do AUR.
Skype
O pacote skype só inclui suporte a ALSA. Para ter um Skype compatível com OSS, instale o pacote skype-oss do AUR.
Phonon do KDE
O Phonon com Qt pura deve funcionar por padrão com o OSS.
Entretanto, se você usa KDE, você pode ter problemas se a backend Xine estiver sendo usada para saída de som. Você pode fazer com que as coisas funcionem corretamente trocando a backend padrão do Phonon.
Edite o ~/.kde4/share/config/servicetype_profilerc como a seguir:
[PhononBackend] Entry0_Preference=2 Entry0_Service=phononbackends/gstreamer.desktop Entry1_Preference=1 Entry1_Service=phononbackends/xine.desktop NumberOfEntries=2
Wine
- Execute o winecfg.
winecfg
- Vá para a aba Audio.
- Selecione OSS Driver.
Outros aplicativos
Se você não conseguir obter som de um aplicativo que não esteja listado aqui, tente olhar a página Configuring Applications for OSSv4.
Dicas e Truques
Usando teclado multimídia com o OSS
Se suas teclas multimídia não funcionaram por padrão, leia a página Using multimedia keys with OSS.
Outras dicas
Emulação ALSA
Introdução
Você pode instruir a alsa-lib para usar o OSS como seu sistema de saída de áudio. Isso funciona como uma espécie de emulação do ALSA.
Note, entretanto, que esse método pode introduzir latência adicional na sua saída de som, e que a emulação não é completa e não funciona com todos os aplicativos. Ela não funciona, por exemplo, com programas que tentem detectar dispositivos usando o ALSA.
Então, como a maioria dos aplicativos suporta o OSS diretamente, use este método somente como último recurso.
No futuro, métodos mais completos para emular o ALSA talvez estejam disponíveis, como a libsalsa ou o cuckoo.
Como fazer
- Instale o pacote alsa-plugins.
pacman -S alsa-plugins
- Edite o /etc/asound.conf como a seguir.
pcm.oss {
type oss
device /dev/dsp
}
pcm.!default {
type oss
device /dev/dsp
}
ctl.oss {
type oss
device /dev/mixer
}
ctl.!default {
type oss
device /dev/mixer
}