Eye-Fi Server unter Linux

von   6 Kommentare

Als wir im Dezember in Deutschland waren, habe ich mir unter anderem eine Eye-Fi SD-Karte als Weihnachtsgeschenk gewünscht. Bei der Eye-Fi Karte handelt es sich um eine normale SD-Speicherkarte, mit der die meisten Digitalkameras arbeiten, um Bilder zu speichern. Einzig besitzt die Karte die Fähigkeit mit Wlan zu funken. Das ermöglicht Bilder, die auf der Karte sind automatisch in bekannten Wlans auf einem definierten Speicherplatz abzulegen, ohne, dass man die Speicherkarte oder die Kamera mit dem Rechner verbinden muß.

16636-eyefi

Mal wieder gibt es einen Haken für Linux Benutzer. Herstellerseitig gibt es nur Windows und Mac Software, um eine Gegenstelle für die Eye-Fi Karte zu haben.
Aber natürlich hat es nicht lange gedauert, bis sich einige findige Entwickler an die Karte gemacht haben, um auch z.B. unter Ubuntu einen Server zu betreiben. Aktuell gibt es sogar 3 Varianten, um einen solchen Server aufzusetzen.

  • Rifec – Receive images from eyefi card (Perl)
  • EyeFiServer (Python)
  • eyefi-config – kein Server, aber Konfigurationstool (c++)

Wie man EyeFiServer und Rifec aufsetzt, ist in den jeweiligen Paketen gut erklärt und man muß aber zumindest einmalig die Windows/Mac Anwendung nutzen, um an den kartenspezifischen Upload-Key zu kommen.

Bei mir funktionierte der EyeFiServer in Python aber nicht zuverlässig. Die Rückmeldung, ob ein Transfer erfolgreich war, funktionierte nicht, so dass die Karte immer nur 2-3 Bilder immer wieder transferierte.
Rifec funktioniert soweit problemlos. Ich habe allerdings eine Anpassung vorgenommen, da das Skript die Bilder, die in .tar-Dateien übertragen werden, mittels Perl’s Archive::Tar auspackt. In der Folge gehen die Timestamps der Bilder verloren. Ich habe den Aufruf durch /bin/tar ersetzt, so dass der Timestampt erhalten bleibt.
Nach ein paar E-Mails mit dem Entwickler schlug dieser noch vor eine Timestamp-Funktion nach dem Entpacken durch Archive::Tar zu verwenden.

Falls jemand meine Anpassung haben möchte, kurz Bescheid sagen. Ist etwas hässlich, so dass ich das hier nicht direkt reinpacke 😉

Soviel zum Eye-Fi Server unter Linux. Bleibt nur das Problem, dass die Bilder kopiert und nicht „verschoben“ werden. Heißt man hat die Bilder zwar direkt auf der Platte, aber gleichzeitig noch auf der Karte. Um nun nicht zu riskieren, dass beim unregelmäßigen Einstecken der Eye-Fi Karte in den Rechner Bilder löscht, die ggf. doch nicht erfolgreich übertragen wurden, schraube ich aktuell noch an einem Vergleichsskript, um die Bilder auf der Karte mit denen auf der Platte zu vergleichen. Unter Windows/Mac gibt es dafür die „endloser Speicher“ Funktion, so dass die Karte automatisch erfolgreich übertragene Bilder löscht. Man kann nicht alles haben 😉


Tags: , , , , , , , ,

