سؤال

كيف تكتب مباشرة إلى Linux Framebuffer؟

هل كانت مفيدة؟

المحلول

انظر إلى 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 );

نصائح أخرى

في الأساس فتح / DEV / FB0، قم ببعض IOCtls عليه، ثم mmap ذلك. ثم تكتب فقط إلى منطقة MMAP'D في عمليةك.

هل تتطلع إلى كتابة برنامج تشغيل جهاز؟ إذا كان الأمر كذلك، تحقق من دليل Howto

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top