2009-10-06 29 views

Trả lời

8

nhìn vào FBIOPUT_VSCREENINFO, ioctl và mmap

(Tôi có mã nhưng không phải ở máy này, xin lỗi)

chỉnh sửa: điều này sẽ giúp bạn bắt đầu

//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

Bạn đang tìm cách viết trình điều khiển thiết bị? Nếu vậy kiểm tra hướng dẫn HowTo này

+0

Cũng đọc tệp Tài liệu/fb/framebuffer.txt (và các tài liệu liền kề cho các trình điều khiển cụ thể) trong linux kernel tree. –

6

Về cơ bản bạn mở/dev/fb0, thực hiện một số ioctls trên nó, sau đó mmap nó. Sau đó, bạn chỉ cần viết vào khu vực mmap'd trong quá trình của bạn.

Các vấn đề liên quan