GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ist es möglich, auf den Framebuffer zuzugreifen, um von der Befehlszeile aus ein Pixel auf dem Bildschirm anzuzeigen?

Ja, außerhalb des X-Servers, in tty, versuchen Sie den Befehl:

cat /dev/urandom >/dev/fb0

Wenn bunte Pixel den Bildschirm füllen, ist Ihr Setup in Ordnung, und Sie können versuchen, mit diesem kleinen Skript zu spielen:

#!/usr/bin/env bash

fbdev=/dev/fb0 ;   width=1280 ; bpp=4
color="\x00\x00\xFF\x00" #red colored

function pixel()
{  xx=$1 ; yy=$2
   printf "$color" | dd bs=$bpp seek=$(($yy * $width + $xx)) \
                        of=$fbdev &>/dev/null
}
x=0 ; y=0 ; clear
for i in {1..500}; do
   pixel $((x++)) $((y++))
done

wo die Funktion 'Pixel' eine Antwort sein sollte ... schreibe ein Pixel auf den Bildschirm, indem du die Byte-Werte (blau-grün-rot-alpha) auf dem x-y-Offset des Geräts /dev/fbX änderst, das der Frame-Puffer für die Videokarte ist.

oder versuchen Sie es mit einem Liner-Pixel-Zeichnen (gelb auf x:y=200:100, wenn die Breite 1024 ist):

printf "\x00\xFF\xFF\x00" | dd bs=4 seek=$((100 * 1024 + 200)) >/dev/fb0

AKTUALISIERUNG: Dieser Code funktioniert sogar innerhalb des X-Servers, wenn wir X einfach so konfigurieren, dass es den Frame-Puffer verwendet. durch Angabe von fb0 in /usr/share/X11/xorg.conf.d/99-fbdev.conf


Linux
  1. So installieren Sie Software über die Linux-Befehlszeile

  2. Wie starte ich Icewm von der Befehlszeile aus neu?

  3. Linux – Ist es möglich, auf den Framebuffer zuzugreifen, um von der Befehlszeile aus ein Pixel auf den Bildschirm zu bringen?

  4. Führen Sie Perl/PHP-Skripte von der Befehlszeile aus

  5. Migrieren eines Linux-Servers über die Befehlszeile

Programmieren Sie Hardware über die Linux-Befehlszeile

Googler – Führen Sie Google-Suchen über die Befehlszeile aus

Wie kann ich den Bildschirm mit dem neuen Sperrbildschirm von der Befehlszeile aus sperren?

Suchen Sie die WordPress-Version über die Befehlszeile

Wie greife ich über die Befehlszeile auf Unix Domain Sockets zu?

Wie erhalte ich meine IP-Adresse über die Befehlszeile?