Digicambilder automatisch runterladen,script udev [gelöst]

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

Digicambilder automatisch runterladen,script udev [gelöst]

Beitrag von fragenfrager » 21.05.2013 16:06:12

Hallo liebe Leute,

meine aktuelle Idee:
  • Kamera wird per USB Leitung mit Rechner verbunden
  • udev erkennt die Kamera und startet ein script
  • script erzeugt ein neus Verzeichnis und ruft gphoto2 -P im Verzeichnis auf
So also die Idee. Bisher hab ich ein funktionierendes Testscript erstellt mit folgendem Inhalt:

Code: Alles auswählen

#!/bin/bash
xmessage FUNKTIONIERT
Als udev rule habe ich folgendes:

Code: Alles auswählen

#CANON-CAMERA
ATTRS{idVendor}=="04a9", RUN+="/home/fragenfrager/getcampictures.sh"
Ihr Name ist 35-camera.rules

Hab da was entdeckt im Internet zu MTP und PTP:

Not all cameras work in this way: some of them use a non-storage protocol such as cameras supported by gphoto2. In the gphoto case, you do not want to be writing rules for your device, as is it controlled purely through userspace (rather than a specific kernel driver).
Ich will aber trotz PTP eine rule schreiben um mein script automatisch zu starten.
Irgendwer eine Idee warum die rules trotz korrektem idVendor nicht matcht?
Zuletzt geändert von fragenfrager am 21.05.2013 19:29:27, insgesamt 1-mal geändert.

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Re: Digicambilder automatisch runterladen,script udev PTP

Beitrag von storm » 21.05.2013 16:38:09

Versuchs mal mit einem Sternchen hinter dem vendor-code:

Code: Alles auswählen

ATTRS{idVendor}=="04a9*", RUN+="/home/fragenfrager/getcampictures.sh"
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Digicambilder automatisch runterladen,script udev PTP

Beitrag von NAB » 21.05.2013 16:44:58

fragenfrager hat geschrieben:

Code: Alles auswählen

#CANON-CAMERA
ATTRS{idVendor}=="04a9", RUN+="/home/fragenfrager/getcampictures.sh"
Ich nehm bei sowas zum debuggen immer erst mal RUN+="/usr/bin/beep", um zu schauen, ob die Regel überhaupt ausgelöst wird.

Ansonsten hilft bei sowas "udevadm monitor" ... schau mal in die man-page von udevadm.

Ob nun PTP oder nicht, das ist für _deine_ Kamera ja erst mal egal, das kannst du nachher im Script lösen. Aber erst mal brauchst du eine passende Regel, um das Script auszulösen.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

Re: Digicambilder automatisch runterladen,script udev PTP

Beitrag von fragenfrager » 21.05.2013 16:57:06

Bei Einschalten:
udevadm monitor

Code: Alles auswählen

KERNEL[6603.035179] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1 (usb)
KERNEL[6603.035243] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0 (usb)
UDEV  [6603.043965] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1 (usb)
UDEV  [6603.050359] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0 (usb)
Ähnliche Regel hab ich auch für einen USB Stick, gleiches Prinzip, funktioniert wunderbar, nur nicht mit der Kamera eben, hmmm...
/usr/bin/beep müsste doch gleiches ergeben wie mein script oben nur halt akustisch?

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Digicambilder automatisch runterladen,script udev PTP

Beitrag von NAB » 21.05.2013 18:57:11

fragenfrager hat geschrieben:/usr/bin/beep müsste doch gleiches ergeben wie mein script oben nur halt akustisch?
Richtig. Nur dass "beep" garantiert für jeden ausführbar ist und auch keinen Zugriff auf den X-Server braucht. Bei deinem Script bin ich mir da nicht so sicher.

Okay, das ist ein ADD-Ereignis (was keine Überraschung ist). Dann wäre die erste Regel zum Ausprobieren

