Question

Le son de démarrage / connexion d'Ubuntu peut être très fort, mais j'aime bien l'avoir. J'ai écrit un script qui utilise amixer pour régler le volume à 25%. C'est le niveau auquel j'aime le faire, mais lorsque j'utilise une sortie TV ou un casque, je dois augmenter le volume. Je n'arrive pas à faire en sorte que le script s'exécute avant la lecture du son de connexion. J'ai essayé un cron @reboot et un lien symbolique vers le script dans /etc/rc3.d/ et dans mon script .bash_profile. Seule la 3ème méthode règle le volume correctement, mais après la lecture du son de connexion.

Idéalement, je souhaite que le script soit exécuté lorsque je me déconnecte pour la nuit ou juste avant que l'écran de connexion d'ubuntu ne s'affiche.

Voici la commande pour régler le volume:

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

Les suggestions d'autres méthodes à essayer sont appréciées.

Était-ce utile?

La solution

Vous voudrez peut-être essayer d'ajouter cette ligne à /etc/rc.local à votre goût

Notez également que le niveau d'exécution par défaut sur Ubuntu est 2 , et non 3 . Votre lien dans rc3.d n'a probablement pas fonctionné simplement parce que vous n'utilisiez pas le niveau d'exécution 3. Le niveau d'exécution par défaut est configuré par /etc/event.d/rc-default

Autres conseils

Je pense que les scripts de démarrage d'Ubuntu incluent déjà une "restauration alsactl". Vous devriez pouvoir exécuter " alsactl store " avec le volume déjà réglé à 25% et affecte tous les redémarrages futurs.

Ahh, oui, mais contiennent-ils également un "alsactl store"? à l'arrêt?

Rob,

J'essaie de résoudre le même problème. Je vous ai pris "Amixer". au-dessus de la ligne ci-dessus et a beaucoup discuté des niveaux d'exécution, des dossiers /etc/rc#.d et de la commande update-rc.d. Ce n'est pas parfait Il ne fonctionne toujours pas lors d'un redémarrage comme je le voudrais, mais c'est un début.

Des suggestions pour l’améliorer seraient les bienvenues.

Et voici mon code ci-dessous .....

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

sudo echo "/ usr / bin / amixer -c 0 maître sset, 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 stop 20 0 6.

J'ai utilisé la cette méthode pour atteindre cet objectif auparavant, mais sans succès. Arch Linux. Maintenant, je ne connais pas trop le système init utilisé par Ubuntu, mais je suppose que vous pourriez essayer de l’adapter à Ubuntu.

Ce que vous pouvez faire est d'écrire un script pour baisser votre volume lorsque vous éteignez votre ordinateur. Quelque chose comme ça:

#!/bin/sh

amixer -- sset Master playback -40dB

exit 1 

puis exécutez ce script à l’arrêt.

Créez une configuration d'unité et activez-la pour le démarrage.

En supposant que ALSA et systemd (Ubuntu utilise la version de systemd après 14 ans et plus)

/etc/systemd/system/alsavolume.service

Créez un fichier d’unité ici. Vous pouvez ajuster la commande pour exécuter / usr / bin / amixer sset PCM - 97% . N'oubliez pas de ne pas utiliser de citations (sinon, systemd interprétera le tout comme une commande).

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

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

[Install]
WantedBy=multi-user.target

Activez-le (cela signifie que vous créez un lien symbolique vers /etc/systemd/system/multi-user.target.wants à exécuter au démarrage, mais les commandes suivantes s’occupent de vous. )

  1. Recharger des démons

    systemctl daemon-reload

  2. Activer le service

    systemctl enable alsavolume.service

    Vous pouvez ajouter le paramètre - now pour faire fonctionner l'unité immédiatement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top