"YKUSH" command kompilieren - libudev.h

  • Hallo Zusammen!


    Ich habe mir vor einer weile einen 'speziellen' USB-Hub besorgt, bei dem man die einzelnen USB-Ports über ein Command an und ausschalten kann. Der USB-Hub nennt sich "YKUSH" und ist von Yepkit:
    https://www.yepkit.com/products/ykush
    Ich habe lange Zeit nach genau so einem Produkt gesucht, da mir das die Möglichkeit bietet Teile meiner NAS auf externe Festplatten zu sichern, die allerdings nur dann an sind, wenn gerade die Sicherung läuft.


    Ich weiß das der USB-Hub funktioniert, doch kam bis jetzt leider noch nicht dazu die AN/AUS Funktion zu testen.
    Nun habe ich etwas Zeit gefunden, und möchte das ganze an meiner NAS (TS-453pro) installieren und testen.
    Dafür bin ich der Beschreibung auf der Yepkit Seite gefolgt:
    https://www.yepkit.com/learn/setup-guide-ykush


    Ich konnte, wie auf der Seite beschrieben, mit Hilfe von Entware-ng das Paket "libusb-1.0" installieren:
    opkg install libusb-1.0


    Dann kommt allerdings schon das erste Problem: Ich finde das Paket "libusb-1.0-0-dev" nicht. Dachte mir allerdings, dass ich es denn noch einmal Versuche weiter zu machen.
    Letztendlich musste ich noch die Pakete "make" und "gcc" installieren, und in bestimmten Dateien das Verzeichnis in dem sich gcc befindet angeben.


    Nun kommt allerdings das größte Problem, an dem ich momentan hänge und nicht weiterkomme.
    Beim Ausführen der "build.sh" bekomme ich aktuell die folgende Fehlermeldung angezeigt:
    hid.c:44:21: fatal error: libudev.h: No such file or directory
    compilation terminated


    Gibt es eine Möglichkeit (über Entware-ng, o.ä.) "libudev" zu installieren?


    Des weiteren, bekomme ich noch diverse Meldung mit "undefined reference" angezeigt.


    Kann mir hier eventuell jemand weiterhelfen, wie ich das Programm kompiliert und installiert bekomme? Kann ich dies komplett in meiner NAS machen, oder gibt es eventuell eine Möglichkeit mit cross-compiling o.ä.?


    Ich komme dort momentan nicht weiter, habe mir den USB-Hub allerdings genau wegen dieser Funktion geholt.

    Ich wäre euch für jegliche Art der Hilfe sehr dankbar!


    Mit freundlichem Gruß,
    erdnus_

  • Kann mir hier keiner weiterhelfen, oder hat in irgendeiner Weise eine Idee?


    Ich hab auch mal versucht dem 'Technical Support' zu schreiben, dieser empfiehl mir über die "LinuxStation" Ubuntu zu installieren... Allerdings würde ich dies gerne vermeiden, da ich es etwas 'over kill' finde nur für diese eine Funktion ein komplettes Ubuntu laufen zu lassen. Was meint ihr?


    Des weiteren bin ich heute beim googlen zufällig auf ein Python Kommando das ebenfall die gesuchte Funktion bietet gestolpert: https://github.com/Yepkit/pykush/blob/master/README.md
    Denkt ihr hiermit könnte es besser klappen? Allerdings benötigt das Python Skript eine Library die sich "HIDAPI" nennt, laut deren Github Seite (https://github.com/signal11/hidapi/blob/master/README.txt) wird hierfür die Developer Version von libusb und libudev benötigt...
    HIDAPI wird ebenfalls für das andere Command, welches ich ursprünglich verwenden wollte benötigt, daher nehme ich an schlägt dies auch fehl...


    Ich würde mich immer noch sehr über jegliche Art der Hilfe freuen!


    Mit freundlichem Gruß,
    erdnus_

  • Also ich selbst habe auch schon hin und wieder versucht Librarys die noch nicht in Entware-ng drin sind zu kompilieren und habe es dann aufgegeben, da das manuelle Auflösen von Abhängigkeiten eine Qual ist. Daher würde ich dir ebenfalls empfehlen die Linux Station zu verwenden. "Over kill" ist das eigentlich nur im Speicherplatzverbrauch, von den Ressourcen CPU und Ram hält sich das in Grenzen, da die Linux Station im Gegensatz zu einer Virtualisierungslösung den gleichen Kernel wie das NAS verwendet.
    Zu HIDAPI: das Programm gibt es im Python package manager, hast du mal versucht das via pip zu installieren? (pip bekommst du für die entsprechenden Python Versionen mit Entware/opkg) aber ich befürchte fast, dass auch das Paket intern die Libusb benötigt.


    Falls es mit Yepkit nicht funktioniert: ich selber verwende eine schaltbare USB Steckdosenleiste für den gleichen Zweck (anschalten der HDD vor dem Backup, danach wieder ausschalten). Das für die Steuerung erforderliche Tool sispmctl gibt es in Entware-ng

  • Hey,


    Erstmal Danke für deine Antwort, ich hatte tatsächlich nicht mehr damit gerechnet, dass ich hier zu noch eine Antwort erhalte.


    Libusb an sich wäre ja kein Problem, dass konnte ich über Entware-ng installieren. Problematisch wurde es bei der Entwickler-Version von libusb (libusb-dev).
    Ich bin momentan immer noch in Kontakt mit dem Support von Yepkit, und möchte an der Stelle diesen mal hervorheben, da sie sich sehr viel Zeit für mein Anliegen nehmen und es nicht einfach damit abtun, dass es ja die Möglichkeit mit der LinuxStation gäbe.


    Daher sieht es momentan so aus, dass ich ein bereits kompiliertes executable bekomme, welches ich dann installieren kann. Dies sollte denn funktionieren, da hierfür dann nicht mehr die Entwickler-Versionen der Librarys benötigt werden, und libusb an sich habe ich ja bereits installiert.


    Mit freundlichem Gruß,
    erdnus_

  • Ok! Freut mich zu hören, dass es heutzutage noch guten Support gibt :)
    Was libusb betrifft: die Entwicklerversionen sind im Grunde nichts anderes als die Lib und die Headerdateien. Wenn es wirklich nur daran liegt, könntest du bereits Erfolg haben, wenn du dir die entsprechenden Headerdateien in das "korrekte" include Verzeichnis kopierst.

  • Ja, da war ich auch durchaus positiv überrascht.


    Naja, sagen wir mal, es liegt indirekt daran... Libusb konnte ich ja über Entware-ng installieren, komplizierter dürfte es bei libudev werden. Das konnte ich über Entware-ng garnicht finden.
    Daher denke ich nicht, dass mich das weiter bringen würde, da dann ja trotzdem immer noch libudev fehlen würde.


    Ich werde jetzt mal abwarten, ob das mit dem executable vom Support funktioniert :)


    Mit freundlichem Gruß,
    erdnus_