LINUX.ORG.RU

Udev правило с xrandr работает только если его запустить вручную

 , , ,


0

1

Привет.

Никто не сталкивался с проблемой, что udev правило работает корректно только если запустить udevadm trigger, а при подключении девайса напрямую оно срабатывает, но xrandr не видит этот девайс?

Правило такое:

# cat /etc/udev/rules.d/99-hdmi.rules
SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/update_hdmi"

Скрипт примерно такой:

set -x
sleep 5
su $( ps -fe | grep xserver | grep -v grep | sed 's/\s.*//g') -c -l "export DISPLAY=:0; xrandr; xrandr --output HDMI1 --primary --mode 1360x768 --same-as eDP1"

Соответственно при подключении HDMI xrandr из скрипта не показывает HDMI девайс, а если запустить udevadm trigger --type=devices --action=change, показывет.

Можете подсказать, в чем проблема?


Проблема частично решена, оказывается udev'у не хватает пяти секунд, нужно от 8 до 10 для подключения монитора. Но всё же интересно, почему он такой долгий. Никто не знает?

IvS ()
Ответ на: комментарий от IvS

Ну так, он просто не моментально получает нужные данные, отсюда и задержка... И, думаю, это не вина udev. И пробуй отлавливать add¦change.

yars068 ★★★★ ()
Последнее исправление: yars068 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.