Как написать напрямую в linux framebuffer? - PullRequest
7 голосов
/ 06 октября 2009

Как писать напрямую в фреймбуфер linux?

Ответы [ 3 ]

8 голосов
/ 06 октября 2009

посмотрите на FBIOPUT_VSCREENINFO, ioctl и mmap

(у меня есть код, но не на этом ПК, извините)

edit: это должно помочь вам начать

  //open file descriptor and get info
inf fdScreen = open( "devicename", O_RDWR );
fb_var_screeninfo varInfo;
ioctl( fdScreen, FBIOGET_VSCREENINFO, &varInfo );

  //set resolution/dpi/color depth/.. in varInfo, then write it back
ioctl( fdScreen, FBIOPUT_VSCREENINFO, &varInfo );

  //get writable screen memory; unsigned short here for 16bit color
unsigned short* display = mmap( 0, nScreenSize,
                                PROT_READ | PROT_WRITE, MAP_SHARED, fdScreen, 0 );
6 голосов
/ 07 октября 2009

По сути, вы открываете / dev / fb0, делаете несколько ioctl, а затем отображаете его. Затем вы просто пишете в область mmap'd в вашем процессе.

4 голосов
/ 06 октября 2009

Вы хотите написать драйвер устройства? Если это так, ознакомьтесь с этим руководством

...