Linux virtual console und Framebuffer

OP #7780636
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?

#7780657
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.

OP #7780680
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren