Forum: Mikrocontroller und Digitale Elektronik Linux virtual console und Framebuffer


von Vancouver (vancouver)


Lesenswert?

Hallo, auf einer Raspi-ähnlichen Hardware (NanoPi) mit Ubuntu 22.04 habe 
ich ein kleines TFT-Display (160*128) per Framebuffer-Device 
eingebunden. Eine Konsole ist auf den Framebuffer geleitet, so dass ich 
die Bootmessages usw. sehen kann.
Nach dem Booten wird eine GUI gestartet, die ebenfalls den Framebuffer 
vewendet. Problem ist, dass die Konsole immernoch darauf zugreift, was 
man an dem blinkenden Cursor erkennt.

Die sauberste Methode ist es, die Konsole vom Framebuffer zu trennen und 
später wieder zu verbinden. Das geht mittels "echo {0|1} > 
/sys/class/vtconsole/vtcon1/bind", aber ich möchte das nicht aus der 
Shell, sondern aus dem C++-Programm heraus machen. Gibt es eine andere 
Möglichkeit, als das über das SysFS zu machen? Oder ist der saubere Weg 
direkt aus C++ heraus auf das SysFS-File zu schreiben, oder besser per 
libsysfs?

von Hmmm (hmmm)


Lesenswert?

Vancouver schrieb:
> Das geht mittels "echo {0|1} >
> /sys/class/vtconsole/vtcon1/bind", aber ich möchte das nicht aus der
> Shell, sondern aus dem C++-Programm heraus machen.

Es spricht nichts dagegen, auch von dort auf /sys zuzugreifen.

Vancouver schrieb:
> Oder ist der saubere Weg
> direkt aus C++ heraus auf das SysFS-File zu schreiben, oder besser per
> libsysfs?

Letzteres empfinde ich für etwas so Triviales als Overkill, gerade im 
Embedded-Umfeld, aber das ist natürlich Geschmackssache.

von Vancouver (vancouver)


Lesenswert?

Hmmm schrieb:
> Es spricht nichts dagegen, auch von dort auf /sys zuzugreifen.

Ok. Ich dachte es gibt vielleicht eine spezielle Library zum Steuern der 
virtuellen Konsolen.

Hmmm schrieb:
> Letzteres empfinde ich für etwas so Triviales als Overkill, gerade im
> Embedded-Umfeld,

Ja, das habe ich mir beim Überfliegen der Doku auch gedacht... eine 
Menge Aufwand um zwei Werte zu schreiben.

Ok, dann mache ich das auf die traditionelle Weise über File-IO.

Danke!

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.
Lade...