13. 修改Linux内核启动logo¶
开发板开机时,若有连接屏幕,会在屏幕上显示内核默认的logo(小企鹅), 若想要修改启动logo,可以按照以下步骤操作。
13.1. 准备一张图片¶
选择自己想要的修改的logo图片,例如这里选择ubuntu的logo, 将它制作成适合显示屏大小的图片,比如5寸屏幕的分辨率是800*480:
然后将其保存为 256色(即8位色)的bpm格式的图片 ,可以在Windows下或者Linux虚拟机下编辑:
13.2. 转换为ppm格式的图片¶
1、安装格式转换工具
1 2 3 | sudo apt update
sudo apt install netpbm
|
2、在Linux下使用以下脚本将其转换为ppm格式的文件,为什么是ppm格式呢? 因为这是编译Linux内核必要的文件格式,想要修改logo,就要这种格式的文件, 它必须是 256色(即8位色)的bpm格式的图片 转换而成的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/bin/bash
if [ " $1" == " " ];
then
echo "usage:$0 bmp_file"
exit 0
fi
if [ -f "$1" ]
then
echo $1
else
echo "no find file [$1]"
exit 0
fi
name=${1%%.*}
bmptopnm $1 > $name.pnm
pnmquant 224 $name.pnm > $name.clut224.pnm
pnmtoplainpnm $name.clut224.pnm > $name.ppm
rm $name.pnm $name.clut224.pnm
|
这是bmp文件转换ppm格式文件的脚本,可以将其写入一个叫 bmp2ppm.sh
脚本文件中,
并且赋予其可执行的权限(使用 chmod +x bmp2ppm.sh
命令即可).
然后将准备好的bmp文件拷贝到制作ppm文件的目录下,使用 bmp2ppm.sh
脚本将其转化为ppm文件,具体操作如下:
1 2 3 4 5 6 7 8 9 10 11 12 | zhan@zhan:~$ ls
bmp2ppm.sh ubuntu.bmp ubuntu.ppm
zhan@zhan:~$ ./bmp2ppm.sh ubuntu.bmp
ubuntu.bmp
bmptopnm: Windows BMP, 800x480x8
bmptopnm: WRITING PPM IMAGE
pnmcolormap: making histogram...
pnmcolormap: 29 colors found
pnmcolormap: Image already has few enough colors (<=224). Keeping same colors.
pnmremap: 29 colors found in colormap
zhan@zhan:~$
|
13.3. 替换原本的logo文件¶
1、在转换完成后,当前目录将出现对应的ppm文件,
我们将其拷贝到linux内核源码的 ebf_linux_kernel/drivers/video/logo
目录下,
因为我们的logo是存放在此处的,默认使用的logo为
logo_linux_clut224.ppm
2、将我们编译得到的ppm文件重命名为logo_linux_clut224.ppm,替换掉内核原先的logo_linux_clut224.ppm文件。
3、按照上面的编译步骤,重新编译内核,将得到的内核安装到开发板上即可。
13.4. 修改启动脚本和开机背景图¶
启动开发板,内核启动后会执行文件系统的启动脚本,
而此时文件系统的启动脚本中 /opt/scripts/boot/psplash.sh
会去执行相应的应用程序 /usr/bin/psplash
,显示开机时的背景。
如下图:
若只想显示开机logo可以将这行注释掉,或者将 /lib/fireware/logo.bmp
修改为其他的图片路径
(可以将自己的图片用windows系统自带画图软件另存为24位bmp放/lib/firmware里面)。