解决/dev/fb0无法打开的问题

 解决/dev/fb0无法打开的问题

    最近要在Linux做基于frame Buffer的图形显示,不论我在独立分区的Linux FC6系统中,还是在装有Red hat9的VPC中,都无法打开/dev/fb0。从网上找了很多资料,都没能解决。经过几天的的郁闷之后,终于解决了这个问题。先记录如下:

    1、首先确认对Frame Buffer的支持是否编译到Linux的内核中。在安装的Linux中,默认都会把这个支持打开编译到内核中。但是如果自己重新编译了内核,或者升级内核,得确认把Frame Buffer的支持编入内核,并且还要把Console display driver support编译到内核中,还要把Logo configuration编译到内核中。这些选项都在Device drivers下的graphics support选项下。

    2、在启动项中打开对Frame Buffer的支持。由于虽然把对Frame Buffer的支持编译到内核中了,但是默认下是没有打开的。故要修改/boot/grub/menu.lst文件。在该文件的kernel那一行后面加上vga=0xXXX,0xXXX表示的是屏幕的分辨率和色彩数。

    其中vga=0x后面的数值可以从下表中查出。

色彩数640 X 480800X6001024X7681280X1024
2560x3010x3030x3050x307
32k0x3100x3130x3160x319
64k0x3110x3140x3170x31A
16M0x3120x3150x3180x31B

    我原先的/boot/grub/menu.lst文件如下:

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:  You have a /boot partition.  This means that

#          all kernel and initrd paths are relative to /boot/, eg.

#          root (hd0,0)

#          kernel /vmlinuz-version ro root=/dev/hda3

#          initrd /initrd-version.img

#boot=/dev/hda

default=0

timeout=10

splashimage=(hd0,0)/grub/splash.xpm.gz

title Red Hat Linux (2.6.18)

  root (hd0,0)

  kernel /vmlinuz-2.6.18 ro root=LABEL=/ 

  initrd /initrd-2.6.18.img

title Red Hat Linux (2.4.20-8)

  root (hd0,0)

  kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ 

  initrd /initrd-2.4.20-8.img

    因为我对red hat9升级了一个2.6.18的内核,故有两个启动项。修改后,如下:

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:  You have a /boot partition.  This means that

#          all kernel and initrd paths are relative to /boot/, eg.

#          root (hd0,0)

#          kernel /vmlinuz-version ro root=/dev/hda3

#          initrd /initrd-version.img

#boot=/dev/hda

default=0

timeout=10

splashimage=(hd0,0)/grub/splash.xpm.gz

title Red Hat Linux (2.6.18)

  root (hd0,0)

  kernel /vmlinuz-2.6.18 ro root=LABEL=/ vga=0x311

  initrd /initrd-2.6.18.img

title Red Hat Linux (2.4.20-8)

  root (hd0,0)

  kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ vga=0x311

  initrd /initrd-2.4.20-8.img

 

    3、重启系统。然后运行cat /dev/fb0,如果发现有一堆乱码输出在屏幕上,则表示找到了/dev/fb0这个设备。如果没有,则可能是你的显卡不支持。

    通过上述操作以后,我的虚拟机中的Linux和独立分区装的Linux都可以打开/dev/fb0了。最后还说一句,打开/dev/fb0是在控制台下打开,在XWindow界面下能打开,但是操作屏幕缓存区画图的时候,会不正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值