Como configurar automaticamente o coletor padrão do PulseAudio para o servidor remoto na inicialização - Ubuntu 9.04

4

Eu uso o seletor de dispositivos Pulseaudio para definir o coletor padrão (em um laptop) para um servidor remoto. Isso funciona bem. Quando eu reinicio meu laptop, o coletor padrão é revertido para "padrão" (a placa de som do laptop). Existe uma maneira de obter o laptop para continuar a usar o servidor remoto depois de um reboot? Existe um comando que eu possa executar em um script no inicialização para alterar o coletor padrão de volta para o servidor remoto?

Estou executando o Ubuntu 9.04 nesta máquina.

Parece que há um problema ao criar o túnel com a versão do pulso usado na distribuição do Ubuntu 9.04. Se eu fizer o seguinte em Ubuntu 10.04 funciona:

pactl load-module module-tunnel-sink "server=192.168.1.64 sink=alsa_output.pci_8086_293e_sound_card_0_alsa_playback_0
sink_name=sink-DGTM"

pacmd set-default-sink sink-DGTM

Infelizmente isso não funciona no Ubuntu 9.04. O syslog mostra:

Nov 13 14:45:33 ubuntu-JMRT pulseaudio[3473]: module-tunnel.c: Stream died.

Então, vou assumir que há um bug nessa versão do pulso. Embora funcione com padevchooser , não consigo trabalhar da linha de comando. Eu também tentei adicionar o seguinte para /etc/pulse/default.pa e obteve os mesmos resultados:

load-module module-tunnel-sink server=192.168.1.64
sink=alsa_output.pci_8086_293e_sound_card_0_alsa_playback_0 sink_name=sink-DGTM
set-default-sink sink-DGTM

syslog:

Nov 13 14:45:33 ubuntu-JMRT pulseaudio[3473]: module-tunnel.c: Stream died.

Então, voltei a tentar descobrir onde exportar PULSE_SERVER para que os aplicativos iniciados pelo gnome o vejam quando eu reiniciar.

Eu tentei adicionar:

export PULSE_SERVER=tcp:192.168.1.64:4713

para: ~/.bashrc

Isso funciona se eu lançar aplicativos do console, mas não funcionar se eu iniciar aplicativos do gnome.

Eu também tentei adicionar esta exportação para:

~/.pulse/client.conf
/etc/pulse/client.conf
/usr/bin/start-pulseaudio-x11

mas nenhum dos itens acima funcionou.

    
por Dave M 14.11.2010 / 02:51

2 respostas

4

link - o padrão não é o mesmo que o fallback no PulseAudio. Não é possível definir um dispositivo "padrão" conforme descrito no link dentro do próprio PulseAudio.

A maneira "correta" de fazê-lo seria definir um coletor remoto via módulo-túnel-coletor como você está tentando fazer. Você diz que não é possível nessa versão do PulseAudio e só posso recomendar que você verifique novamente a sintaxe ou atualize de alguma forma. A configuração de PULSE_SERVER pode ser feita para shells de login, como na resposta de Gilles. Abaixo eu escrevo explicitamente sobre a minha solução (com uma versão recente do PulseAudio).

Minhas linhas exatas de /etc/pulse/default.pa :

.ifexists module-tunnel-sink.so
.nofail
load-module module-tunnel-sink server=192.168.0.1 sink=alsa_output.pci-0000_00_1b.0.analog-stereo sink_name=d-f05
.fail
.endif

... assim como você tenta fazer. Se isso funcionar, você pode definir um "padrão verdadeiro" por meio de, por exemplo, gnome-volume-control , onde seu coletor com alias deve aparecer como um dispositivo de saída disponível.

Dessa forma, você pode alternar a saída rapidamente para todos os aplicativos.

A definição do coletor remoto também pode ser melhorada por meio do Avahi, mas ainda não consegui fazer isso funcionar (não é um problema do PulseAudio).

    
por 29.11.2010 / 17:31
1

O local certo para definir variáveis de ambiente quando você efetua login é, na maioria dos casos, ~/.profile .

~/.bashrc é um arquivo de configuração do shell bash, lido na inicialização por instâncias interativas do bash. Não é o lugar certo para definir uma variável de ambiente, porque elas só seriam definidas em processos iniciados a partir de um shell interativo, como você observou.

~/.profile é lido pela maioria dos métodos de login. No entanto, dependendo da sua distribuição, gerenciador de exibição e tipo de sessão, ele pode não ser lido quando você efetuar login no modo gráfico. Ele é carregado na configuração padrão no Ubuntu 10.04, mas não tenho certeza sobre o 9.04. Se não estiver carregado, tente ~/.gnomerc ou ~/.xsession .

Veja também Diferença entre .bashrc e .bash_profile .

    
por 14.11.2010 / 12:18