[问题]MiniGUI在ubuntu7.10上的安装编译问题--framebuffer,GAL

内核编译和嵌入式产品的设计与开发
回复
es1024
帖子: 16
注册时间: 2007-08-19 23:30
来自: 广东

[问题]MiniGUI在ubuntu7.10上的安装编译问题--framebuffer,GAL

#1

帖子 es1024 »

本人这几天一直困扰于MiniGUI在ubuntu7.10上的安装编译问题,也上网搜索过很多种解决方案,但都不能解决,现将问题描述如下,希望高手们可以帮忙指导一下,不胜感激,谢谢!!

运行MiniGUI的helloworld程序后,出现了下面两句话:

GAL: Init GAL engine failure: fbcon.
GDI: Can not initialize graphics engine!


经查究,上面的问题的原因是因为framebuffer没有激活的缘故(不知是否如此,高手们请指导,谢谢).....下面是我尝试的解决方法,但均以失败告终

第一种:
在/etc/initramfs-tools/modules中添加fbcon,vesafb,vgafb后,再将/etc/modprobe.d/blacklist-framebuffer 中的vesafb,vga16fb注释掉,然后在/boot/grub/menu.lst中了kernel一行加入了vga=0x0317,再执行sudo update-initramfs -u后,重启,运行helloworld,问题依然存在.......显示为:
GAL: Init GAL engine failure: fbcon.
GDI: Can not initialize graphics engine!


注:修改后在终端用lsmod命令可以fbcon,vesafb,vgafb三个模块,这样是否表明已经激活了framebuffer呢??

第二种:
安装 qvfb,并修改了/usr/local/etc/MiniGUI.cfg文件,修改如下:
[system]
# GAL engine
#gal_engine=fbcon
gal_engine=qvfb

# IAL engine
#ial_engine=console
ial_engine=qvfb

mdev=/dev/mouse
mtype=IMPS2

[fbcon]
defaultmode=1024x768-16bpp

[qvfb]
#defaultmode=640x480-16bpp
defaultmode=240x320-32bpp
display=0


并在运行qvfb后修改其configure为640x480-16bpp
再运行helloworld,问题依然存在,显示为:
GAL: Init GAL engine failure: qvfb.
GDI: Can not initialize graphics engine!




还有我用sudo dmesg | grep /dev/fb0 和sudo dmesg | grep /dev/fb1,终端都没有显示,是不是说明了内核没有启动fb设备??那又该如何启动或创建呢??

当我运行 sudo dmesg |grep fb时,显示如下信息:
[ 0.000000] BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
[ 0.000000] Kernel command line: root=UUID=9fb0b9d6-896f-4dfd-ae74-940e0e9b18d0 ro quiet splash locale=zh_CN vga=0x0317
[ 23.619955] CPU: After generic identify, caps: 3febfbff 00000000 00000000 00000000 00000000 00000000 00000000
[ 23.619989] CPU: After all inits, caps: 3febfbff 00000000 00000000 0000b080 00000000 00000000 00000000
[ 24.329777] PCI: PCI BIOS revision 2.10 entry at 0xfb0a0, last bus=2
[ 24.402527] pnp: 00:00: iomem range 0xf8000-0xfbfff could not be reserved
[ 26.215634] vesafb: framebuffer at 0xe0000000, mapped to 0xd8880000, using 3072k, total 65536k
[ 26.215642] vesafb: mode is 1024x768x16, linelength=2048, pages=0
[ 26.215647] vesafb: protected mode interface info at c000:0f3e
[ 26.215651] vesafb: pmi: set display start = c00c0f77, set palette = c00c0fed
[ 26.215654] vesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da
[ 26.215675] vesafb: scrolling: redraw
[ 26.215679] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
[ 26.261061] fb0: VESA VGA frame buffer device
[ 27.566843] vga16fb: initializing
[ 27.566852] vga16fb: mapped to 0xc00a0000
[ 27.567016] fb1: VGA16 VGA frame buffer device

从上可以看到出现了fb0和fb1,为何运行udo dmesg | grep /dev/fb0 和sudo dmesg | grep /dev/fb1,终端却没有显示,由此可看到什么问题吗??


运行 sudo hwinfo --framebuffer后出现如下信息:
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.447]
Unique ID: rdCR.HCiprRATnBF
Hardware Class: framebuffer
Model: "NVidia NV10 Reference Board"
Vendor: "NVidia Corporation"
Device: "NV10 Reference Board"
SubVendor: "NVidia"
SubDevice:
Revision: "Chip Rev A1"
Memory Size: 64 MB
Memory Range: 0xe0000000-0xe3ffffff (rw)
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(我在menu.lst中添加了此项)
Mode 0x0318: 1024x768 (+4096), 24 bits
Mode 0x031a: 1280x1024 (+2560), 16 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
Config Status: cfg=new, avail=yes, need=no, active=unknown

请问上面的信息是否表明了我的显卡支持 framebuffer呢?但可以看到是否激活吗?


请问高手们:
我在第一种方法中,我有没有激活了framebuffer??如何知道是否激活了framebufer??如果激活了,为何还会出现错误 ??
在第二种方法中,我采用了虚拟framebuffer,仍然不行,请问与framebuffer是否激活有关吗??

还有想请问高手:
如何知道显卡是否支持 framebuffer,我的显卡是GeForce2 MX/MX 400,是否要重新安装显卡驱动呢?
对于这个编译运行程序问题,有没有其他可行的方案??

对于上述的问题,望高手们可以指点一下,让我有所启发,以助我解决问题,也可以为以后的新手们提供指导,谢谢!!
上次由 es1024 在 2008-03-10 19:13,总共编辑 1 次。
学好Linux!
diskdriver
帖子: 21
注册时间: 2006-12-21 8:45

#2

帖子 diskdriver »

fbcon出现GAL的初始化错误有可能是你的fb0,没有的读的权限,或是fb0的属主为root用户。
qvfb时,初始化的打印信息也不对,怎么使用了qvfb还报fbcon初始化错误,是不是你使用的MiniGUI.cfg不正确。另,framebuffer是内核驱动支持的,与显卡无关。
es1024
帖子: 16
注册时间: 2007-08-19 23:30
来自: 广东

#3

帖子 es1024 »

首先谢谢楼上的答复....
我昨天在百般无奈下装回了redhat9(指导书是以它为准的),现在已经可以安装并运行miniGUI的范例程序...
我思考之后,感觉楼上说得很有道理,关于fb0的读取权限问题,我在ubuntu里是以一般用户登陆的,在redhat里是以root登陆的....
至于qvfb的初始化错误,是我打错了,不好意思,我等下改回来...
还有一个就是我之前装的miniGUI的范例程序可能存在问题,我是在其网页上重新下载安装的...

衷心地感谢楼上的关注与指导,谢谢! :)
学好Linux!
回复