首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

构造嵌入式Linux前先要了解的几个关键问题

构造嵌入式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]
  • 51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)

      编译安装内核:
    # 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
    51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
    返回列表