сценарий udev не запускается, когда случай происходит

Я раздражался, что каждый раз я соединяю свой HDMI-кабель, я должен вручную изменить звуковые настройки.

Я начал изучать правила udev, что я выпустил, эти два файла:

/etc/udev/rules.d/99-hdmi_sound.rules

SUBSYSTEM=="drm", RUN+="/lib/udev/hdmi_sound_toggle.sh"

/lib/udev/hdmi_sound_toggle.sh:

#!/bin/bash

HDMI_STATUS=`cat /sys/class/drm/card0/*HDMI*/status`
if [ $HDMI_STATUS = "connected" ]
then
    sudo -u root pactl set-card-profile 0 output:hdmi-stereo
else
    sudo -u root pactl set-card-profile 0 output:analog-stereo
fi

Когда я выполняю hdmi_sound_toggle.sh в терминале, он работает. Это не автоматически работает, все же.

Что я делаю неправильно?

3
задан 26 October 2014 в 00:43

2 ответа

Вы попытались перезагрузить udev? Это должно распознать новые правила автоматически, но возможно это не сделало...

sudo udevadm control --reload-rules ; sudo udevadm trigger

0
ответ дан 18 November 2019 в 04:35
  • Попытка переименовывают его к 99-hdmi_sound.rules (только с 2 цифрами)
  • & используйте RUN вместо этого и опустите ACTION

    SUBSYSTEM=="drm", RUN+="/lib/udev/hdmi_sound_toggle.sh"
    
  • , Это могла быть проблема среды (не тот же пользователь, или необъявленный env переменные). Попытайтесь добавить [приблизительно 116] или touch команды для трассировки сценария. Пример:

    echo `date --rfc-3339='ns'` START >> /home/<your-username>/Desktop/udev_test_log.txt
    

    Помещенный в начале, конце, в if, else...

0
ответ дан 18 November 2019 в 04:35

Другие вопросы по тегам:

Похожие вопросы: