首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>嵌入式开发>正文

基于Bootsplash嵌入式Linux启动画面定制

http://www.oklinux.cn  2007-08-08  赛迪网 kid  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

在基于linux的嵌入式仿真平台开发中,终端的美观和可定制是一个重要的问题。开机时滚动在屏幕上的字符串和单调的penguin图标,使嵌入式设备仍然脱离不了pc的痕迹,linux控制台上单调的“白纸黑字”型表现方式可谓大煞风景。改造linux控制台使之美观可定制地展示开机信息和logo成为基于嵌入式linux应用的一项重要工作。
   
  开源项目bootsplash(http://www.bootsplash.org/)为解决这个问题提供了一个完美的解决方案。Boot-
splash通过对内核打补丁来改变linux framebuffer控制台对图形显示的支持。通过用户空间程序来定制启动logo、设定控制台背景和显隐启动时的字符信息,甚至可以支持开机画面的动画显示。本文介绍利用splashboot打造启动画面的解决方案,涉及内核补丁、用户空间设置等方面的具体工作。

  1 内核补丁和控制工具

  1.1 支持bootsplash的内核补丁
  
  针对不同的内核版本,bootsplash站点上给出了相应的内核补丁。我们所使用的内核版本为2.4.23,下载并给内核打上补丁:

  cd /usr/src/linux
  make mrproper
  patch -Np1 -i ../bootsplash-3.0.7-2.4.23.diff
  重新编译内核:
  make menuconfig
  选上如下的几个参数:
  Code maturity level options --->
  Prompt for development and/or incomplete code/drivers
  Block devices ---> RAM disk support
  Block devices ---> Initial RAM disk (initrd) support
  Console drivers ---> Video mode selection support
  Console drivers ---> Frame-buffer support --->
  Support for frame buffer devices
  VESA VGA graphics console
  Use splash screen instead of boot logo
  然后编译内核:
  make dep && make bzImage
  再把生成的内核拷贝到/boot下:
  cp arch/i386/boot/bzImage /boot/linux-bootsplash
  这样我们得到的新内核bzImage就是支持bootsplash的内核了,剩下的工作就是对bootsplash的定制了。  

  1.2 安装用户空间程序
   
  下载bootsplash工具,解压安装:
  tar –zxf bootsplash-3.0.7.tar.gz
  cd  bootsplash-3.0.7/Utilities
  make
  cp fbresolution fbmngplay fbtruetype splash /sbin/

  这样完成了对用户空间工具的安装,其实bootsplash分别利用如下的四个程序:splash程序是将需要在framebuffer下显示的图片资源制作成启动ram盘的工具;fbmngplay读mng文件,播放动画;fbtruetype显示truetype字体;fbresolution检查分辨率。后面提到的脚本,只是以不同参数来读取配置文件,调用上面的这几个程序。

  
2 开机LOGO的定制

  2.1 设置splash屏幕的主题
   
  前面安装好的splash用户空间程序中有一个程序splash,它需要一个配置文件来指明使用哪个图片、要不要隐藏文本信息的输出等。可以看出“theme”就是splash工具需要的配置文件、图片和其他所需要的文件的集合。有很多已经准备好的theme可供挑选,我们也可以定制theme。为了方便起见,我们下载theme-Linux.tar.bz2并以它为theme。
   
  建立目录/etc/bootsplash/themes,解压Theme- Linux.tar.bz2到这个目录下,现在的目录结构应该是:
/etc/bootsplash/themes/Linux
   
  读者朋友可以看看该目录下的bootsplash-1024x768.cfg来观察配置文件的格式。这个简单的文件包含的选项不多,事实上它只是清楚地表明应该显示哪幅图片、控制台显示文本的颜色和背景色以及文本信息输出的位置区域。另外,不要忘了它还可以分别指定verbose和silent模式下显示文件的位置。Silent模式禁止显示启动信息,代之以一个可选的进度条(这需要关于A外包脚本的更多设置)。基于这个配置文件,你可以自己修改以显示自己喜欢的图片和采用自己喜欢的模式。

  2.2 利用splash小工具安装splash主题到initrd
   
  在系统启动的早期阶段,内核还不能读写硬盘。这个阶段要显示图片,那么图片放在什么地方那?答案是把图片写到ramdisk里,这样在启动的时候才能读到,因为这时候还没有加载分区呢。当然不用担心initrd的制作,splash小工具能轻松搞定。Splash小工具能根据基于你选择的配置文件(theme)来自动产生一个initrd。所要做的就是执行如下命令:
   
  splash -s -f /etc/bootsplash/themes/arch/config /arch-1024-boot.cfg  /boot/initrd.splash
  生成的initrd.splash就是一个新的initrd。在GRUB或LILO中加入它就可以了。
  按如下的方法修改GRUB或LILO:
  在GRUB中加入或修改下面的行:
  kernel (hd0,3)/boot/vmlinuz−2.4.21−melenas root=/dev/hda4 vga=791 splash=silent
  initrd (hd0,3)/boot/initrd.splash
  在LILO中加入或修改下面的行:
  vga=791
  initrd=/boot/initrd.splash
  append="splash=silent"
  来看看这几行的意义:
  vga=791: boot splash 将在1024x768 分辨率和65000 色 (16 位色)下显示。Framebuffer的设定要根据我们所使用的theme的分辨率和颜色深度来选择。
  splash=silent: 在silent模式下显示boot splash. 如果你希望用vebose模式,只需删除此行即可。Verbose模式是缺省模式。
  initrd=/boot/initrd.splash: 这行将initrd.splash调入启动ram盘(图片存于其中)。
  更新LILO或GRUB后,就可以看到精美的启动画面。

共2页: 上一页 1 [2] 下一页

上一篇:SSH实用技巧及常用命令使用说明   下一篇:Linux下推荐的应用程序列表介绍

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
· ACE程序移植过程详细解析
·系统学习嵌入式Linux几点非常实用的建议
·嵌入式Linux系统中I/O端口需要注意的问题
·当今常用的开源协议详细解析
·在嵌入式软件设计过程中查找缺陷的技巧
·三种嵌入式操作系统的深入分析与详细比较
·几种Linux下嵌入式开发环境的简单介绍
·嵌入式系统的开发流程概括介绍
·在你的Ubuntu Linux桌面上嵌入终端窗口
·Linux嵌入应用之ARM体系结构的技术特征
·介绍嵌入式应用中存储器类型的选择技巧
·嵌入式系统开发学习如何起步、如何深入?
·嵌入式Linux系统的驱动程序开发要点
·Linux嵌入式系统的内存管理方法详细介绍
·Linux系统和嵌入式系统应用
·嵌入式Linux操作系统名词解释及资源大全
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·“中立人士”对嵌入式Linux的相关评论
·嵌入式技巧:ARM的三种中断调试方法介
·嵌入式:关于Linux下_init与_exit的解
·在嵌入式Linux系统中应用的GTK 和X分析
·使用虚拟机嵌入式Linux开发前的必要准
·用NFS服务开发ARM Linux程序的方法介绍
·虚拟机Linux系统下连接ARM开发板的方法
·嵌入式Linux系统下的网页浏览器 WebKit
·系统学习嵌入式Linux 几点非常实用的建
·嵌入式Linux攻略 ACE程序移植过程详细
·嵌入式基础 当今常用的开源协议详细解
·Linux攻略 嵌入式系统的开发流程概括介
  阅读排行
· 常见的嵌入式操作系统都有哪些?
·嵌入式Linux文件系统详细介绍
·Linux攻略 嵌入式系统的开发流程概括介
·嵌入式Linux系统学习规划
·在嵌入式Linux系统中应用的GTK 和X分析
· 嵌入式linux下常见的文件系统
·系统学习嵌入式Linux 几点非常实用的建
· armlinux启动配置文件 /etc/init.d/rc
·嵌入式系统的开发流程概括介绍
·U-Boot的常用命令详解
·疯狂DIY! 在iPod上安装Linux系统
·嵌入式Linux系统下的网页浏览器 WebKit
·详述嵌入式系统下Microwindows的实现
·Linux嵌入式系统的内存管理方法详细介
·嵌入式Linux系统名词解释及资源大全
网摘收藏: