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

在使用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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值