Nie jestem pewien, czy jest to jedyny możliwy sposób, ale przeczytałem, że aby umieścić pojedynczy piksel na ekranie w wybranym miejscu, należy napisać coś w miejscu zwanym buforem ramek. Byłem więc ciekawy, czy można wejść w to miejsce i napisać w nim coś, aby wyświetlić gdzieś na ekranie pojedynczy piksel.
linux
console
graphics
framebuffer
Abdul Al Hazred
źródło
źródło
Odpowiedzi:
tak, poza X-serwerem, w tty, spróbuj polecenia:
jeśli kolorowe piksele wypełnią ekran, oznacza to, że Twoja konfiguracja jest w porządku i możesz spróbować grać za pomocą tego małego skryptu:
gdzie funkcja „piksel” powinna być odpowiedzią ... zapisz piksel na ekranie, zmieniając wartości bajtów (niebiesko-zielono-czerwono-alfa) na przesunięciu xy urządzenia / dev / fbX, który jest buforem ramki dla karty graficznej.
lub spróbuj narysować jeden piksel liniowy (żółty na x: y = 200: 100, jeśli szerokość wynosi 1024):
AKTUALIZACJA: ten kod działa nawet wewnątrz X-serwera, jeśli tylko skonfigurujemy X do używania bufora ramki . poprzez określenie fb0 wewnątrz /usr/share/X11/xorg.conf.d/99-fbdev.conf
źródło
dd
które często nazywane są „Disk Destroy” z określonych powodów ... nie zbliżaj się do tych poleceń, chyba że wiesz, co robisz…/dev/fbX
i to/dev/fd
była tylko literówka. I tak,dd
jest niebezpieczne, ale takie też jestrm
. To nie znaczy, że nie należy go używać. Oznacza to po prostu, że należy go używać ostrożnie./dev/fb0
ma większy sens! Wszyscy wiedzą, co torm
znaczy, aledd
są nieco bardziej niejasne, nadal uważają, że powinno zawierać ostrzeżenie zdrowotne.Właśnie opublikowałem dziś rano, wciąż badając, dlaczego działa tylko na Raspberry Pis. https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=213964&p=1428891#p1428891
Otwórz / dev / fb0, mmap go, aby uzyskać wskaźnik, i jest znacznie szybszy. W ogóle nie używa X, ale na szczęście zignoruje X, to po prostu coś na ekranie.
Och, z wiersza poleceń możesz napisać do / dev / fb0. Ale cokolwiek napiszesz z przesunięciem 0, będzie w lewym górnym rogu, więc natychmiast przewinie ekran. Możesz zrobić pętlę for w Bash i napisać kilka tysięcy razy. Lub użyj / dev / urandom. Zniszczenie zawartości bufora ekranu, szczególnie gdy jesteś w X, nie jest niczym wielkim. Natychmiast po przeciągnięciu okna nad obszarem X powoduje zdarzenie odsłonięcia i odmalowuje je. Nie musisz zabijać mocy, aby się zregenerować.
źródło