No estoy seguro de si es la única forma posible, pero leí que para colocar un solo píxel en la pantalla en la ubicación que elija, debe escribir algo en un lugar llamado framebuffer. Entonces sentí curiosidad, si es posible ingresar a este lugar y escribir algo en él para mostrar un solo píxel en algún lugar de la pantalla.
linux
console
graphics
framebuffer
Abdul Al Hazred
fuente
fuente
Respuestas:
sí, fuera del servidor X, en tty, pruebe el comando:
Si los colores llenos de píxeles llenan la pantalla, entonces su configuración está bien, y puede intentar jugar con este pequeño script:
donde la función 'píxel' debería ser una respuesta ... escriba un píxel en la pantalla cambiando los valores de bytes (azul-verde-rojo-alfa) en el desplazamiento xy del dispositivo / dev / fbX que es el búfer de cuadros para la tarjeta de video.
o pruebe un dibujo de píxel de línea (amarillo en x: y = 200: 100, si el ancho es 1024):
ACTUALIZACIÓN: este código funciona incluso dentro del servidor X, si solo configuramos X para usar frame buffer . especificando fb0 dentro de /usr/share/X11/xorg.conf.d/99-fbdev.conf
fuente
dd
que a menudo ha sido llamado "Disco Destruye" por razones específicas ... no se acerque estos comandos a menos que sepa lo que está haciendo .../dev/fbX
y/dev/fd
fue solo un error tipográfico. Y sí,dd
es peligroso, pero también lo esrm
. Eso no significa que no deba usarse. Simplemente significa que debe usarse con cuidado./dev/fb0
tiene más sentido! Todo el mundo sabe lo querm
significa, perodd
es un poco más oscuro, todavía creo que debería llevar una advertencia de salud.Acabo de publicar esto esta mañana, todavía investigando por qué solo funciona en Raspberry Pis. https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=213964&p=1428891#p1428891
Abra / dev / fb0, mmap para obtener un puntero, y es mucho más rápido. No usa X en absoluto pero felizmente ignorará X, es solo algo en la pantalla.
Oh, desde una línea de comando, puedes escribir a / dev / fb0. Pero lo que escriba en el desplazamiento 0 estará en la esquina superior izquierda, por lo que se desplazará inmediatamente fuera de la pantalla. Podrías hacer un bucle for en Bash y escribir un par de miles de veces. O use / dev / urandom. Destruir lo que hay en el screenbuffer, especialmente mientras estás en X, no es gran cosa. Tan pronto como arrastre una ventana sobre el área, X provoca un evento de exposición y lo vuelve a pintar. No necesitas matar el poder para recuperarte.
fuente