Forum: PC-Programmierung Raspberry: Hinweise auf Display deaktivieren


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Wenn man einen Raspberry z.B. in einer Museums-Anwendung oder als 
Steuerung eines Automaten verwendet, kommt es irgendwie blöd, wenn der 
ahnungslose Nutzer plötzlich Hinweise eingeblendet bekommt wie

- es wurde eine VNC-Verbindung geöffnet/geschlossen
- es stehen Updates bereit
- Betriebsspannung zu niedrig

usw.

Gibts in Raspian EINE zentrale Stelle, wo man sowas unterbinden kann, 
oder muss man jedes einzelne Problem mit einer Console-Orgie "behandeln" 
(für die es nach meinen bisherigen Erfahrungen jeweils mindestens 25 
Lösungen gibt, von denen aber 23 gerade unter diesen Umständen nicht 
funktionieren)?

Danke für Tips.

: Bearbeitet durch User
von Rolf M. (rmagnus)


Lesenswert?

Für sowas würde ich die Desktop-Umgebung einfach komplett weglassen und 
das Programm direkt auf dem X-Server laufen lassen.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Rolf M. schrieb:
> Für sowas würde ich die Desktop-Umgebung einfach komplett
> weglassen und
> das Programm direkt auf dem X-Server laufen lassen.

Kann man das auch mit Programmen tun, die eigentlich für den Desktop 
gemacht sind? (Ohne den Code zu ändern)

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Frank E. schrieb:
> Rolf M. schrieb:
>> Für sowas würde ich die Desktop-Umgebung einfach komplett
>> weglassen und
>> das Programm direkt auf dem X-Server laufen lassen.
>
> Kann man das auch mit Programmen tun, die eigentlich für den Desktop
> gemacht sind? (Ohne den Code zu ändern)

Klar. Einfach den Windowmanager abschalten und direkt über xinit 
starten.
In der Datei .xinitrc kannst Du auch mehrere Programme starten.
Das Beenden des letzten Programms beendet dann auch den X-Server.

Fenster verschieben und in der Größe ändern ist dann natürlich 
schwierig.

von Rolf M. (rmagnus)


Lesenswert?

Frank E. schrieb:
> Kann man das auch mit Programmen tun, die eigentlich für den Desktop
> gemacht sind? (Ohne den Code zu ändern)

Wenn das eine Anwendung ist, die genau ein Fenster aufmacht, das dann 
quasi full-screen laufen soll, dann sollte das so gehen. Falls es 
mehrere Fenster aufmacht bzw. irgendwelche Dialoge anzeigt, bräuchte man 
zusätzlich noch einen Window-Manager.

von Le X. (lex_91)


Lesenswert?

Ich würde einfach Testen ob es der Anwendung reicht wenn sie auf xinitrc 
direkt auf einem nackten X gestartet wird.
Ansonsten könnte man sie innerhalb einer leeren Openbox- oder 
twm-Session starten.

Auf einem Raspi starte ich feh bzw. vlc in einer ansonsten leeren 
Openbox-Session im Fullscreen-Mode. Das klappt eigentlich ganz gut.

: Bearbeitet durch User
von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Hier wird ein sauberer Start bis zur Applikation demonstriert (unter 
Zuhilfenahme des Frame Buffer Interfaces):

https://www.youtube.com/watch?v=m3rfls00OtY

Läuft so hier auf einigen Maschinen(zusatz)steuerungen.

von Rolf M. (rmagnus)


Lesenswert?

Chris D. schrieb:
> Hier wird ein sauberer Start bis zur Applikation demonstriert (unter
> Zuhilfenahme des Frame Buffer Interfaces)

Das geht so allerdings nicht mit normalen Desktop-Applikationen, sondern 
nur mit welchen, die eben speziell für das fbdev gemacht sind.

von PittyJ (Gast)


Lesenswert?

Frank E. schrieb:
> - Betriebsspannung zu niedrig

