Pages

Affichage des articles dont le libellé est Udev rules anyone?. Afficher tous les articles
Affichage des articles dont le libellé est Udev rules anyone?. Afficher tous les articles

Udev rules anyone?

lundi 15 août 2016

I have a bash, (below, which mirrors the display to my Tv. The duplicate version I have in /home/memyself/HouseKeeping/ works without any problems from a panel quick launch icon.

Code:

#!/bin/bash

# see http://ift.tt/2aW2Zcu
# also http://ift.tt/2bta1BW

# For refence, an inactive copy of this script is kept in /home/memyself/HouseKeeping/, but this is the one that does the work.
# This script is activated by Udev rule kept in /etc/udev/rules.d/70-MirrorToTv.rules
# Note Udev naming convention for rules is important!
# see http://ift.tt/2aW2IpX
# see http://ift.tt/2bt9EaD
# see http://ift.tt/qFdpS3 

# debug
/bin/echo "$(date) Executing udev monitor clone....." >> /home/memyself/Desktop/MirrorDebug.txt


# Check default screen is eDP1
if xrandr --query | grep "eDP1"; then
  # check HDMI is connected as "HDMI1" or "HDMI-1"
  if xrandr --query | grep "HDMI1"; then
     xrandr --output eDP1 --auto --primary --output HDMI1 --auto --same-as eDP1
   else if xrandr --query | grep "HDMI-1"; then
      xrandr --output eDP1 --auto --primary --output HDMI-1 --auto --same-as eDP1
     else
        xrandr --query
        echo -n "Neither HDMI1 nor HDMI-1 is present, hit return to exit"
        read YesNo
   fi
  fi
 else
    xrandr --query
    echo -n "Main display is not eDP1, hit return to exit"
    read YesNo
fi
Note: I have set the permissions to allow the bash to run as a program.

I would like to have a udev rule that launches the bash automatically when the Tv is switched on and have tried various variations of the following without any success:

Code:

# Calls /usr/bin/MirrorToTv.sh when HDMI tv is connected

# see http://ift.tt/2aW2IpX
# see http://ift.tt/2bt9EaD
# see http://ift.tt/qFdpS3 

# Note Udev naming convention for rules is important!


KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", RUN+="su memyself -c /usr/bin/MirrorToTv.sh"
The bash is stored in

Code:

/usr/bin/MirrorToTV.sh
The udev rule is stored in

Code:

/etc/udev/rules.d/70-MirrorToTv.rules
Noting the debug pipe and the fact there is no debug output, I am fairly sure the bash is never called. The problem is: Why?

Any advice is very welcome.

Irvine

Let's block ads! (Why?)



Udev rules anyone?
Read more ...