Eigene GUI (ohne Wheezy, o.ä.)

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

    die frage wurde bestimmt schon einige male gestellt, doch als neuling (komme grade von der Arduino-Welt) steh ich selbst nach vielem lesen noch immer auf dem Schlauch :/

    Ich möchte meinem RasPi3 eine eigene GUI verpassen.. um performance zu sparen würde ich gerne alles was nich nötig ist.. z.b. die GUI von Wheezy.. runterschmeissen.
    Meine frage wäre nun, wie bewerkstellige ich sowas? Gibt es evtl solche images? .. idelaerweise würde es am ende so aussehen:

    - power on
    - eigenes Boot-Logo verdeckt die Boot-Sequenz
    - nach kürzester Zeit erscheint die GUI einsatzbereit

    wie würde ich das bewerkstelligen? .. womit würde ich am besten die GUI erstellen (es sollen schon dynamische [animierte] graphen dargestellt werden können)? kann mir jemand eine kleine einführung geben, so für dumme? ::). wäre echt lieb :)

    ich kann ein wenig C/C++, viel PHP, viel JS/jQuery (kommt vielleicht node.js in frage?) und den ganzen web-kram

    Einmal editiert, zuletzt von AdmiralCrunch (21. Juni 2017 um 13:58)

  • Hallo,

    dazu brauchst du in erster Instanz erstmal wissen, welche Komponenten da zum Einsatz bekommen. Stichwort: XServer, Windowmanager, Desktop Environment. Das hat auch nix mit Programmieren zu tun. Angesehen davon nützt hier Wissen rund um Webentwicklung eher wenig (bzw. quasi nix). Und wenn du dann auch noch wohl möglich Pakete für deine eigene Lite-Distro aus anderen Quellen als den offiziellen Paketquellen installierst oder selber kompilierst, dann landest du ganz schnell in der "dependency hell".

    Raspbian ist schon ziemlich schmalbrüstig, was die den WM und das DE angeht. Klar kann man da vielleicht noch was abspecken, aber das ist IMHO nicht signifikant.

    Wenn du es ganz schmallbrüstig willst, dann nutze den XServer ohne DE und WM. Dann hast du aber _keine_ GUI, sondern kannst "nur" in einem Fenster des XServers ein Programm ausführen. Das Fenster hat dann keine Rahmen und die gewohnten Elemente - dazu brauchst du einen WM. Hier ist wiederum OpenBox, der Standard WM von Raspbian, schon so ziemlich das resourcenschonenste, was gängig ist.

    Zitat

    nach kürzester Zeit erscheint die GUI einsatzbereit


    Was den Raspi auch eher gemächlich macht ist das relativ langsame I/O von der SD-Karte. Daran ändert auch deine möglicherweise abgespeckte GUI nix.

    Wenn du trotzdem was selber bauen willst, bietet sich das Raspbian Lite Image als Grundlage. Dann hast du eine minimale Installation, auf die du aufbauen kannst.

    Meine _persönliche_ Meinung zu dem Thema ist: wenn dir der Pi mit Raspbian (oder einer der anderen verfügbar Distros) zu lahm ist, dann nimm' keinen Pi sondern Hardware mit mehr Power und schnellerem I/O als der Rasp zu bieten hat.

    Gruß, noisefloor

  • Du kannst Raspbian Light nehmen, einen Windowmanager und X11 installieren und so ein GUI z.B. im Vollbild laufen lassen. Wenn du es nicht ganz so stylish brauchst, pygame z.B. kann direkt mit Framebuffer arbeiten und braucht so nur Raspbian Light ohne WM, DE X11 etc.
    Alternativ (wenn du dir das Installieren nicht zutraust) nimm ein normales Raspbian, schmeiß den ganzen unnötigen Kruscht mit purge raus und stelle mit raspi-config ein: "Boot to console + autologin". Dann kannst du im Autostart nur X11 und einen WM starten, kommt dann auf's selbe raus.

    Bzgl. Webkram: Ich tendiere in letzter Zeit dazu, meine GUIs auf dem Raspi als Web-Apps zu schreiben, mit bottle als Webserver. Ein Browser im Fullscreen lädt dann http://localhost:xxxxx, fertig ist die GUI. Alles eigentlich eine normale Website mit HTML, CSS und JS, Python im Backend. Dauert aber 5-10 sek länger, bis der Browser (Chromium in meinem Fall) offen ist.

    Ach, und ohne Weezy ergibt keinen Sinn... Das ist der Name des Debian, auf dem Raspbian basiert. BTW gibt's schon lange Jessie und es ist auch schon Stretch im Anmarsch... ;)

    LG

  • Flash dir das "Lite" Image und such dir dann hiervon was aus: FAQ => Nützliche Links / Linksammlung => Liste: Benutzeroberflächen erstellen
    Von wegen Windowmanager kannst du dich hieran orientieren nur dann halt anstatt Browser deine GUI: FAQ => Nützliche Links / Linksammlung => Kiosk

  • sauber :)

    vielen Dank für die Tipps .. hab zwar noch meine Verständnissprobleme aber ich lese mich durch :)

    jetzt bin ich dabei mich mit linusg's lösung, die GUI als web-app zu coden, anzufreunden.. doch frage ich mich.. kann die GUI dann mit meinem C++ programm kommunizieren? wenn ja, wie würde das laufen?

  • Hallo AdmiralCrunch !

    @ - nach kürzester Zeit erscheint die GUI einsatzbereit
    Das wird so nie funktionieren, wenn Du frisch bootest, egal ob mit, oder ohne GUI
    Beim Booten wird nicht nur der Linux Kernel geladen, sondern werden jeder Menge Systemprogramme und Scripts abgearbeitet, bis der Pi "einsatzfähig" ist. Das Einrichten des X-Servers und des GUI ist zeitlich auf wenige Sekunden am Ende des Bootprozesses beschränkt.
    Im Kernel-Ring-Puffer kannst Du (mit dmesg) einzelne Schritte des Hochfahrens ansehen, wobei die Zahl links vom Dezimalpunkt die Sekunden ab geladenem Kernel darstellen.

    Was Dir vorschwebt ist mit einem kompletten Neustart nicht erreichbar. Wohl aber kennt auch Linux ein Hibernate bzw. deep sleep, bei dem der gesamte Hauptspeicherinhalt als Abbild auf ein Speichermedium ausgelagert wird und nach "Einschalten" wieder in den Hauptspeicher zurückkopiert wird, sodass die gesamte Bootprozedur grossteils entfällt. Das dauert tatsächlich nur einige Sekunden bis zum (neuen) login, ist aber für den raspi meines Wissens noch nicht implementiert.


    Servus !

    RTFM = Read The Factory Manual, oder so

    Einmal editiert, zuletzt von RTFM (22. Juni 2017 um 15:42)

Jetzt mitmachen!

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