6 Kommentare zu “Eye-Fi Server unter Linux”

  1. Erfahrungsbericht zum Belkin Bluetooth Receiver -- cratoo.de Germany WordPress   am:

    […] mehr als die Eye-Fi Karte habe ich uns im Dezember einen Belkin Bluetooth-Audio-Empfänger mitgebracht und mir diesen […]


    Antworten
  2. steren Germany Mozilla Firefox Ubuntu Linux   am:

    Hallo Andi,

    ich bastel auch grade mit einer Eye-Fi Karte unter Linux, allerdings bin ich kein Programmierer.

    Dieser Artikel ist ja nun schon ein wenig her und so wollte ich mal anfragen ob sie inzwischen einen Eye-Fi Server gefunden haben der das Verschieben von der Karte auf den Computer unterstützt.

    Ich freue mich auf eine Antwort von Ihnen.

    Ansonsten vielen Dank für den interessanten Artikel.

    Viele Grüße,
    steren


    Antworten
  3. Andi Saudi Arabia Google Chrome Ubuntu Linux   am:

    Hallo steren, leider hat das Verschieben nichts mit dem Programmierer-sein zu tun, da es eine Funktionalität der Karte ist. Es ist schlicht nicht möglich vom empfangenden Server aus der Karte mitzuteilen, dass das empfangene Bild gelöscht werden soll. Das müsste die Karte unterstützen, tut sie aber leider nicht. Daher nein, ich habe keinen Server gefunden der das anbietet. Das einzige was es gibt, ist die „unlimited“-Memory Funktion, die bei erreichen eines bestimmten Speicherlimits, alte Bilder löscht. Meines Wissens nach, gibt es dafür aber bisher keine Unterstützung seitens der unter Linux lauffähigen Server.
    Freut mich dass der Artikel gefallen hat, genau für solche Rückmeldungen schreibe ich! 🙂
    Grüße,
    Andi


    Antworten
    • ap Germany Mozilla Firefox Windows   am:

      Hallo,

      diese Frage gehört sicher nicht in diesen Thread, ich wusste aber leider nicht wie ich dich direkt anschreiben konnte (Schaltfläche übersehen?).

      Ertsmal danke für den Beitrag. Auf Ubuntu habe ich rifec einwandfrei zum Laufen bekommen, sehr schönes Teil.

      Allerdings bräuchte ich das ganze auf einem QNAP-NAS, und dort komme ich mit den Paketabhängigkeiten leider nicht weiter. Auf der rifec-Seite werden die erforderlichen Ubuntu-Pakete aufgelistet und erforderliche Libraries?, leider kann ich das mangels Perl-Kentnissen nicht für mein QNAP umsetzen. Dort wird ipkg verwendet. D.h. die Pakete heissen alle anders als für Ubuntu :-/ Wäre sehr nett falls Du hier einen Lösungsansatz hättest bzw. wüsstest welche Pakete ich auf dem QNAP installieren müsste.

      Gruss …ap

      P.S.

      Ich hänge mal die Ubuntu-Paketliste von der rifec-Seite mit den entsprechenden QNAP-Entsprechungen (oder was ich dafür halte) an.

      libconfig-inifiles-perl ?(perl-appconfig)?
      libwww-perl perl-libwww
      libdigest-md5-perl perl-digest-perl-md5
      libparams-validate-perl ?
      libproc-daemon-perl ?
      libxml-simple-perl perl-libxml


      Antworten
  4. Joachim Müller Germany Mozilla Firefox Windows   am:

    hallo,

    nachdem ich mich von meiner Synology trenne, würde ich gerne riftec am Ubuntu server laufen lassen. Würde mich über die Anpassung freuen.

    Danke und Gruß
    Joachim


    Antworten
    • Andi Germany Mozilla Firefox Ubuntu Linux   am:

      Puh, ich bin mir nicht sicher, ob ich die Anpassungen noch finde. Versprechen kann ich Dir nichts, melde mich, wenn ich erfolgreich bin 🙂


      Antworten

Kommentar hinterlassen

 

_uacct = "UA-344406-1"; urchinTracker(); {lang: 'de'} var pkBaseURL = (("https:" == document.location.protocol) ? "https://cratoo.de/piwik/" : "http://cratoo.de/piwik/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1); piwikTracker.trackPageView(); piwikTracker.enableLinkTracking(); } catch( err ) {}