Ich bin mir nicht sicher, ob dies der einzig mögliche Weg ist, aber ich habe gelesen, dass man, um ein einzelnes Pixel an einem Ort Ihrer Wahl auf den Bildschirm zu bringen, etwas in einen Ort namens Framebuffer schreiben muss. So wurde ich neugierig, ob es möglich ist, an diesen Ort zu gelangen und etwas hinein zu schreiben, um irgendwo auf dem Bildschirm ein einzelnes Pixel anzuzeigen.
linux
console
graphics
framebuffer
Abdul Al Hazred
quelle
quelle
Antworten:
Ja, außerhalb von X-Server, in tty, versuche den Befehl:
Wenn der Bildschirm mit farbigen Pixeln gefüllt ist, ist Ihr Setup in Ordnung, und Sie können versuchen, mit diesem kleinen Skript zu spielen:
Dabei sollte die Funktion 'Pixel' eine Antwort sein. Schreiben Sie ein Pixel auf den Bildschirm, indem Sie die Bytewerte (blau-grün-rot-alpha) auf den xy-Versatz von device / dev / fbX ändern, der der Bildspeicher für die Grafikkarte ist.
Oder versuchen Sie es mit einem Liner Pixel Draw (gelb auf x: y = 200: 100, wenn die Breite 1024 ist):
UPDATE: Dieser Code funktioniert sogar innerhalb von X-Server, wenn X nur für die Verwendung von Frame Buffer konfiguriert wird . indem Sie fb0 in /usr/share/X11/xorg.conf.d/99-fbdev.conf angeben
quelle
dd
die aus bestimmten Gründen oft als "Disk Destroy" bezeichnet wurden ... nähern Sie sich diesen Befehlen nur, wenn Sie wissen, was Sie tun .../dev/fbX
und das/dev/fd
war nur ein Tippfehler. Und ja,dd
ist gefährlich, aber so ist es auchrm
. Das heißt nicht, dass es nicht verwendet werden sollte. Es bedeutet nur, dass es mit Vorsicht angewendet werden sollte./dev/fb0
macht mehr Sinn! Jeder weiß, was esrm
bedeutet, aber esdd
ist etwas unklarer. Trotzdem sollte es eine Gesundheitswarnung enthalten.Ich habe gerade heute Morgen gepostet und untersuche immer noch, warum es nur bei Raspberry Pis funktioniert. https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=213964&p=1428891#p1428891
Öffnen Sie / dev / fb0, ordnen Sie es so zu, dass Sie einen Zeiger erhalten, und es ist viel schneller. Verwendet X überhaupt nicht, ignoriert es jedoch glücklich X, es ist nur etwas auf dem Bildschirm.
Oh, von einer Kommandozeile aus können Sie in / dev / fb0 schreiben. Was auch immer Sie bei Offset 0 schreiben, es befindet sich in der oberen linken Ecke und wird sofort vom Bildschirm gescrollt. Sie könnten eine for-Schleife in Bash machen und ein paar tausend Mal schreiben. Oder benutze / dev / urandom. Es ist keine große Sache, das zu zerstören, was sich im Bildschirmpuffer befindet, besonders wenn Sie sich in X befinden. Sobald Sie ein Fenster über den Bereich X ziehen, wird ein Expose-Ereignis ausgelöst und es wird neu gezeichnet. Sie müssen nicht die Kraft töten, um sich zu erholen.
quelle