标题:
构造嵌入式Linux前先要了解的几个关键问题
[打印本页]
作者:
linuxarm
时间:
2006-9-13 21:48
标题:
构造嵌入式Linux前先要了解的几个关键问题
构造嵌入式Linux需要了解的几个概念
Frame Buffer的配置方法--XWindow显卡配置通用解决方法
MiniGUI使用的LibGGI库其中一个好处就是在 Linux 控制台上,它可以运行在 Linux 2.2 内核所提供的 FrameBuffer 驱动程序之上,而不需要对显示芯片进行直接的硬件编程,因而也不需要超级用户权限去运行程序。这点和 SVGALib 不同,SVGALib 不支持 FrameBuffer,同时需要超级用户权限。 所以我们经常需要配置Frame buffer显示模式,可让XWindow用高分辨率和高/真彩。现在市面上绝大部分新出的显卡都支持VESA 2.0标准。
具体实现涉及四方面:
(1).一个支持 VESA frame buffer的内核(2.2 以上的版本即可);
(2).配置 lilo 的启动选项,使内核启动时能切换到指定的显示模式;
(3).XFree86的 frame buffer服务器(XF86_FBDev);
(4).在 XF86Config文件中为其配置一个Screen。
所需文件得到途径:
(1)、Linux 2.2.x kernel source (2.2.x内核原代码,如果你的Linux发行版是Kernel 2.2以上,那么你需要到/usr/src/linux去重新编译内核。如果你系统的kernel版本比较低,请在RedHat6.2等新版本Linux的安装盘中找,一般在RPMS里);
(2)、XFree86 Framebuffer Server: XF86_FBDev (RedHat6.2,蓝点Linux2.0);如:RedHat6.2在光盘的/RedHat/RPMS/XFree86-FBDev-3.3.6-20.i386.rpm
安装这个RPM包:
#rpm -ivh XFree86-FBDev-3.3.6-20.i386.rpm
这个包会在/usr/X11R6/bin下安装一个XF86_FBDev的服务器,后面我们会用到。
(3)、gcc 等编译工具(默认就有,有时会有版本太低的问题)。
编译一个支持 VESA frame buffer的内核
如果有现成的支持 VESA frame buffer的内核可跳过这一步。如蓝点2.0内核就支持frame buffer。
配置内核编译选项
#cd /usr/src/linux
#make menuconfig(命令行下),或xconfig(XWindow下)。
与 frame buffer device有关的选项有(用空格键来进行选中或去处,其余编译选项请参考其它资料):
Code maturity level opetions
Prompt for development and/or incomplete codes/drivers
Console drivers
Video mode selection support
...
Support for frame buffer devices
...
VESA VGA graphics console
...
Advance low level driver options
...
[Exit]
[Exit]
Do you wish to save your new kernel configuration?
[Yes]
作者:
linuxarm
时间:
2006-9-13 21:48
编译安装内核:
# make dep
# make bzImage
# make modules
# make modules_install
把编译好的内核拷到 /boot目录,文件名可自定,如
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.16-fb
配置 lilo 的启动选项
添加lilo启动配置
下面是典型的/etc/lilo.conf文件
boot = /dev/hda2
timeout = 50
prompt
read-only
image = /boot/vmlinuz-2.2.16-22
label = linux
root = /dev/hda2
other = /dev/hda1
label = dos
添加一新配置需添加 image,label,root及配合VESA frame buffer的 vga等四项:
boot = /dev/hda2
timeout = 50
prompt
read-only
image = /boot/vmlinuz-2.2.16-22
label = linux
root = /dev/hda2
image = /boot/vmlinuz-2.2.16-fb (新编译的支持Frame Buffer内核)
label = linuxfb (启动标号,可自定)
root = /dev/hda2 (你的根文件系统,具体会有不同)
vga = 0x314 (显示模式,参照下表)
other = /dev/hda1
label = dos
显示模式参照表
640x480 800x600 1024x768 1280x1024
256 0x301 0x303 0x305 0x307
32k 0x310 0x313 0x316 0x319
64k 0x311 0x314 0x317 0x31A
16M 0x312 0x315 0x318 0x31B
更新启动程序
运行lilo
重启,出现 lilo: 时键入linuxfb (或自定的标号)。
这时如果linux切换成图形模式,并有一小企鹅logo出现,那就大功告成一半。
配置frame buffer Server
修改/etc/X11/XF86Config 这个配置文件。
#vi /etc/X11/XF86Config
查找一下字符Screen
在Screen sections的开始增加如下几行 Section "Screen"
Driver "fbdev"
Device "My Video Card"
Monitor "My Monitor"
Subsection "Display"
Depth 16 (色彩深度,必须与前面所选的显示模式的色彩深度一致,必须!)
Modes "default"
ViewPort 0 0
EndSubsection
EndSection
让X 指向 XF86_FBDev
cd /etc/X11
rm -f X
ln -snf /usr/X11R6/bin/XF86_FBDev X
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0