您的位置:首页 > Web前端

打开/dev/fb0时“No such device”错误解决方法:激活 VESA FrameBuffer 驱动程序

2017-04-14 22:42 513 查看
在使用Linux系统函数mmap(),将FrameBuffer映射到内存上来实现一个简单的贪吃蛇游戏时,在自己的Redhat 6.4上测试时,运行程序结果却提示:“No such device”。可是在/dev/下可以查看到fb0与fb都是存在的,并且操作权限是足够的。刚开始没有想到是驱动的问题,在网上站到了解决方案:问题是FrameBuffer驱动程序没有激活。

问题截图如下:



解决方案:

打开/boot/grub/menu.lst文件,文件如下:



在文件16行的末尾加上“vga=0x0317”并保存退出,然后reboot(下图是重启后的截图,可以看到文本颜色是发生了一些变化的,因为其RGB变化了)。



至于为什么是0x0317这个值,是因为我的显示器是1024*768(16bit(RGB655)),测试如下:



而不同分辨率与不同显示色数对应的这个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 驱动程序已经被激活)。



感谢yeqishi博主原创作品给予的帮助:(开启linux(redhat、ubuntu) FrameBuffer )链接:http://blog.csdn.net/yeqishi/article/details/5573097
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  framebuffer red hat
相关文章推荐