修改嵌入式linux启动画面(一)

2019-07-12 14:51发布

linux的开机动画默认为一只80x80的小企鹅,在driver/video/logo下面。但是在实际的开发应用中,我们常常需要做的是更改系统默认的开机启动画面,更换企业的特有logo图片。
 
 说明下,我的环境是JZ2440开发板,韦东山老师移植的linux-2.6.22.6的kernel。
 
 首先,下面简要的操作步骤。
 1. 确定lcd屏大小:
  我用的lcd屏大小为320x240。
 2. 选择图片:
  logo界面大小必须要小于或等于lcd屏,否则会出现错误。这里我选择一张小于其(4.3寸,480x272)所支持大小的logo图片(320x240)。
 3. 图片制作:
  嵌入式linux的logo面为ppm类型格式的图片。
  首先,准备一张320x240的png格式图片。
  然后,重要在于如何将其转化为我们所需要的图片格式——ppm格式。这里介绍一个转换工具->netpbm。   // 假设你使用的是ubuntu,使用此命令安装图片格式转换工具。
  sudo apt-get install netpbm
  
  这里说明一下,嵌入式linux的logo是直接在frambuffer的基础上,显示的一个ppm格式的图像。在嵌入式linux中对其的支持不是正常的最大255,而是最大颜 {MOD}支持为224 {MOD}。这是一种使用ASCII码来描述图像的一种格式。
  下面将png图片转化为224 {MOD}的ppm图片
  a. 转换png成pnm格式
   pngtopnm wei_pei.png > wei_pei.pnm
  b. 转换像素数为224
   pnmquant 224 wei_pei.pnm > logo_linux_clut224.pnm
  c. 转换二进制的pnm格式为文本的ppm格式.
   pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm   
  最终重新编译内核
   cp  logo_linux_clut224.ppm kernel_dir/drivers/video/logo/logo_linux_clut224.ppm
   $cd kernel_dir/
   执行make命令重新编译,即可得到新的kernel image  按此步骤,最终便可以定制我们自己的kernel的启动logo界面了。
 
 这样总的来说是完成了我们任务所要达到的要求。但是如果想更好的了解其实还是可以再做一些小实验的,下面有一节将会来再尝试一下,如何在不改变原有系统的基础上添加自己的logo画面作为启动画面,也就是不更改logo_linux_clut224.ppm的情况下,实现要求。