红联Linux门户
Linux帮助

打开/dev/fb0时'No such device'错误解决方法:激活FrameBuffer

发布时间:2017-04-16 09:45:57来源:blog.csdn.net/Apollon_krj作者:Apollon_krj
在使用Linux系统函数mmap(),将FrameBuffer映射到内存上来实现一个简单的贪吃蛇游戏时,在自己的Redhat 6.4上测试时,运行程序结果却提示:“No such device”。可是在/dev/下可以查看到fb0与fb都是存在的,并且操作权限是足够的。刚开始没有想到是驱动的问题,在网上站到了解决方案:问题是FrameBuffer驱动程序没有激活。
 
问题截图如下:
打开/dev/fb0时'No such device'错误解决方法:激活FrameBuffer
 
解决方案:
打开/boot/grub/menu.lst文件,文件如下:
打开/dev/fb0时'No such device'错误解决方法:激活FrameBuffer
在文件16行的末尾加上“vga=0x0317”并保存退出,然后reboot(下图是重启后的截图,可以看到文本颜色时发生了一些变化的)。
打开/dev/fb0时'No such device'错误解决方法:激活FrameBuffer
至于为什么是0x0317这个值,是因为我的显示器是1024*768(16bit(RGB655)),测试如下:
打开/dev/fb0时'No such device'错误解决方法:激活FrameBuffer
而不同分辨率与不同显示色数对应的这个vga值是不同的,如下:
VGA parameter table:
Mode 0x0300:   640x400 (+640), 8 bits
Mode 0x0301:   640x480 (+640), 8 bits
Mode 0x0303:   800x600 (+800), 8 bits
Mode 0x0305:   1024x768 (+1024), 8 bits
Mode 0x0307:   1280x1024 (+1280), 8 bits
Mode 0x030e:   320x200 (+640), 16 bits
Mode 0x030f:    320x200 (+1280), 24 bits
Mode 0x0311:   640x480 (+1280), 16 bits
Mode 0x0312:   640x480 (+2560), 24 bits
Mode 0x0314:   800x600 (+1600), 16 bits
Mode 0x0315:   800x600 (+3200), 24 bits
Mode 0x0317:   1024x768 (+2048), 16 bits
Mode 0x0318:   1024x768 (+4096), 24 bits
Mode 0x031a:   1280x1024 (+2560), 16 bits
Mode 0x031b:   1280x1024 (+5120), 24 bits
Mode 0x0330:   320x200 (+320), 8 bits
Mode 0x0331:   320x400 (+320), 8 bits
Mode 0x0332:   320x400 (+640), 16 bits
Mode 0x0333:   320x400 (+1280), 24 bits
Mode 0x0334:   320x240 (+320), 8 bits
Mode 0x0335:   320x240 (+640), 16 bits
Mode 0x0336:   320x240 (+1280), 24 bits
Mode 0x033d:   640x400 (+1280), 16 bits
Mode 0x033e:   640x400 (+2560), 24 bits
Mode 0x0345:   1600x1200 (+1600), 8 bits
Mode 0x0346:   1600x1200 (+3200), 16 bits
Mode 0x0347:   1400x1050 (+1400), 8 bits
Mode 0x0348:   1400x1050 (+2800), 16 bits
Mode 0x0349:   1400x1050 (+5600), 24 bits
Mode 0x034a:   1600x1200 (+6400), 24 bits
Mode 0x0352:   2048x1536 (+8192), 24 bits
Mode 0x0360:   1280x800 (+1280), 8 bits
Mode 0x0361:   1280x800 (+5120), 24 bits
Mode 0x0362:   768x480 (+768), 8 bits
Mode 0x0364:   1440x900 (+1440), 8 bits
Mode 0x0365:   1440x900 (+5760), 24 bits
Mode 0x0368:   1680x1050 (+1680), 8 bits
Mode 0x0369:   1680x1050 (+6720), 24 bits
Mode 0x037c:   1920x1200 (+1920), 8 bits
Mode 0x037d:   1920x1200 (+7680), 24 bits
重启之后,我们再运行程序,问题完美解决了(VESA FrameBuffer 驱动程序已经被激活)。
打开/dev/fb0时'No such device'错误解决方法:激活FrameBuffer
 
本文永久更新地址:http://www.linuxdiyf.com/linux/30048.html