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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.