2009-10-06 88 views

回答

8

看看FBIOPUT_VSCREENINFO,IOCTL和MMAP

(我的代碼,但沒有在這臺電腦,對不起)

編輯:這應該讓你開始

//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); 
4

你想寫一個設備驅動程序嗎?如果是的話看看這個方法文檔指南

+0

同時閱讀文件Documentation/fb/framebuffer.txt(以及特定驅動程序的相鄰文檔) linux內核樹。 – 2009-10-06 19:49:59

6

基本上你打開/ dev/fb0,在它上面做一些ioctls,然後進行mmap。然後,您只需在您的流程中寫入mmap'd區域。