Die Raspis sind empfindlich im Bezug auf niedrige Versorgungsspannungen.
Mir sind schon welche abgestürzt, wenn ich einen USB-Stick angesprochen 
habe.

Diese Meldung würde ich sehr ernst nehmen und ein ausreichendes Netzteil 
kaufen.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Rolf M. schrieb:
> Chris D. schrieb:
>> Hier wird ein sauberer Start bis zur Applikation demonstriert (unter
>> Zuhilfenahme des Frame Buffer Interfaces)
>
> Das geht so allerdings nicht mit normalen Desktop-Applikationen, sondern
> nur mit welchen, die eben speziell für das fbdev gemacht sind.

Das geht auch per X-Server, also mit "normalen" Applikationen (so wie 
oben beschrieben). Klappt hier einwandfrei.

Das fbi benötigt man dann nur für die Startgrafik während des Bootens.

PittyJ schrieb:
> Diese Meldung würde ich sehr ernst nehmen und ein ausreichendes Netzteil
> kaufen.

Das auf jeden Fall. Hier werden die RaspPis über eigene kleine Meanwells 
im Schaltschrank versorgt, die auf 5,1V eingestellt werden. Zusätzlich 
gibt es einen ordentlichen Pufferkondensator direkt am Eingang (2200µ). 
Seitdem hatten wir auch in gestörter Umgebung noch keinen einzigen 
Aussetzer. Langzeitaufzeichnung der Spannung ist auch unauffällig 
gewesen.

: Bearbeitet durch Moderator
von Dumbeutel30000 (Gast)


Lesenswert?

Was sind deine Anwendungen denn genau?

Ggf hast du auch einfach nur die falsche Distribution? Raspbian richtet 
sich eher an den Desktop Nutzer/Tinkerer, ggf. wäre eine Distribution 
für embedded Geräte die bessere Wahl?

Board Enablement für den Raspberry Pi gibt es sowohl von Yocto als auch 
Ubuntu Core bereits fertig. Da würde nicht all zu viel Arbeit anfallen.

Ggf. ist dein Raspbian auch einfach nur das falsche Betriebssystem? 
Gerade Ubuntu Core kann eine relativ angenehme Lösung sein da man sehr 
viel hinsichtlich Updates bereits gelöst bekommt durch den Hersteller. 
Gerade in Hinsicht auf CVE sehr sehr bequem automatisierbar...

von Rolf M. (rmagnus)


Lesenswert?

Chris D. schrieb:
>> Das geht so allerdings nicht mit normalen Desktop-Applikationen, sondern
>> nur mit welchen, die eben speziell für das fbdev gemacht sind.
>
> Das geht auch per X-Server, also mit "normalen" Applikationen (so wie
> oben beschrieben). Klappt hier einwandfrei.

Ja, klar. Ich wollte nur darauf hinweisen, dass das Video die 
Inbetriebnahme einer Applikation zeigt, die eben keine "normale 
Desktop-Applikation" ist. Mit X-Server sieht der letzte Schritt etwas 
anders aus.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Chris D. schrieb:
> Einfach den Windowmanager abschalten und direkt über xinit starten.

Würde ich nicht machen.

Lieber einen möglichst simplen Windowmanager benutzen statt eines 
aufgeblasenen Desktopsystems. Der startet dann halt genau die Fenster, 
die gewünscht sind, man kann trotzdem noch mit Popups etc. umgehen.

https://www.6809.org.uk/evilwm/

:-)

ps: Die Austauschbarkeit des Windowmanagers (und damit einhergehend die 
mögliche komplette Änderung des gesamten look&feel) finde ich nach wie 
vor eins der netten Features von X11. Schade nur, dass Gtk3 das mit 
ihrem "wir managen all unsere Fenster in der Applikation" kaputt gemacht 
hat.

