Linux: Befehl bei Hardware-Änderung ausführen
lima-city → Forum → Heim-PC → Betriebssysteme
abfragen
aktuellen wunsch
anwendbar vorteile
befehl
bestimmten hardware
bildschirm
code
deutsch url
edition
eintragen
http
monitor
nachteil
paar
problem
regeln
sekunde
status
url
vorteil
-
Hallo,
ich habe mir inzwischen für linux einige kleinere Bash-Scripts geschrieben, welche zur Zeit per Tastenkombinationen aufgerufen werden.
Nun wollte ich wissen, an welcher Stelle ich den Befehl eintragen muss, wenn er immer bei einer bestimmten Hardware-Änderung ausgeführt werden soll.
Konkret für meinen aktuellen Wunsch:
Mein Script untersucht, welche Bildschirme angeschlossen sind und ändert entsprechend (über xrandr) u. a. die Auflösung.
Jetzt soll dieses Script immer ausgeführt werden, wenn ein neuer Bildschirm erkannt wird (VGA).
Aus Interesse hätte ich halt auch gerne eine generelle Lösung / Lösungsansatz für andere Änderungen (z.B. neue SD-Karte, USB, WLAN-Netz gefunden, etc.).
System: Linux Mint Debian Edition
lg snapshot9 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Speziell fur das GraKa-Problem gibt es zwei Lösungen die beide ihre Vor- und Nachteile haben.
1) Du kannst alle X Sekunden /sys abfragen
Vorteile: Dies wird wahrscheinlich funktionieren
Nachteile: Ist sehr unsauber und kommt mit entsprechenden Overhead.
Bei mir sieht das z.B. so aus:
$ cat /sys/class/drm/card0-LVDS-1/status connected $ cat /sys/class/drm/card0-VGA-1/status disconnected
Wenn du so alle benötigten Anschlusse (per Skript) alle paar Sekunden abfragst wirst du relativ zuverlässig rausfinden ob sich da etwas geändert hat.
2) Udev ist dein Freund (nicht nur speziell auf das GraKa-Problem anwendbar)
Vorteile: Minimaler Overhead, da Eventbasiert
Nachteile: Die Events sind nicht zuverlässig (im Sinne von, es kann fur jede Grafikkarte und jeden Computer unterschiedlich sein welche Events du bekommst) und die Events müssen nicht immer eindeutig sein. Es kann also sein das Udev für dich nicht funktionieren wird.
Hierzu würde ich einfach mal
udevadm monitor --property
laufen lassen und die Bildschirme ein paar mal An- und Abschliessen und sehen welche Events du bekommst. Danach musst du dann sogenannte Udev-Regeln schreiben:
http://wiki.ubuntuusers.de/udev#Erstellen-eigener-udev-Regeln (Deutsch)
http://reactivated.net/writing_udev_rules.html (Englisch)
Lg
Beitrag zuletzt geändert: 11.3.2012 10:37:54 von wrertzu -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage