You are not logged in.
Pages: 1
Hello,
I'm using PulseAudio to make my arch able to auto-switch audio output between HDMI/speaker, basicly according to the wiki https://wiki.archlinux.org/index.php/Pu … io_to_HDMI
However, I can get multiple [fail] during boot. I don't know what is going on and how to fix it.
Here is some basic info:
aplay -l
card 0: PCH [HDA Intel PCH], device 0: ALC3227 Analog [ALC3227 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
/usr/local/bin/hdmi_sound_toggle.sh
#!/bin/bash
#The wiki get the USER_NAME this way, but the script cannot run on my computer.
#USER_NAME=$(w -hs | awk -v vt=tty$(fgconsole) '$0 ~ vt {print $1}')
USER_NAME=$(id -u -n)
USER_ID=$(id -u "$USER_NAME")
HDMI_STATUS=$(</sys/class/drm/card0/*HDMI*/status)
export PULSE_SERVER="unix:/run/user/"$USER_ID"/pulse/native"
if [[ $HDMI_STATUS == connected ]]
then
sudo -u "$USER_NAME" pactl --server "$PULSE_SERVER" set-card-profile 0 output:hdmi-stereo+input:analog-stereo
else
sudo -u "$USER_NAME" pactl --server "$PULSE_SERVER" set-card-profile 0 output:analog-stereo+input:analog-stereo
fi
/etc/udev/rules.d/99-hdmi_sound.rules
KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/bin/systemctl start hdmi_sound_toggle.service"
/etc/systemd/system/hdmi_sound_toggle.service
[Unit]
Description=HDMI Hotplug Toggle
[Service]
Type=oneshot
ExecStart=/usr/local/bin/hdmi_sound_toggle.sh
[Install]
WantedBy=multi-user.target
And the error message goes like this:
journalctl -u hdmi_sound_toggle
-- Reboot --
Jul 28 01:52:22 markSeven systemd[1]: Starting HDMI Hotplug Toggle...
Jul 28 01:52:23 markSeven sudo[346]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/sbin/pactl --server unix:/run/user/0/p
Jul 28 01:52:23 markSeven sudo[346]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/sbin/pactl --server unix:/run/user/0/p
Jul 28 01:52:23 markSeven sudo[346]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[342]: Connection failure: Connection refused
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[342]: pa_context_connect() failed: Connection refused
Jul 28 01:52:23 markSeven sudo[346]: pam_unix(sudo:session): session closed for user root
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Main process exited, code=exited, status=1/FAILURE
Jul 28 01:52:23 markSeven systemd[1]: Failed to start HDMI Hotplug Toggle.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Unit entered failed state.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Failed with result 'exit-code'.
Jul 28 01:52:23 markSeven systemd[1]: Starting HDMI Hotplug Toggle...
Jul 28 01:52:23 markSeven sudo[366]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/sbin/pactl --server unix:/run/user/0/p
Jul 28 01:52:23 markSeven sudo[366]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[362]: Connection failure: Connection refused
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[362]: pa_context_connect() failed: Connection refused
Jul 28 01:52:23 markSeven sudo[366]: pam_unix(sudo:session): session closed for user root
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Main process exited, code=exited, status=1/FAILURE
Jul 28 01:52:23 markSeven systemd[1]: Failed to start HDMI Hotplug Toggle.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Unit entered failed state.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Failed with result 'exit-code'.
Jul 28 01:52:23 markSeven systemd[1]: Starting HDMI Hotplug Toggle...
Jul 28 01:52:23 markSeven sudo[381]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/sbin/pactl --server unix:/run/user/0/p
Jul 28 01:52:23 markSeven sudo[381]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[375]: Connection failure: Connection refused
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[375]: pa_context_connect() failed: Connection refused
Jul 28 01:52:23 markSeven sudo[381]: pam_unix(sudo:session): session closed for user root
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Main process exited, code=exited, status=1/FAILURE
Jul 28 01:52:23 markSeven systemd[1]: Failed to start HDMI Hotplug Toggle.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Unit entered failed state.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Failed with result 'exit-code'.
Jul 28 01:52:23 markSeven systemd[1]: Starting HDMI Hotplug Toggle...
Jul 28 01:52:23 markSeven sudo[390]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/sbin/pactl --server unix:/run/user/0/p
Jul 28 01:52:23 markSeven sudo[390]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[385]: Connection failure: Connection refused
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[385]: pa_context_connect() failed: Connection refused
Jul 28 01:52:23 markSeven sudo[390]: pam_unix(sudo:session): session closed for user root
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Main process exited, code=exited, status=1/FAILURE
Jul 28 01:52:23 markSeven systemd[1]: Failed to start HDMI Hotplug Toggle.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Unit entered failed state.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Failed with result 'exit-code'.
Jul 28 01:52:23 markSeven systemd[1]: Starting HDMI Hotplug Toggle...
Jul 28 01:52:23 markSeven sudo[399]: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/sbin/pactl --server unix:/run/user/0/p
Jul 28 01:52:23 markSeven sudo[399]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[395]: Connection failure: Connection refused
Jul 28 01:52:23 markSeven hdmi_sound_toggle.sh[395]: pa_context_connect() failed: Connection refused
Jul 28 01:52:23 markSeven sudo[399]: pam_unix(sudo:session): session closed for user root
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Main process exited, code=exited, status=1/FAILURE
Jul 28 01:52:23 markSeven systemd[1]: Failed to start HDMI Hotplug Toggle.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Unit entered failed state.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Failed with result 'exit-code'.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Start request repeated too quickly.
Jul 28 01:52:23 markSeven systemd[1]: Failed to start HDMI Hotplug Toggle.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Failed with result 'start-limit-hit'.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Start request repeated too quickly.
Jul 28 01:52:23 markSeven systemd[1]: Failed to start HDMI Hotplug Toggle.
Jul 28 01:52:23 markSeven systemd[1]: hdmi_sound_toggle.service: Failed with result 'start-limit-hit'.
I wonder why the hdmi_sound_service is triggered during boot and where it goes wrong.
How could I fix it?
Thanks!
a novice at the college of coders
Offline
Get rid of the excessive sudoing, and make a Systemd User Service instead, this will already have the correct environment and be invoked correctly. The wiki contains a lot of cruft, I might try to make some time to clean it up a bit, and bring it up to speed with modern conventions
Offline
Pages: 1