Set Ubuntu volume de som na inicialização
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.
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ê.)
-
daemons Reload
systemctl daemon-reload
-
Ativar serviço
systemctl enable alsavolume.service
Você pode adicionar o
--now
parâmetro para executar a unidade imediatamente.