Source Code Fremdsoftware auf Arch Linux "installieren"

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo miteinander,

    ich habe für den Pi mir die USV von CW2 zugelegt (http://www.piusv.de/) und verwende als OS "Arch Linux". Nun möchte ich die zur USV gehörende Software auf Arch Linux betreiben. Dazu wurde mir geraten, den Source Code vom Hersteller CW2 zu nehmen und mir meine eigene Arch Linux Distribution zu kompilieren.
    Nun bin ich totaler Newbie, was Arch Linux angeht und brauche daher Hilfe, wie ich nun die Software, welche dem Anschein nach in C++ geschrieben ist auf meine Arch Linux Distribution bringen kann.
    Kennt jemand eine Art Anleitung/ Tutorial, welche mir weiterhelfen könnte? :s
    Meine Suche blieb leider bisher erfolglos. :(

    Dank im Voraus ;)
    - LTSmash

  • Source Code Fremdsoftware auf Arch Linux "installieren"? Schau mal ob du hier fündig wirst!

  • Eine README-Datei ist dabei. Allerdings kann ich mit den Anweisungen leider wenig anfangen. Hier die Anweisungen des Herstellers:

    Zitat

    0. At the moment there is no makefile, so you either write your own or link by hand.
    1. Compile the sources(with g++ for example). Take "piusvmonitor" as resultname.
    (1.1. (re)Name the binaries (your compile result from the piusvmonitor source files) "piusvmonitor", if you chose another name for your compile result).
    2. Copy your "piusvmonitor" to /usr/share/piusvmonitor/ (or whrerever your piusv-software is located) and overwrite the existing "piusvmonitor"-file.
    You can skip this step if your compileresult overrote the original piusvmonitor file.
    3. Make your "piusvmonitor" executable (chmod +x piusvmonitor).

  • Hallo LTSmash,

    diese Info reicht nicht, um daraus einen Linux-Kernel zu compilieren. =(

    Wenn Du mit den Infos wenig anfangen kannst, dann macht es die Sache nicht leichter.

    Innerhalb der Kernel-Compilierung gibt es einen Schritt, ein Programm zum Konfigurieren des Linux-Systems zu erstellen. Dort kannst Du dann Deine PiUSV auswählen (sofern bereits dort als Option vorhanden). Ob dies für Arch Linux der Fall ist, weiss ich nicht.

    Am Wochenende habe ich vor, wegen anderer Sachen ein Tutorial zur Linux-Compilierung zu schreiben. Vielleicht kannst Du Dir da prinzipielle Vorgehenswweisen abkupfern.


    Die eigentliche Compilierung des Linux-Kernels hat gerade mal 7 Minuten gedauert - bei Verwendung eines ansonsten überdimensionierten Notebooks (u.a. 12 GB RAM, 2 GHz Prozessor, 1,5 TB Festplatten).

    Zur Vorbereitung dieser Idee habe ich mehrere andere Vorgensweisen ausprobiert. Jede enthielt an unterschiedlichen Stellen Fehler, die es einem unbedaften Nutzer "verunmöglichen", einen lauffähigen Kernel zu erhalten.

    Was ich auch vorhabe, ist ein Programm zu schreiben, in dem der Anwender ein paar Verzeichnisse angibt und ca. 50 Schritte automatisch ablaufen - Ergebnis ist dann eine SD-Karte mit angepasstem Kernel zzgl. einer Sicherung des vorigen Zustands. Auf diese Weise wird sichergestellt, das ein einziges fehlerhaftes Linux-Kommando den Erfolg verhindern kann.

    Damit wird das Ganze "idiotensicher". :bravo2:


    Beste Grüsse

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (18. September 2014 um 17:37)

  • Hallo Andreas,

    das klingt ja super! Mir geht es oft so, dass ich ein Tutorial ausprobiere und dann gewisse Schritte dann nicht funktionieren und ich dann evtl. andere Tutorials ausprobieren muss etc. So musste ich mir oft eigene "Anleitungen" aus mehreren Fremdaneitungen erstellen.

    Wäre super, wenn du dein Tutorial hier im Beitrag irgendwie verlinken oder veröffentlichen könntest. Wäre das möglich?

    Grüße
    LTSmash


  • Innerhalb der Kernel-Compilierung gibt es einen Schritt, ein Programm zum Konfigurieren des Linux-Systems zu erstellen. Dort kannst Du dann Deine PiUSV auswählen (sofern bereits dort als Option vorhanden).

    Was hat "PiUSV" mit dem Kernel zu tun? :s

    Gruß, mmi


  • Eine README-Datei ist dabei. Allerdings kann ich mit den Anweisungen leider wenig anfangen. Hier die Anweisungen des Herstellers:


    Hallöle ... na das ist ja schon mal was ...
    Ich mach Dir jetzt mal folgenden Vorschlag: Du hängst den Kram an c/c++ Sourcen wie Du sie vom Hersteller runtergeladen hast mal als Anhang an Deinen nächsten Beitrag.
    Dann lad' ich das Zeugs mal runter, stricke Dir ein Makefile dazu und eine HowTo Datei im Telegramm-Stil was Du machen sollst und stell das hier wieder ein. Ist aber jetz mal eine Ausnahme, weil ich mal was anderes sehen muss als meinen Kram zur Zeit ;) ... ok?
    cheers,
    -ds-


    ... geraten, den Source Code vom Hersteller CW2 zu nehmen und mir meine eigene Arch Linux Distribution zu kompilieren.
    ...

    Da ist nirgendwo die Rede eines eigenen Kernels ... da gehts drum, dass er sich seine eigene Distribution "kompilieren" (=zusammenstellen) soll ... was er wegen eines popelige Progrämmchens sicher nicht machen muss. Man muss ja nicht immer alles wörtlich nehmen ( ich denk' da z.B. an MS und die "sichere" Cloud :fies: - aber das ist ein anderes Thema )
    cu,
    -ds-

  • Man guckt sich den Source an. Da is ne main.cpp drin, in welcher einige andere *.cpp vom Source verlinkt sind. Also nehme ich jetzt mal an dass das die Hauptdatei is.

    In der Readme steht ja drin, das man als Binary piusvmonitor nehmen muss oder soll. Und der Befehl zum kompilieren steht da auch: g++

    Also probiert mans erstmal ganz easy.
    Source auf den PI laden, am besten nach: /usr/src/
    Da in dem Zip kein Verzeichnis is, dieses selber erstellen: mkdir piusvmonitor
    die piusvmonitor_source.zip in das Verzeichnis verschieben bzw gleich dort hin laden.
    Entpacken: unzip piusvmonitor_source.zip
    und dann die Try and Error Methode: g++ main.cpp -o piusvmonitor
    Finger kreuzen und hoffen das es fehlerfrei durch läuft :D


    //EDIT: dreamshader: http://www.piusv.de/support/piusvmonitor_source.zip

  • Hi meigrafd,
    thnx für den Link ... ist dadurch eh schon ums Eck ;) ...

    Makefile:

    Kurzes HowTo:
    Zunächst die wiringPi runterladen und installieren ( ist -> hier <- beschrieben )
    Dann ein Verzeichnis anlegen um den Kram zu übersetzen (z.B. mkdir temp)
    Das Zip-Archiv da hinein entpacken ( cd temp; unzip ../piusvmonitor_source.zip )
    Das Makefile aus den Code-tags per Copy/paste verwenden oder einfach das angehängte Makefile.txt runterladen und als Makefile in das Verzeichnis mit den Sourcen verschieben/kopieren
    Dann einfach

    Code
    make


    eingeben.
    Mit

    Code
    make install


    kannst du das Programm dann nach /usr/share kopieren. Dazu wirst Du aber root sein müssen. Ausserdem musst Du wohl Deinen Pfad anpassen müssen, damit es gefunden wird.
    Ich hab's jetzt nach der README gemacht, damit später auch noch nachvollziehbar ist, was wo abbleibt.
    Persönlich würde ich das binary nach /usr/local/bin kopieren ...

    cheers,
    -ds-

  • Zunächst schon mal vielen Dank für die vielen Tipps und Codes :)

    @ meigrafd: Ich hab es nach deinem Vorschlag probiert. Allerdings ohne Erfolg. Ich krieg da eine ganze Palette an Fehlermeldungen ausgespuckt ...

    @ dreamshader: Danke für das Erstellen des Makefiles! :) :danke_ATDE:
    Ich kriege hier allerdings folgende Meldung:
    2b43dc28ae.png

    Mache ich noch was falsch?

  • Hi,

    neee ... da machst Du nix falsch.
    Ich vermute mal, Du hast den Code per copy/paste genommen - kann das sein?
    Dann ist das scheinbar "konvertiert" worden - ab Zeile 26 muss alles, was eingerückt ist, mit TAB eingerückt werden. Ich vermute, da sind aus irgendwelchen Gründen Leerzeichen dafür drin.

    cu,
    -ds-

  • Hallo LTSmash,


    Wäre super, wenn du dein Tutorial hier im Beitrag irgendwie verlinken oder veröffentlichen könntest. Wäre das möglich?

    klar, aber erst, wenn es fehlerfrei funktioniert.

    Obwohl mir echt nicht in den Kopf will, dass man für ein einziges zu nutzendes Programm den Kernel compilieren sollte. Es sollte vollkommen reichen, innerhalb des Bootvorganges ein entsprechendes Programm zu starten, dass sich aber nur ein einziges Mal aufrufen lässt.

    Beste Grüsse

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (19. September 2014 um 08:14)


  • Ich vermute mal, Du hast den Code per copy/paste genommen - kann das sein?

    Richtig. Passt. ich hab die Leerzeichen gegen Tabzeichen getauscht. Hat alles funktioniert. :thumbs1:

    Zu folgendem noch eine Frage dreamshader:

    Nach dem make Befehl legt er mir 5 Dateien mit der Endung ".o" an (Bsp.: cconfigreader.o) und eine mit dem Namen "piusvmonitor". Diese befinden sich ja noch im temp-Verzeichnis.
    Wenn ich dann nach deinem How-To den Befehl

    Code
    make install


    ausführe, bekomme ich folgende Fehlermeldung:

    f81c52ca0e.png

    Ich denke er kann das Verzeichnis noch nicht erstellen oder? Ich wusste nun auch nicht, was ich in deinem Makefile nun ändern sollte ...

    Zitat von dreamshader


    Persönlich würde ich das binary nach /usr/local/bin kopieren ...

    Meinst du damit das file mit dem Namen "piusvmonitor"???

  • Ich hab da zwar kein Plan davon aber probier mal folgendes

    TARGETDIR ändern in:

    Code
    TARGETDIR = /usr/share/${TARGET}

    Unter " all: " das einfügen:

    Code
    $(TARGETDIR):
        mkdir -p $(TARGETDIR)

    Und den " install: " Eintrag änderst du wie folgt ab:

    Code
    install:        $(TARGET) $(TARGETDIR)
            cp $(TARGET) $(TARGETDIR)
  • Moin,


    ....
    Ich denke er kann das Verzeichnis noch nicht erstellen oder? Ich wusste nun auch nicht, was ich in deinem Makefile nun ändern sollte ...
    ...


    da bin ich mir jetzt nicht sicher, ob er evtl. schon /usr/share nicht hat ...
    Das müsstest Du dann anlegen. Und nicht vergessen: Pfad anpassen, sonst wird das nicht gefunden.


    Meinst du damit das file mit dem Namen "piusvmonitor"???


    Yepp ... so ist das. Hat den Vorteil, dass Du Deine PATH-Variable nicht anpassen musst.
    Weil es eh nur ein einziges Programm ist, würde ich da auch nicht lange rumscheissen.
    Du kannst ja im Makefile das TARGETDIR nach /usr/local/bin ändern.
    Aber nicht vergessen, das File als root zu kopieren, also entweder

    Code
    sudo cp piusvmonitor /usr/local/bin


    oder Makefile ändern und

    Code
    sudo bash
    make install
    exit


    wobei ich die zweite Variante ehrlich gesagt affig fände ;) ...

    meigrafd: hm ... kann ich echt nicht genau sagen ... irgendwas fehlt da jedenfalls. Ich hatte das Teil bei mir probiert ... ohne make install. Keine Ahnung, ich denke, das ist wegen einem binary auch nicht so wichtig. Aber: ich schaue erst mal, wie es richtig ist ... wegen des Informationsgehalts :) ...

    OK - hier kommt die Lösung:
    Die Zeile mit install: am Anfang des Makefiles muss geändert werden, und zwar von

    Code
    install:        $(TARGET) $(TARGETDIR)/$(TARGET)


    nach

    Code
    install:        $(TARGET) $(TARGETDIR)

    Sonst müsste noch eine weitere, eigene Regel her ...

    cheers,
    -ds-

  • Okay. Vielen Dank schon mal dreamshader und meigrafd !

    Ich habe nun den "install"-Bereich des makefiles wie folgt abgeändert:

    Code
    install:	$(TARGET) $(TARGETDIR)
    	cp $(TARGET) $(TARGETDIR)

    Die Datei "piusvmonitor" kopiere ich mit dem Befehl:

    Code
    cp piusvmonitor /usr/local/bin

    Bekomme nun folgendes Feedback:

    ab4d4f7aa4.png

    Mich macht die Aussage "Warnung: Mit der Uhr stimmt etwas nicht." noch stutzig. Was könnte das noch sein? Jemand eine Idee?
    Nach einem reboot funktioniert leider die Software nicht. Also Strom an der USV geht weg, der Betrieb wird über eine Batterie gehalten, der Pi fährt aber nicht runter, wie er nach der Software eigentlich sollte. Muss ich noch irgendwelche Dateien in den "Autorun" bringen?

    Die Datei "piusvmonitor" habe ich übrigens wie in der README beschrieben mit

    Code
    chmod +x piusvmonitor

    ausführbar gemacht. An dem sollte es nicht liegen...

    Des Weiteren ist mir aufgefallen, dass wenn ich die primäre Stromversorgung an der USV abklemme, erscheint folgende Grafik in der rechten, oberen Ecke des Terminals im Ausgabebildschirm, welcher über HDMI angeschlossen ist:
    c2161956c7.jpg

    Wenn ich das Kabel wieder anstecke, verschwindet die Grafik wieder. Weiß jemand, was das zu bedeuten hat? :s

  • Sodala ... aus meiner Sicht hast Du erst mal alles richtig gemacht.
    Das mit der Uhren-Warnung scheint daran zu liegen, dass evtl. was beim Holen der Zeit über das Netz irgendwas nicht geklappt hat. Kannst ja mal mit

    Code
    date


    nachschauen (man date sagt Dir, wie Du die Uhrzeit manuell setzen kannst).
    Mit der Funktionsweise der Software muss ich leider passen. Ich hab' so ein Gadget nicht und würde dafür auch keinen Cent investieren ... aber das ist Ansichtssache.
    Ah ja ... das mit dem chmod +x hättest Du Dir sparen können - der Output des Compilers ist immer ausführbar ;) ...
    Und bitte ... keine Ursache ... gern geschehen. Ist ja Sinn und Zweck des Forums ...

    Na dann jedenfalls viel Spass noch mit Deinem RPi und der USV.

    cheers,
    -ds-

  • Hallo zusammen,

    bitte verzeiht das ich das Thema wieder rauskrame, aber ich hab ein ähnliches Anliegen wie der Themenersteller.

    Ich bin dabei mir einen Car PC zusammen zustellen, und verwende dazu RuneAudio mit dem 7" Original Raspberry Display.

    Die PIUSV möchte ich verwenden um den PRi nach dem ausschalten vom Auto sauber runterfahren zu lassen.

    Ich probiere jetzt die Lösungen von dreamshader und meigrafd seit 2 Tagen immer wieder, komme aber zu keinem Ergebnis.

    Das erstellen der Dateien mit make und make install funktioniert zwas, aber ich habe sonst keine Dateien im Verzeichnis "piusvmonitor"

    Mir fehlen die piusvmonitor/log.piusv und die piusvmonitor/config.piusv.

    Könnt ihr mir da bitte helfen?

    Danke

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!