Besteht die Möglichkeit auf einem raspberry pi ohne installiertem Desktop ein wxWidgets Programm im Volldbildmodus zu starten? Der Desktop frisst mir zu viel Ressourcen und ich möchte eine einfache Anwendung im Vollbildmodus starten als Bedieneinheit für eine Maschine. Ich befürchte nein, da ohne Desktop eben auch keine vordefinierten Buttons etc. laufen/installiert sind. Liege ich da falsch oder korrekt? Danke
:
Bearbeitet durch User
Max M. schrieb: > Der Desktop frisst mir zu viel Ressourcen Ich glaub da nicht dran. Max M. schrieb: > Ich befürchte nein, da ohne Desktop eben auch keine vordefinierten > Buttons etc. laufen/installiert sind. Hä? Wenn Deine Anwendung ihre Bedienelemente anzeigt, dann sind sie auch da. Was aber auch immer Du vorhast, Du optimierst definitiv am falschen Ende.
Dann nimm keinen Desktop sondern ein Windowmanager. ion, wmaker, und weitere zigtausend
Harald K. schrieb: > Ich glaub da nicht dran. Wieso nicht? Der ist immerhin immer aktiv und auf diesen Overhead würde ich gerne verzichten. Harald K. schrieb: > Was aber auch immer Du vorhast, Du optimierst definitiv am falschen > Ende. Ok, also sagst du der Desktop auf meinem pi zero frisst keine Ressourcen und macht diesen nicht wesentlich langsamer?
Max M. schrieb: > Ok, also sagst du der Desktop auf meinem pi zero frisst keine Ressourcen > und macht diesen nicht wesentlich langsamer? Sofern der Desktop nicht ein dynamisches Hintergrundbild (oder gar ein ständig laufendes Video) darstellt, nein. Er verbraucht etwas Speicher, aber mehr macht der nicht. Woher kommt die Vorstellung, es könnte anders sein?
Max M. schrieb: > Besteht die Möglichkeit auf einem raspberry pi ohne installiertem > Desktop ein wxWidgets Programm im Volldbildmodus zu starten? Jain. Kommt auf das Programm an. So lange es keine Features einer laufenden Desktopumgebung nutzt, kann man es natürlich ohne eine solche laufen lassen. > Ich befürchte nein, da ohne Desktop eben auch keine vordefinierten > Buttons etc. laufen/installiert sind. Liege ich da falsch oder korrekt? Da liegst du falsch. "Vordefinierte Buttons" stellt typisch nicht die Desktopumgebung bereit. Es ist eher so, dass diese die ebenfalls benutzt.
Max M. schrieb: > Harald K. schrieb: >> Ich glaub da nicht dran. > > Wieso nicht? Der ist immerhin immer aktiv und auf diesen Overhead würde > ich gerne verzichten. > > Harald K. schrieb: >> Was aber auch immer Du vorhast, Du optimierst definitiv am falschen >> Ende. > > Ok, also sagst du der Desktop auf meinem pi zero frisst keine Ressourcen > und macht diesen nicht wesentlich langsamer? Alles verbrauch Ressourcen. Und wenn es Dir zu lahm ist, dann nimm etwas schnelleres.
Ob es mit wxwidgets geht, kann ich nicht sagen, aber mit Qt geht es zumindest. Da habe ich das schon gemacht. Das heißt, ohne X-Server, Windowmanager und Konsorten direkt von der Konsole gestartet.
Rolf M. schrieb: > Ob es mit wxwidgets geht, kann ich nicht sagen, aber mit Qt geht es > zumindest. Geht auch mit wxwidgets. Das Prinzip ist auch genau dasselbe, wie du es mit qt umgesetzt hast. Eben all das nicht benutzen, was in der gewünschten schlanken Zielumgebung fehlt.
Wenn du sagt, dass das mit wxwidgets gleich ist wie bei Qt, hat das dann auch so etwas wie die Platform-Plugins von Qt?
Rolf M. schrieb: > Wenn du sagt, dass das mit wxwidgets gleich ist wie bei Qt, hat das dann > auch so etwas wie die Platform-Plugins von Qt? Dir ist klar, was ein "Prinzip" ist? Und dass sich die konkrete Umsetzung eines solchen doch sehr stark unterscheiden kann?
Nunja… C-hater schrieb: > Das Prinzip ist auch genau dasselbe, wie du es mit qt umgesetzt hast. Bei Qt habe ich das "umgesetzt", indem ich dem Programm beim Start einfach die Kommandozeilenparameter "-platform eglfs" angegeben habe, damit es das entsprechende Platform-Plugin lädt. Daher die Frage, wie dieses Prinzip der Platform-Plugins denn bei wxwidgets funktioniert. Wie wäre es denn, wenn du einfach mal ganz konkret sagst, was man bei wxwidgets denn tun muss, damit es ohne X-Server genutzt werden kann, statt nur nebulös vom "selben Prinzip" zu reden?
Erster Schritt: Einen X-Server starten: /usr/bin/X Zweiter Schritt: Die Umgebungsvariable DISPLAY setzen: export DISPLAY=:0 Dritter Schritt: das grafische Programm starten. https://www.x.org/archive/X11R6.8.0/doc/Xserver.1.html https://linux.die.net/man/7/x https://datacadamia.com/ssh/x11/display
Oder man lässt den X-Server weg und arbeitet direkt mit dem Framebuffer des Rechners. Das ist ressourcensparender.
Harald K. schrieb: > Oder man lässt den X-Server weg und arbeitet direkt mit dem Framebuffer > des Rechners. Das ist ressourcensparender. Das erfordert aber spezielle Unterstützung durch das jeweilige Programm. Da muss man dann in der Doku des Programms schauen, ob und wie es geht.
Harald K. schrieb: > Oder man lässt den X-Server weg und arbeitet direkt mit dem Framebuffer > des Rechners. Das ist ressourcensparender. Genau davon rede ich ja die ganze Zeit. Ich dachte, das sei hier auch der Wunsch? Der Raspi bietet per egl auf dem Framebuffer auch volle Hardware-Beschleunigung inklusive 3D. Stefan F. schrieb: > Das erfordert aber spezielle Unterstützung durch das jeweilige Programm. > Da muss man dann in der Doku des Programms schauen, ob und wie es geht. Wie oben schon geschrieben: Bei Qt muss das Programm das nicht explizit unterstützen, da das dort bereits durch das Platform-Plugin erledigt wird. Die Frage war jetzt, ob wxwidgets sowas auch kann.
:
Bearbeitet durch User
Harald K. schrieb: > Woher kommt die Vorstellung, es könnte anders sein? Aus leidigen Erfahrungen mit einem anderen Betriebssystem?
"a version of wxWidgets/wxPython compiled against EGL cannot be made to use GLX, and vice versa... There have been requests to make the GLCanvas backend selectable at runtime, but unfortunately, that's a rather complicated change" Das war 2021. https://github.com/wxWidgets/Phoenix/issues/1923
Ohne wirklich Ahnung vom Raspberry und wxwidgets zu haben: Auf meinem PC nutze ich einen zweiten, sehr einfachen virtuellen X-Server für eine spezielle, grafische Anwendung, welche exklusiv dort läuft ohne Windowmanager. Auf diesen greife ich nur via vnc zu. Er nennt sich Xvfb: https://de.wikipedia.org/wiki/Xvfb Den wird es vermutlich auch in Raspian geben. Ob und wieviel weniger ressourcenhungrig das ist, weiß ich auch nicht. Vielleicht ist es aber ein Versuch wert. Ich starte ihn zudem als gewöhnlichen User direkt von der Konsole mit: "Xvfb :1 &" Die Anwendung wird dann gestartet mit: "DISPLAY=:1 ./grafisches_programm &" Um darauf bei Bedarf zuzugreifen, starte ich temporär einen vnc-server: "x11vnc -display :1" Mit einen beliebigen VNC-Client kann ich die Software dann nutzen. Wenn gar kein weiterer X-Server läuft, kann man sich sicher noch die ganzen DISPLAY=:1 Parameter sparen. Müsste also noch einfacher sein. Ich nutze Xvfb früher auch oft über SSH, wobei ich den x11vnc-Port dann noch tunnele mit "ssh server -luser -L5901:localhost:5901"
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.