: Bearbeitet durch Moderator
von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Jörg W. schrieb:
> Lieber einen möglichst simplen Windowmanager benutzen statt eines
> aufgeblasenen Desktopsystems. Der startet dann halt genau die Fenster,
> die gewünscht sind, man kann trotzdem noch mit Popups etc. umgehen.
>
> https://www.6809.org.uk/evilwm/

:-)

Es kommt immer darauf an, was man machen möchte. Wenn man nur ein 
monitorfüllendes Programm mit einer Oberfläche hat, dann muss halt 
nichts gemanagt werden.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Chris D. schrieb:
> Jörg W. schrieb:
>> Lieber einen möglichst simplen Windowmanager benutzen statt eines
>> aufgeblasenen Desktopsystems. Der startet dann halt genau die Fenster,
>> die gewünscht sind, man kann trotzdem noch mit Popups etc. umgehen.
>>
>> https://www.6809.org.uk/evilwm/
>
> :-)
>
> Es kommt immer darauf an, was man machen möchte. Wenn man nur ein
> monitorfüllendes Programm mit einer Oberfläche hat, dann muss halt
> nichts gemanagt werden.

Mein Programm ist in Xojo 2020 geschrieben und für Linux ARM 32 
compiliert. Es läuft unter dem altuellen Raspian sofort und problemlos. 
Das eine und einzige Hauptfenster geht nach dem Start sofort in den 
fullscreen mode und ist vom Typ "plain box", also auch ohne Titelleiste 
und Bedienelemente. "Bedient" wird die Software durch Taster an den 
GPIO-Pins, also auch keine Maus oder klass. Tastatur.

So wie ich das bisher verstanden habe, sollte das eigentlich 
funktionieren, werde ich ausprobieren. Bin allerdings kein Linux-Profi, 
muss erstmal herausfinden, wie ich diese Betriebsart überhaupt erreiche.

Um typische Raspi-Konfigurationen wie VNC oder WLAN zu erreichen bleibt 
mir ja dann immer noch die SSH-Shell ...

von Welle 🧐 S. (w3llschmidt)


Angehängte Dateien:

Lesenswert?

Also, ich habe so ein Projekt gerade.

Annahme: deine Applikation laeuft standallone. Also benoetigt kein
Windowmanager o.ae.

Ich schreibe mit meinem Programm direkt in den Framebuffer.
Das macht z.b. auch der Kernel mit den 4 Himberen oder dem Undervolt 
Blitz.

a) Suche dir einen passenden Runlevel aus (bei mir 4)
b) Deaktiviere in der innitab die Gettys in Runlevel 4
c) Setze Runlevel 4 als DEFAULT
d) Erstelle dir ein Initscript fuer dein Programm und linke es in 
Runlevel 4

Passe die boot/cmdline.txt an:
1
console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait fsck.mode=skip ipv6.disable=1 vt.global_cursor_default=0 quiet

Ich nutze dies Distri hier: https://intestinate.com/pilfs/
Das ist ein nacktes Linux ohne alles!
Wie du siehst laeuft nur INIT (logisch),SSH, NTP, SYSLOG, Meine APP.

Das UI wird dann per HDMI Monitor ausgegeben. Bedient per Touch.

: Bearbeitet durch User
von Welle 🧐 S. (w3llschmidt)


Lesenswert?

Frank E. schrieb:
> Mein Programm ist in Xojo 2020 geschrieben und für Linux ARM 32
> compiliert.

https://forum.xojo.com/t/graphics-without-x11/38911/3
1
You can create a Console app with the proper version of Xojo and then run that on top of whatever FB layer that you want. I use the old SVGALib. You can grab the source here and experiment.
2
3
Note - this is NOT for the Linux noob and you DO need to know C coding and how the kernel works.

von Welle 🧐 S. (w3llschmidt)


Angehängte Dateien:

Lesenswert?

So sieht dann nach 4 Sekunden schwarzen reboot der Monitor aus.
Wie geschrieben, es laeuft nichts, nur meine App. Nativ.

: 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
Noch kein Account? Hier anmelden.