Kann eine automatisch gemountete Kamera in 14.04 per Skript automatisch demontiert werden?

Kann eine automatisch gemountete Kamera in 14.04 per Skript automatisch demontiert werden?

Die Version von Ubuntu, die ich habe (14.04.1), mountet meine Digitalkamera automatisch und generiert ein Fenster, in dem ich angeben kann, was ich damit machen soll. Da ich mit allen angebotenen Optionen unzufrieden war, habe ich ein Skript geschrieben, das genau das tut, was ich will, indem es gphoto2 verwendet, um auf die Kamera zuzugreifen und Dateien von ihr abzurufen. Das einzige Problem ist, dass die Kamera mountet bleibt und somit, soweit es gphoto2 betrifft, nicht verfügbar ist, weil sie nicht freigegeben wurde, auch wenn ich in dem Fenster „Nichts tun“ angegeben habe. Um sie freizugeben, muss ich eine Ordneranzeige öffnen oder suchen und die Kamera gezielt auswerfen. Ich würde mir diesen Schritt lieber sparen und mein Skript einfach laufen lassen. Ich frage mich, ob es eine Möglichkeit gibt, dies zu tun.

Antwort1

Für Ubuntu 17.10, 18.04 und höher müssen Sie das Dienstprogramm verwenden gio(das ersetzt hat gvfs-mount).

Wenn die Kamera montiert ist und Sie gphoto2 installiert haben, versuchen Sie

gio mount -s gphoto2

Wenn Sie die Kamera jedoch gezielt anvisieren möchten:

gio mount -l

zeigt Ihnen die mountbaren Laufwerke.

Wenn Sie eine Kamera angeschlossen haben, könnte es folgendermaßen aussehen:

$ gio mount -l
Drive(0): DA4032
  Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
Volume(0): Canon Digital Camera
  Type: GProxyVolume (GProxyVolumeMonitorGPhoto2)
  Mount(0): Canon Digital Camera -> gphoto2://%5Busb%3A002,002%5D/
    Type: GProxyShadowMount (GProxyVolumeMonitorGPhoto2)
Mount(1): Canon Digital Camera -> gphoto2://%5Busb%3A002,002%5D/
  Type: GDaemonMount

Wenn Sie den Speicherort danach kopieren, ->können Sie es über gio mount -u(unmount, siehe Hilfe) aushängen:gio help mount

gio mount -u gphoto2://%5Busb%3A002,002%5D/

wird die Kamera über die Shell aushängen. Um dies zu automatisieren, müssen Sie nun ein systemd-Skript erstellen.

Antwort2

Wenn Sie nicht herumfummeln möchten udev(was eine Systemsache ist), können Sie udiskdie Kamera über die Schnittstelle aushängen.

Die Kamera wird normalerweise an einem festen Ort montiert, wie /media/user/1234-5678/oder ähnlich (Ihre Erfahrung ist unterschiedlich, hängt davon ab, wie die Kamera die Karte formatiert); und als Gerät, sagen wir /dev/sdc1/.

Jetzt können Sie es aus Ihrem Skript aushängen mit

 udisksctl unmount -b /dev/sdc1

das Problem ist, dass sich das Gerät ändern kann; meine Lösung ist dieser kleine Zaubertrick

 udisksctl unmount -b $(mount | grep 1234-5678  | cut -d" "  -f1)

Dies funktioniert, sofern sich die Karten-ID nicht ändert.

verwandte Informationen