制作Linux嵌入式系统开机LOGO(图片)

内核:linux-2.6.22.6
ubuntu:Ubuntu 9.10
开发板: JZ2440(方法通用,不局限于JZ2440)

目的:
JZ2440开机logo默认是一只可爱的小企鹅。我们把它替换成我们自己喜爱的图片

准备工作:
准备好BMP或者PNG 图片,若是别的格式的图片,可以使用
Windows自带的画图软件打开,然后另存为BMP或者PNG格式
Logo图片分辨率不小于JZ2440分辨率480*272,否则显示不了。

步骤:
1. 安装资料光盘Ubuntu 9.10没有的图片转换工具netpbm
$ sudo apt-get install netpbm 然后输入y //前提是ubuntu能上网

  1. 制作linux logo图片
    假设图片为 jz2440.png(png格式图片)
    $ pngtopnm jz2440.png > jz2440.pnm

$ pnmquant 224 jz2440.pnm > logo224.pnm

$ pnmtoplainpnm logo224.pnm > logo_linux_clut224.ppm

假设图片为 jz2440.bmp(BMP格式图片)
$ bmptopnm jz2440.bmp > jz2440.pnm

$ pnmquant 224 logo.pnm > logo224.pnm

$ pnmtoplainpnm logo224.pnm > logo_linux_clut224.ppm
注意:转换后的文件名有规定,必须是logo_linux_clut224.ppm

3.生成的logo_linux_clut224.ppm就是我们需要的logo文件,把它拷贝到内核目录
覆盖原来的logo文件
$ cd /work/system/linux-2.6.22.6/drivers/video/logo/

$ cp /work/logo_linux_clut224.ppm . //笔者制作的logo文件在/work/目录

  1. 查看logo目录是否存在logo_linux_clut224.o的文件,如果有一定要删除!
    $ rm logo_linux_clut224.o

  2. 配置内核支持logo显示(如果内核用的是linux-2.6.22.6_jz2440.patch补丁,默认已经支持logo显示)
    $ make menuconfig
    Device Drivers —>
    Graphics support —>
    Console display driver support—>
    <*>Framebuffer console support
    Bootup logo —>
    <*> Standart 224-color linux logo

6.重新编译内核,烧写
$make uImage
把uImage上传到window tftp软件所在目录

进入开发板uboot,作一些必要设置, 以PING通window
set gatewayip 192.168.1.1 //设置网关
set netmask 255.255.255.0 //设置子网掩码
set ipaddr 192.168.1.111 //设置uboot阶段的开发板ip
set serverip 192.168.1.170 //设置服务器ip
tftp 30000000 uImage //下载uImage
nand erase kernel //擦除kernel分区
nand write.jffs2 30000000 kernel //烧写uImage

因为笔者的文件系统在nfs上, 所以先设bootargs
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.199:/work/busybox-1.21.0/rootfs ip=192.168.1.100:192.168.1.199:192.168.1.255:255.255.255.0::eth0 init=/linuxrc console=ttySAC0,115200 //设置bootargs
save //保存环境变量
boot //启动开发板

效果:制作Linux嵌入式系统开机LOGO(图片)
注:如果您使用的linux发行版是Fedora,可以使用友善之臂公司提供的工具logomaker制作,具体步骤参考它们用户手册,不在赘述。