Pergunta

O Ubuntu startup som / login pode ser muito alto, mas eu gosto de tê-lo. Eu escrevi um script que usa amixer para definir o volume para 25%. Este é o nível que eu gostaria de tê-lo em, mas quando eu uso a saída de TV ou fones de ouvido eu tenho que aumentar o volume. Eu não consigo obter o script seja executado antes da reprodução do som login. Eu tentei um @reboot cron, e colocando um link simbólico para o script em /etc/rc3.d/, e no meu script .bash_profile. Apenas o 3º método realmente define o volume corretamente, mas após os jogos sãos login.

Idealmente, eu quero ter o script executado quando estou registrando para a noite, ou apenas antes que a tela de login ubuntu exibida.

Aqui está o comando para definir o volume:

`/usr/bin/amixer -c 0 sset Master,0 25% > /dev/null`

Sugestões para outros métodos para tentar são apreciados.

Foi útil?

Solução

Você pode querer tentar adicionar essa linha para o seu como a /etc/rc.local Isto pode não ser breve, porém, desde rc.local será chamado após o gdm.

Além disso, observe o nível de execução padrão no Ubuntu é 2 , não 3 . O seu link em rc3.d provavelmente não funcionou, simplesmente porque você onde não usando nível de execução 3. O nível de execução padrão é configurado por /etc/event.d/rc-default

Outras dicas

Eu acredito que os scripts de inicialização do Ubuntu já incluem um "alsactl restaurar". Você deve ser capaz de executar "alsactl loja" com o volume já definido para 25% e afetam todas as reinicializações futuras.

Ahh, sim, mas eles também contêm uma "alsactl store" no desligamento?

Rob,

Eu estou tentando resolver o mesmo problema. Eu te tirei line "amixer" acima e fez um monte de picar ao redor aprendendo sobre os níveis de execução, as pastas /etc/rc#.d e o comando update-rc.d. Não é perfeito. Ele ainda não é executado durante um reinício do jeito que eu gostaria que, mas é um começo.

Sugestões para melhorar seria seria bem-vinda.

E, aqui está o meu código abaixo .....

sudo echo "#! / Bin / bash"> /etc/init.d/lowvol.sh

sudo echo "/ usr / bin / amixer -c 0 sset Mestre, 0 35%> / dev / null" >> /etc/init.d/lowvol.sh

sudo chmod + x /etc/init.d/lowvol.sh

sudo chown root: root /etc/init.d/lowvol.sh

sudo update-rc.d lowvol.sh parada 20 0 6.

Eu usei este método para conseguir isso antes, mas em Arch Linux. Agora, eu não estou muito familiarizado com o sistema de inicialização do Ubuntu usos, mas eu acho que você poderia tentar adaptar isso para Ubuntu.

O que você pode fazer é escrever um script para baixar o seu volume quando você desligar o computador. Algo parecido com isto:

#!/bin/sh

amixer -- sset Master playback -40dB

exit 1 

, em seguida, executar esse script no desligamento.

Criar uma configuração de unidade e habilitá-lo para a partida.

Assumindo ALSA e systemd (Ubuntu utiliza a versão systemd depois de 14 em diante)

/etc/systemd/system/alsavolume.service

Crie um arquivo de unidade aqui. Você pode ajustar o comando para /usr/bin/amixer sset PCM -- 97% executado. Lembre-se não usar citações (de outra forma systemd irá interpretar a coisa toda como um comando).

[Unit]
Description="Set volume level."
After=sound.target

[Service]
Type=simple
ExecStart=/usr/bin/amixer sset PCM -- 97%

[Install]
WantedBy=multi-user.target

Ativar-lo (isso significa criar um link simbólico para /etc/systemd/system/multi-user.target.wants para executar na inicialização, mas os seguintes comandos cuidar dele para você.)

  1. daemons Reload

    systemctl daemon-reload

    |
  2. Ativar serviço

    systemctl enable alsavolume.service

    Você pode adicionar o --now parâmetro para executar a unidade imediatamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top