Wie kann ich meinen Raspberry Pi als drahtlosen USB-Controller verwenden?


7

Ich versuche, meine Canon 550D mit dem EOS-Dienstprogramm (auf meinem Mac) zu steuern. Theoretisch suche ich Folgendes:

Das RPi wird an den 550D angeschlossen und mit einem LAN verbunden. Mein Mac befindet sich im selben LAN und führt das EOS-Dienstprogramm aus. Ich möchte es so machen, dass der Mac den 550D erkennt, als wäre er physisch mit dem Mac verbunden. Ich kann dann das EOS-Dienstprogramm verwenden, um alle Kameraeinstellungen zu steuern (wie Weißabgleich, Verschlusszeit, Fokus, Aufnahme starten / stoppen usw.).

Ist das möglich? Wenn das so ist, wie?


Möglicherweise können Sie gphoto2 verwenden, um die Kamera vom Raspberry Pi aus zu steuern, aber Sie benötigen eine Möglichkeit, um gphoto2 vom Mac aus fernzusteuern.
Craig

@Craig Ja, aber soweit ich weiß, unterstützt gphoto2 die 550D nicht vollständig. Verschlusszeit, Blende, etc ...
Daviesgeek

Antworten:


10

Sie können ein USB-Gerät über das Netzwerk usbipfreigeben, indem Sie es auf Ihrem RPi installieren . Ich habe ein kurzes Tutorial im offiziellen Raspberry Pi-Forum gefunden (alle Credits an den Geheimagenten, das OP). Ich habe die Lösung nicht selbst getestet.

Auf dem Raspberry Pi (Server)

  1. Installieren Sie auf Raspbian / Debian Wheezy usbip:

    $ sudo apt-get install usbip
    
  2. Von nun an wird der usbipdDämon ausgeführt, wenn Sie Ihr RPi starten. Laden Sie den Host-Treiber:

    $ sudo modprobe usbip-host
    
  3. Listen Sie die an das RPi angeschlossenen USB-Geräte auf und notieren Sie die Gerätebusid, die Sie freigeben möchten:

    $ sudo usbip list -l
    
  4. Fügen Sie das Gerät hinzu, das Sie im Netzwerk freigeben möchten:

    $ sudo usbip bind --busid <busid>
    

    Sie sollten diese Nachricht sehen:

    bind device on busid <busid>: complete
    

Auf dem Mac (Client)

Ich weiß nicht, ob Sie usbipauf einem Mac installieren können .

  1. Laden Sie den Treiber:

    $ sudo modprobe vhci-hcd
    
  2. Listen Sie die von Ihrem RPi freigegebenen Geräte auf. Sie sollten dasselbe Gerät wie im vierten Schritt des Serverteils sehen. Beachten Sie die Busid.

    $ usbip --list <the RPi IP address>
    
  3. Schließen Sie das Gerät an:

    $ sudo usbip --attach <the RPi IP address> <busid>
    
  4. Jetzt sollten Sie auf Ihrem Mac das auf dem RPi freigegebene Gerät sehen können:

    $ lsusb
    

So listen Sie den Status des virtuellen USB-Anschlusses auf:

 $ usbip --port

So entfernen Sie das Gerät:

$ sudo usbip --detach <the port in the previous step>

Theoretisch ist dies also so, als ob die Kamera direkt an meinen Mac angeschlossen wäre?
Daviesgeek

@daviesgeek Ja
Morgan Courbet

Okay ... ich bin immer noch auf der Suche nach einer Mac-Version / Binärdatei ... scheint keine zu haben: - /
daviesgeek

0

Um die modprobepermanente auf der HOST "Server" Seite zu machen

Führen Sie den folgenden Befehl in einem SSH (oder lokal) aus.

echo "usbip-host" | sudo tee -a /etc/modules

Um die Modprobe auf der Client-Seite dauerhaft zu machen

Führen Sie den folgenden Befehl in einem SSH (oder lokal) aus.

echo "vhci-hcd" | sudo tee -a /etc/modules

Dadurch werden die benötigten Module beim Neustart geladen


2
Warum beantwortet dies genau die Frage?
Ingo

Wenn Sie es nicht zu den zu ladenden Modulen hinzufügen, wird der Neustart des RPI (gewünschter oder unerwünschter (Powerloss) Neustart) umsonst sein. Die Verwendung dieser Technik zum Weiterleiten eines Auslesegeräts wäre ärgerlich, wenn es neu gestartet wird und Sie die externen Daten nicht mehr lesen können.
Dutch2005
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.