Code: Alles auswählen

ACTION=="ADD", RUN+="/usr/bin/beep"
Wenn es dann beim Einschalten nicht BEEP macht, dann liest er deine Regel schon mal gar nicht.
Danach kannst du dann testen:

Code: Alles auswählen

ACTION=="ADD", ATTRS{idVendor}=="04a9", RUN+="/usr/bin/beep"
Hilfreich ist die Ausgabe von

Code: Alles auswählen

udevadm info -a -p /sys/bus/usb/devices/usb2/2-1/2-1.1/2-1.1\:1.0
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

Re: Digicambilder automatisch runterladen,script udev PTP

Beitrag von fragenfrager » 21.05.2013 19:27:06

okay, jetzt läuft es wie gewünscht, folgendes script:

Code: Alles auswählen

#!/bin/bash
mkdir /home/fragenfrager/Arbeitsfläche/Fotos-$(date -I) && cd /home/fragenfrager/Arbeitsfläche/Fotos-$(date -I) && gphoto2 -P && chown -R fragenfrager:fragenfrager /home/fragenfrager/Arbeitsfläche/Fotos-$(date -I)
done
mit folgender Regel:

Code: Alles auswählen

SUBSYSTEMS=="usb", ATTRS{idVendor}=="04a9", ENV{UDISKS_PRESENTATION_NOPOLICY}="1", ENV{UDISKS_PRESENTATION_HIDE}="1", RUN+="/home/fragenfrager/getcampictures.sh"
es scheint also wirklich an meinem Testscript gelegen zu haben wie du vermutet hast also an xmessages (habe dann auch xset und led probiert).

Ganz klar ist mir das allerdings nicht so, das heißt udev kann mit RUN keine xorg Anwendungen starten?

Und das mit beep ist so eine Sache, hätte es ja gleich ausprobiert aber ohne Lautsrecher kein Ton ;)
Weiterhin muss ich die ADD Option noch hinzufügen, soll ja nur bei Einschalten aufgerufen werden.

Vielen lieben Dank jedenfalls bis dahin, bin jetzt etwas schlauer und eine Komfortfunktion reicher :D

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Digicambilder automatisch runterladen,script udev PTP

Beitrag von NAB » 21.05.2013 21:03:54

Holla, das sieht gut aus!
fragenfrager hat geschrieben: ENV{UDISKS_PRESENTATION_NOPOLICY}="1", [/code]
Ich bin mir nicht sicher, ob du damit nicht etwas zuviel ausschaltest ... aber solange er alles tut, was er soll, egal :)
fragenfrager hat geschrieben:Ganz klar ist mir das allerdings nicht so, das heißt udev kann mit RUN keine xorg Anwendungen starten?
Theoretisch schon ... dazu muss es aber ein X-Display finden und darauf zugreifen können. Guck mal nach "xhost".
fragenfrager hat geschrieben:Und das mit beep ist so eine Sache, hätte es ja gleich ausprobiert aber ohne Lautsrecher kein Ton ;)
menno ... sparen die jetzt schon an den Mainboard-Beepern? *seufz*
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Benutzeravatar
fragenfrager
Beiträge: 658
Registriert: 31.12.2003 08:47:15

Re: Digicambilder automatisch runterladen,script udev PTP

Beitrag von fragenfrager » 23.05.2013 16:54:11

NAB hat geschrieben:Theoretisch schon ... dazu muss es aber ein X-Display finden und darauf zugreifen können. Guck mal nach "xhost".
klingt interessant, werd ich mich bei Gelegenheit hoffentlich dran erinnern ;)
NAB hat geschrieben:menno ... sparen die jetzt schon an den Mainboard-Beepern? *seufz*
Daran hab ich natürlich wieder nicht gedacht...Schon super worauf manch anderer kommt ;) Doch das Board hat wirklich keinen akustischen Signalgeber, hab grad nachgeschaut.

Antworten