kostenloser Webspace werbefrei: lima-city


Linux: Befehl bei Hardware-Änderung ausführen

lima-cityForumHeim-PCBetriebssysteme

  1. Autor dieses Themas

    snapshot9

    snapshot9 hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!