Användarverktyg

Webbverktyg


teknik:guider:hdmi_ljud_i_fedora

Växla till HDMI-ljud i Fedora

I min Thinkpad X230 har jag en DisplayPort som jag kan ansluta till HDMI på en TV eller skärm. Den hanterar även ljud men tyvärr måste jag växla ljudet manuellt via pavucontrol eller pacmd.

Här visar jag hur jag automatiskt kan växla ljud när en DisplayPort kabel ansluts.

Udev

Det hela utlöses med en udev-regel som ser ut så här.

ACTION=="change", SUBSYSTEM=="drm", RUN+="/home/stemid/bin/dp_hotplug.sh"

Den kan sparas i en fil som heter /etc/udev/rules.d/70-dp_hotplug.rules.

Ladda om regler.

sudo udevadm control --reload-rules

Pulse Audio

Med PulseAudio kan man byta ljudprofil för sitt ljudkort.

Visa alla profiler för ljudkortet och kontrollera om rätt HDMI-profil används med pacmd.

pacmd list-cards

På min dator ser det ut så här.

$ pacmd list-cards|grep active
        active profile: <output:analog-stereo>

Och HDMI-profilen heter output:hdmi-stereo+input:analog-stereo.

Skript

På min laptop är DisplayPort HDMI1, jag har dock tre andra HDMI-portar enligt xrandr så det kan vara bra att kontrollera.

Kan också vara bra att kontrollera statusen i /sys/class/drm/card0/*HDMI-A-1/status.

Här är skriptet jag använder, hänvisar till detta i udev-regeln ovan.

#!/bin/bash

Username=stemid
UserID=$(id -u $Username)
HDMIStatus=$(cat /sys/class/drm/card0/*HDMI-A-1/status)

export PULSE_SERVER="unix:/run/user/$UserID/pulse/native"

if [ $HDMIStatus = 'connected' ]; then
  sudo -u $Username pactl --server $PULSE_SERVER set-card-profile 0 output:hdmi-stereo+input:analog-stereo
  sudo -u $Username notify-send HDMI "Connected"
else
  sudo -u $Username pactl --server $PULSE_SERVER set-card-profile 0 output:analog-stereo
  sudo -u $Username notify-send HDMI "Disconnected"
fi

Se till att det är exekverbart och anslut sedan en kabel för att testa.

Felsökning

Kontrollera reaktionen från udev när kabel ansluts.

sudo udevadm monitor

Utlös falsk händelse i subsystemet drm.

sudo udevadm trigger -s drm
teknik/guider/hdmi_ljud_i_fedora.txt · Senast uppdaterad: 2015-06-25 18:04 av stemid