Bonjour, je sais que l’on peut utiliser le frame buffer pour afficher ce que l’on veut en bash, par exemple :
sudo cat /dev/urandom > /dev/fb0
remplit le frame buffer avec des pixels de couleurs aléatoires, comment pourrais-je afficher 1 pixel de la couleur de mon choix, au milieu sans mapper l’ensemble ?
Dis autrement, peut-on accéder à une adresse mémoire du frame buffer à partir du bash pour y mettre une valeur ?
Merci
hello,
peut être avec fim ? au moins pour repérer le pixel…
Merci pour vos réponses, mais non ce n’est pas ce que je cherche.
en appelant en bash un programme en C . quelques exemples là:
http://www.pinon-hebert.fr/Knowledge/index.php/Frame_Buffer
Merci pour votre réponse, mais cela ne correspond pas à ma demande : du bash
peut être en modifiant ce script:
a condition que tu l’adaptes aux paramètres du `framebuffer de ton Rpi (framebuffer_width, framebuffer_height, framebuffer_depth …)
source:
Merci pour votre réponse mais cela ne correspond pas à ma demande, je cherche un adressage directe à la mémoire du frame buffer en bash, donc pas de mappage.
je ne pense pas m’avancer en disant que hormis une lecture, une modification et une réécriture du framebuffer, bash ( comme les autres shell) n’offre pas de commande d’écriture directe sur une adresse mémoire.
merci bof, ça répond en partie à ma question, ce n’est pas possible en bash seul apparement. Dans ce cas, existe t’il un soft qui permettrait de le faire ? Avec hexdump et devmem il est possible de lire une adresse en ram, mais pour écrire je n’ai pas trouvé.
le problème ce n’est pas que d’écrire en ram mais surtout trouver l’adresse de début et la taille du framebuffer.
ça pourrait se faire en modifiant le programme de la page http://www.pinon-hebert.fr/Knowledge/index.php/Frame_Buffer " Acces à la mémeoire" en remplaçant la partie « draw »
// draw...
// just fill upper half of the screen with something
memset(fbp, 0xff, screensize/2);
// and lower half with something else
memset(fbp + screensize/2, 0x18, screensize/2);
par
memset(fbp+?, 0x00, ?);
avec
memset(fbp + 8000, 0x00, 48);
sur mon Rpi :
random $ fbset -s
mode "1920x1080"
geometry 1920 1080 1920 1080 16
timings 0 0 0 0 0 0 0
accel true
rgba 5/11,6/5,5/0,0/0
endmode
ça trace 3 pixels sur 3*16 , un seul, je le voyais pas
une explication de memset en source
source :