print
oss2jack



1. O que é?

O oss2jack é um dispositivo virtual no JACK que age como o driver OSS. Em outras palavras, ele permite que programas que não utilizem nativamente o JACK possam usufruir dessa funcionalidade. Isto permite que, por exemplo, você edite os sons de qualquer programa no Audacity, ou que você ponha ouvintes da sua rádio online que estejam falando no Ekiga. As possibilidades são ilimitadas.

2. Como instalar?


Basta abrir um terminal (pressionar Alt-F2?, digitar 'xterm' e Enter) e copiar e colar os comandos na seqüência. Note que você não copia o '$', ele simboliza que você deve executar este comando como usuário normal. Já as linhas iniciadas com '#' são executadas como usuário root. Basta digitar 'su' e a senha de root, ou 'sudo su' em sistemas Ubuntu/Moobuntu antes de executar o comando. Quando um comando não tiver $ nem # na frente, significa que deve ser executado por meio do Alt-F2?. Por exemplo:

xterm

2.1. No Ubuntu Breezy/Dapper e Moobuntu

(esta parte do tutorial é uma tradução comentada deste tópico do fórum do Ubuntu. Mais informações na página do cara.)

No Ubuntu, devido ao repositório criado pelo nosso amigo supracitado, a instalação é mais simples.

Primeiro adicionamos o repositório do oss2jack:

$ sudo echo "# oss2jack" >> /etc/apt/sources.list
$ sudo echo "deb http://neogate.homelinux.org/debian/ dapper sound" >> /etc/apt/sources.list

(caso você utilize Ubuntu Breezy (Moobuntu incluído), troque o "dapper" na linha acima por "breezy".

Atenção! Ainda não foi testado no Moobuntu! Se alguém puder testar e wikar aqui o resultado, seria muito bom :)

Feito isto, atualizamos a base de dados do apt-get:

$ sudo apt-get update

E instalamos o dito-cujo:

$ sudo apt-get install jackd qjackctl oss2jack

(se você está nesta página, provavelmente já tem o jack instalado, mas não custa ser redundante aqui.)

Durante a instalação do oss2jack serão feitas duas perguntas. A primeira delas, "Do you want to disable the ALSA OSS modules?" (Você quer desabilitar os módulos ALSA OSS?), você responder YES (Sim); a outra, "Do you want to unload the ALSA OSS modules now?" (Você quer desabilitar os módulos ALSA OSS agora?), você também responderá YES (Sim).

Feito isto, temos de instalar o módulo do kernel responsável pelo funcionamento do oss2jack, ele se chama fusd-kor. Primeiro vamos preparar o "ambiente":

$ sudo apt-get install module-assistant
$ sudo m-a prepare
$ sudo apt-get install gcc-`grep LINUX_COMPILER /usr/src/linux/include/linux/compile.h | sed 's/.* \(0-9\+\.0-9\+\).*/\1/'`

O primeiro comando instala o module-assistant, o segundo manda ele preparar os headers do kernel necessários para a compilação e finalmente o último comando instala o compilador gcc necessário para a tarefa. Finalmente, compilamos o dito-cujo:

$ sudo apt-get install fusd-kor-source
$ sudo m-a a-i fusd-kor
$ sudo apt-get install fusd-kor

Os comandos respectivamente baixam o código fonte do fusd-kor, compilam e instalam o mesmo. Durante a instalação do fusd-kor serão feitas duas perguntas: "Do you want the fusd-kor kernel module to be loaded during the boot process?" (Você deseja que o módulo do kernel fusd-kor seja carregado durante o processo de boot?), que deve ser respondido por YES (Sim), e "If needed, you can specify commandline parameters ..." (Se necessário, você pode especificar parâmetros por linhas de comando...), deixe em branco e dê ok.

Além disso, é interessante instalar o módulo de kernel realtime. O realtime serve para que o jackd e o oss2jack rodem na mais alta prioridade, evitando perdas sonoras. Note que caso você utilize Moobuntu este passo já foi feito por você, então você poderá pulá-lo.

Para instalar o realtime precisamos, de forma semelhante ao fusd-kor, compilá-lo. Para isso:

