Il est parfois pénible de ne pas retrouver ses réglages son après l’ouverture de session.
On peut régler ce désagrément en utilisant les facilités de Systemd.
Environnement
PC sous Linux Debian 10 Buster.
Pulseaudio et Alsa sont installés.
Créer un fichier de sauvegarde des paramètres son
sudo alsactl store
Le déplacer dans le home utilisateur
Exemple pour l’utilisateur guy
sudo mv /var/lib/alsa/asound.state /home/guy/.config/alsa/save.asound.state
Créer son service Systemd utilisateur
On va le placer dans son home dans .config
Créer le dossier
mkdir ~/.config/systemd/user
Créer le fichier alsa-restore.service
Vérifier sa carte son
cat /proc/asound/cards 0 [SB ]: HDA-Intel - HDA ATI SB HDA ATI SB at 0xf0500000 irq 16
Mettre le contenu suivant dans le fichier alsa-restore.service.
Le 0 indique que l’on utilise la carte son 0
[Unit] Description=Ma restauration des niveaux de son alsa After=pulseaudio.service [Service] ExecStartPre=/bin/sleep 15 ExecStart=/usr/sbin/alsactl -f /home/guy/.config/alsa/save.asound.state restore 0 [Install] WantedBy=default.target
Démarrer le service
systemctl –user start alsa-restore.service
Vérifier le service
systemctl –user status alsa-restore.service
Activer le service
systemctl –user enable alsa-restore.service
Explications
On a créé un service pour son utilisateur qui permets de restaurer ses réglages personnels du son.
Le service est lancé une fois, 15 secondes après l’exécution du service pulseaudio afin que les réglages ne soient plus écrasés ensuite.
systemctl --user status pulseaudio.service
● pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor pr
Active: active (running) since Wed 2018-06-06 08:23:17 CEST; 25min ago
Main PID: 11224 (pulseaudio)
CGroup: /user.slice/user-1001.slice/user@1001.service/pulseaudio.service
└─11224 /usr/bin/pulseaudio --daemonize=no
juin 06 08:23:16 debian systemd[11071]: Starting Sound Service...
juin 06 08:23:17 debian systemd[11071]: Started Sound Service.
systemctl --user status alsa-restore.service
● alsa-restore.service - Ma restauration des niveaux de son alsa
Loaded: loaded (/home/guy/.config/systemd/user/alsa-restore.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2018-06-06 08:23:18 CEST; 1h 0min ago
Process: 11233 ExecStart=/usr/sbin/alsactl -f /home/guy/.config/alsa/save.asound.state restore 0 (code=exited, status=0/SUCCESS)
Process: 11083 ExecStartPre=/bin/sleep 15 (code=exited, status=0/SUCCESS)
Main PID: 11233 (code=exited, status=0/SUCCESS)
juin 06 08:23:03 debian systemd[11071]: Starting Ma restauration des niveaux de son alsa...
juin 06 08:23:18 debian systemd[11071]: Started Ma restauration des niveaux de son alsa.
Outil de réglage du son: alsamixer
alsamixer -c0
N.B: Quand vous êtes satisfait de vos réglages, gardez cet affichage et dans une autre fenêtre terminal sauvegardez avec la commande alsactl store
Infos avec la commande amixer
amixer Simple mixer control 'Master',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 65536 Mono: Front Left: Playback 41350 [63%] [on] Front Right: Playback 41350 [63%] [on] Simple mixer control 'Capture',0 Capabilities: cvolume cswitch cswitch-joined Capture channels: Front Left - Front Right Limits: Capture 0 - 65536 Front Left: Capture 8739 [13%] [on] Front Right: Capture 8739 [13%] [on]
amixer -c0 info Card hw:0 'SB'/'HDA ATI SB at 0xf0500000 irq 16' Mixer name : 'IDT 92HD81B1X5' Components : 'HDA:111d7605,103c1443,00100402' Controls : 24 Simple ctrls : 12
amixer -c0 contents numid=19,iface=CARD,name='Front Headphone Jack' ; type=BOOLEAN,access=r-------,values=1 : values=off numid=17,iface=CARD,name='Internal Mic Phantom Jack' ; type=BOOLEAN,access=r-------,values=1 : values=on numid=18,iface=CARD,name='Mic Jack' ; type=BOOLEAN,access=r-------,values=1 : values=off numid=20,iface=CARD,name='Speaker Phantom Jack' ; type=BOOLEAN,access=r-------,values=1 : values=on numid=16,iface=MIXER,name='Master Playback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=15,iface=MIXER,name='Master Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=127,step=0 : values=111 | dBscale-min=-95.25dB,step=0.75dB,mute=1 numid=2,iface=MIXER,name='Headphone Playback Switch' ; type=BOOLEAN,access=rw------,values=2 : values=off,off numid=1,iface=MIXER,name='Headphone Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0 : values=0,0 | dBscale-min=-95.25dB,step=0.75dB,mute=1 numid=23,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---RW-,values=2,min=0,max=255,step=0 : values=235,235 | dBscale-min=-51.00dB,step=0.20dB,mute=0 numid=12,iface=MIXER,name='Mic Boost Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0 : values=0,0 | dBscale-min=0.00dB,step=10.00dB,mute=0 numid=7,iface=MIXER,name='Mic Playback Switch' ; type=BOOLEAN,access=rw------,values=2 : values=off,off numid=6,iface=MIXER,name='Mic Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=31,step=0 : values=0,0 | dBscale-min=-34.50dB,step=1.50dB,mute=0 numid=10,iface=MIXER,name='Capture Switch' ; type=BOOLEAN,access=rw------,values=2 : values=on,on numid=9,iface=MIXER,name='Capture Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=15,step=0 : values=0,0 | dBscale-min=0.00dB,step=1.50dB,mute=0 numid=5,iface=MIXER,name='Loopback Mixing' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Disabled' ; Item #1 'Enabled' : values=0 numid=8,iface=MIXER,name='Auto-Mute Mode' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'Disabled' ; Item #1 'Enabled' : values=1 numid=13,iface=MIXER,name='Beep Playback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=14,iface=MIXER,name='Beep Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=3,step=0 : values=0 | dBscale-min=-18.00dB,step=6.00dB,mute=0 numid=24,iface=MIXER,name='Digital Capture Volume' ; type=INTEGER,access=rw---RW-,values=2,min=0,max=120,step=0 : values=0,0 | dBscale-min=-30.00dB,step=0.50dB,mute=0 numid=11,iface=MIXER,name='Internal Mic Boost Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0 : values=0,0 | dBscale-min=0.00dB,step=10.00dB,mute=0 numid=4,iface=MIXER,name='Speaker Playback Switch' ; type=BOOLEAN,access=rw------,values=2 : values=on,on numid=3,iface=MIXER,name='Speaker Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0 : values=127,127 | dBscale-min=-95.25dB,step=0.75dB,mute=1 numid=22,iface=PCM,name='Capture Channel Map' ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0 : values=0,0 | container | chmap-fixed=FL,FR numid=21,iface=PCM,name='Playback Channel Map' ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0 : values=0,0 | container | chmap-fixed=FL,FR