Primeiramente, eu acho necessário que seja explicado um pouco da história do OSS, já que os usuários novatos no Linux podem não conhecê-lo.
No começo, existiam, basicamente, apenas um tipo de placas de som, as extremamente conhecidas Sound Blaster, mais especificamente, a Sound Blaster 16(também conhecida como SB16). Por ser, na época, basicamente um monopólio, a grande maioria de placas de outras marcas eram praticamente obrigadas a prover emulação para a SB16. Desse modo, quando o Linux estava no seu início, só era imediatamente necessário o suporte a apenas uma placa de som, a SB16.
E então foi criado o driver para essa placa. Como foi feita uma boa API, e como vários programas para linux começaram a apontar para esta API, os desenvolvedores começaram a criar drivers para outros tipos de placas, e essas placas se juntaram em um pacote, que passou a ser conhecido por Linux Sound API, que mais tarde se tornou o Open Sound System(ou, OSS, como é mais conhecido). Por ser uma API muito boa, com um bom suporte e bem orientado para UNIX, ela passou a ser utilizada em vários outros sistemas UNIX, como o FreeBSD e o NetBSD. Pouco tempo depois, a grande maioria dos Unices tinham o OSS portado para seus sistemas, incluindo proprietários, como o HP-UX, o AIX e o Solaris.
No entanto, o OSS tinha um pequeno problema, e era chamado “mesclagem”(mixing, no original). Isso não era um ponto fraco no começo, já que o OSS foi projetado para fazer com que a própria placa realizasse a mesclagem. No entanto, placas novas e mais “modernas” já não vinham com mesclagem via hardware, o que impossibilitava que programas diferentes tocassem sons ao mesmo tempo, ou seja, não era mais possível, nestas placas, ouvir música enquanto se escutava as notícias.
Para resolver esse problema, começaram a surgir os primeiros “servidores de som”, aRts e ESD, criados para o KDE e para o Enlightenment/GNOME, respectivamente. Eles resolviam o problema perfeitamente, realizando a mesclagem antes que o som pudesse ser enviado para o OSS. Mas, quando parecia que havia chegado uma solução, outros problemas apareceram. Quando se misturavam programas que utilizavam o aRts com programas que utilizavam o ESD, voltava a existir o problema que esses “servidores” vieram para resolver, porque somente um dos 2 funcionaria ao mesmo tempo. A questão se tornava ainda mais grave quando se misturavam, além de programas que usavam aRts e ESD, programas que usavam o OSS diretamente. Para resolver esse e outros problemas, conversores de API em nível intermediário foram inventados.
Os conversores mais conhecidos foram o SDL, e a libao, que depois foi adotada pelo projeto Mplayer, e foi batizada como libao2. Finalmente, tudo parecia estar bem, mas devido a problemas pessoais entre os desenvolvedores do kernel e o Hannu(criador do OSS), a 4Front(mantenedora do OSS), resolveu parar de participar do desenvolvimento da versão livre do OSS, e trabalhar com soluções para empresas, comercialmente. Isso causou uma grande confusão, e os desenvolvedores do Linux, ao invés de trabalhar em cima da última versão livre do OSS, resolveram criar uma nova API, a qual foi chamada de ALSA.
Essa nova API era gigante, extremamente complexa, mal documentada e completamente diferente do OSS, e o pior de tudo, requeria que todos os programas feitos para se utilizar o OSS tivessem que ser reescritos para essa nova API. Além disso, o ALSA não era portável, sendo utilizado exclusivamente no Linux. Porém, o ALSA tinha algumas vantagens, como por exemplo, a tão procurada mesclagem via software.
Prevendo a transição de aplicativos para o ALSA seria lenta e demorada, pois significava que os aplicativos deveriam suportar ALSA e OSS, caso o dito programa fosse projetado para rodar em qualquer outro Unix-like, além do Linux. Além do mais, o Linux também possuía suporte para OSS, então para que se importar? A equipe do ALSA criou então uma camada de emulação de OSS, o que permitia que programas em OSS fossem rodados utilizando-se do ALSA transparentemente.
Mas por alguma razão estúpida, a emulação do ALSA para OSS não suporta mesclagem via software, o que acaba com o ponto principal da criação do mesmo. Novas soluções foram criadas para tentar-se finalmente resolver o problema de uma vez por todas, e a mais notável é o PulseAudio, um “servidor de som” que suporta mesclagem via software, controle de volume por-aplicação, e transferência de áudio entre-máquinas.
Em Julho de 2007, a 4Front liberou novamente as fontes do OSS sob a licença CDDL para o OpenSolaris, sob a licença GPL para o Linux, e sob a licença BSD para sistemas *BSD. O OSS, agora em sua versão 4, finalmente suporta mesclagem via software, controle de volume por-aplicação além de um suporte melhorado e expandido, incluindo para placas que o ALSA ainda não suporta, como as Creative X-Fi. Além disso, o OSS possui configuração automática, sem utilizar-se de ferramentas como o alsaconf. Vale lembrar também, que o OSS é tão portável, que o Haiku, que é um sistema operacional não-unix, adotou o OSS por baixo da API compatível com BeOS.
Agora que já conhecemos o OSS a fundo, iremos para a instalação do mesmo no Arch Linux:
- Primeiramente, nós precisaremos criar o pacote do OSS, o qual poderemos encontrar no AUR, ou mais especificamente, aqui. Baixaremos o Tarball desse pacote, extraíremos o mesmo.
- Entramos na pasta que a extração do Tarball gerou, e, antes de criar o pacote instalaremos o as dependências que não vêm por padrão no arch:
# pacman -S gtk2 bc
- Agora, como usuário normal, criaremos o pacote:
$ makepkg
- Aguarde um instante, um cafézinho é bem-vindo nessa hora. Pronto, o pacote foi criado! Instalaremos ele com o pacman(o nome do pacote pode ser ligeiramente diferente):
# pacman -U oss-testing 4.1_080705-1.pkg.tar.gz
- Pronto! Temos o pacote instalado. Agora, basta adicionar o daemon
oss na lista de Daemons do rc.conf, o processo é explicado em detalhes na wiki do archlinux-br.
Importante! Caso se tenha o alsa instalado, é necessário desativá-lo(removê-lo) da lista de Daemons!
- Agora basta reiniciar e o sistema estará utilizando o OSS a partir da hora do boot.
Bom galera, espero que curtam o OSS, e até a próxima! Lembrando que o OSS vem com um mixer integrado, você pode chamá-lo com o comando ossxmix.