$ sudo apt-get install module-assistant
$ sudo m-a prepare
$ sudo apt-get install gcc-`grep LINUX_COMPILER /usr/src/linux/include/linux/compile.h | sed 's/.* \(0-9\+\.0-9\+\).*/\1/'`

$ sudo apt-get install realtime-lsm-source realtime-lsm
$ sudo m-a a-i realtime-lsm

Note que os 3 primeiros são idênticos aos da instalação do fusd-kor.

Normalmente, o pacote "libesd-alsa0" é instalado para permitir que o esd jogar a saída de som para o ALSA, mas já que nós usaremos o JACK (e o jackd por padrão corta o som ALSA), precisamos trocar o "libesd-alsa0" pelo "libesd0", permitindo o esd jogar a saída de som para dispositivos OSS.

$ sudo apt-get install libesd0

O esd é o responsável por tocar os "sons do Desktop GNOME", e dessa forma ele vai tocar para o dispositivo OSS criado pelo oss2jack.

Para rodar o oss2jack em prioridade máxima é necessário que o seu usuário esteja no grupo audio. Isso já é feito por padrão, mas é bom ter certeza, com o comando

$ sudo adduser livre audio

Trocando o 'livre' pelo seu usuário. Certifique-se de fazer isto para todos os usuários da máquina (a menos que algum usuário seja surdo :))

O GNOME inicia o esd assim que o usuário faz login (para tocar o som da inicialização), portanto precisamos iniciar o oss2jack antes do esd. Isto pode ser feito com o comando

$ cp /usr/share/doc/oss2jack/examples/.gnomerc ~/.gnomerc

para o usuário corrente. Também é necessário repetir este passo para todos os usuários da máquina, com

$ sudo cp /usr/share/doc/oss2jack/examples/.gnomerc /home/livre/.gnomerc

novamente substituindo 'livre' pelos outros usuários.

Está quase pronto! Basta reiniciar o computador OU executar os comandos abaixo:

$ sudo /etc/init.d/realtime start
$ sudo /etc/init.d/fusd-kor start
$ sudo rmmod snd-pcm-oss
$ sudo rmmod snd-mixer-oss

Se você não quiser reiniciar, é necessário pelo menos que os scripts do ~/.gnome-rc sejam iniciados. Isto é feito da forma mais simples com o pressionamento das teclas Ctrl-Alt-Backspace? (lembre-se de salvar tudo antes! :))

Finalmente, depois de reiniciado (o ambiente gráfico ou o sistema inteiro) precisamos apenas configurar a saída de som padrão do gstreamer, o que pode ser feito com o comando

gstreamer-properties

e escolhendo OSS para entrada e saída (input/output).

Pronto! O som já deve estar funcionando, já é possível, por exemplo, gravar do ZynAddSubFX para o Audacity. Para conferir as novas ligações do jack, chame o mesmo

qjackctl

2.2. Em outras distribuições

(esta parte do tutorial foi feita pelo Juba, se você não conseguir com as instruções abaixo, pergunte a ele e wike aqui :))

Em outras distribuições a instalação não é complexa, mas exige mais trabalho.

Em primeiro lugar, é necessário recompilar o kernel com o módulo do kernel chamado fusd. Nosso amigo rafael2k fez um patch para o kernel 2.6.18-rc, de forma que é necessário apenas aplicá-lo

$ patch -p1 < kfusd.diff

e recompilá-lo. A idéia deste guia não é ensinar o passo-a-passo da compilação do kernel, na Internet é possível encontrar vários guias explicando o procedimento.

Instalado o patch, agora vem a instalação do oss2jack em si, pegue-o aqui e siga os três passos ensinados na Linha de Comando:

$ ./configure
$ make
# make install

oss2jack instalado, vem a configuração do udev:

/etc/udev/rules.d/fusd.rules:
SUBSYSTEM="fusd" NAME="fusd/%k"

Feito isto, basta rodar o programa:

$ oss2jack -n 5
(por exemplo)

Configurar os programas desejados (Ekiga, Audacity...) a utilizarem a seguinte placa de som (input/output)

/dev/sound/dsp5

e voilá :)

Last modification: 26/10/2006 at 01:47, by: arlindo