buguai 发表于 2020-11-27 17:20:14

迅为i.MX6ULL 开发板开机进度条修改文档

转自:迅为IMX6ULL开发板使用手册第七十一章



硬件平台:迅为i.MX6ULL 开发板



本章节介绍的是iTOP-iMX6ULL-修改开机进度条的显示和修改步骤,使用的资料已经放到了开发板网盘资料中路径为“11_Linux系统开发进阶\71_章节_修改开机进度条修改文档使用资料”。

1.以下所有操作都在root下执行。下载psplash源码,可以看到是yocto开源的其中一个项目。USER#git clone git://git.yoctoproject.org/psplash 如果终端提示:



图 71.1

那就先输入:apt install git



图 71.2

现在最新版的psplash已经下载好了。

如果你经过几次烧写,操作都没问题的情况下,但是还没有出现预期效果,那就很可能是psplash的版本太新的原因了。好,那么我们输入官网地址https://git.yoctoproject.org,如图 71.3、图71.4和图71.5所示找到下载地址,下载到主机上,然后通过ssh工具传入Ubuntu中继续下步操作。

图 71.3



图 71.4





图 71.5

2.将图片转换成头文件,利用psplash源码下的 make-image-header.sh脚本进行转换。转换前需要下载一些库才可以,否则会报错。执行指令安装库sudo apt-get install libgdk-pixbuf2.0-dev。

将下两张主图片和进度条框复制到psplash源码目录下,本人已经复制到我的psplash源码目录中了



图 71.6

3.在当前目录下输入下面的指令 ./make-image-header.sh topeet.png POKY生成topeet- img.h





图 71.7

POKY这个参数只是一个变量,它会传入 topeet- img.h里面,可以打开来看看。

下图我们打开了 topeet-img.h这个文件来看,它必须是这样命名的。因为其他地方要用到这样的宏定义,所以要加POKY参数





图 71.8

在当前目录下输入下面的指令 ./make-image-header.sh psplash-bar.png BAR 生成 psplash-bar-img.h



图 71.9

下图我们打开了psplash-bar-img.h这个文件来看,它是必须是这样命名的。因为其他地方要用到这样的宏定义,所以要加BAR参数



图 71.10

4.修改 psplash.c,将#include "psplash-poky-img.h"替换成#include "topeet-img.h "。因为进度条的名称是一样的,所以不用重新命名



图 71.11

5.制作autogen.sh脚本,脚本内容如图一,编写完成赋予可执行权限””chmod +x autogen.sh”再执行。



图 71.12



图 71.13

6.修改Makefile.am将psplash-poky-img.h改为topeet-img.h‘’



图 71.14

7.配置交叉编译工具链 注意!前提配置环境变量,Yocto 环境的交叉编译器是之前通过yocto获取的

即fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh。我们在光盘资料的“i.MX6UL 终结者光盘资料\01_开发及烧写工具\1.交叉编译器”目录下也提供了源码。配置环境变量后,使用命令“arm-poky-linux-gnueabi-g++ --version”即可看到添加进来的编译器如下图



图 71.15

然后输入 ./configure --host=arm-linux



图 71.16

8.执行make:生成psplash与psplash-write,将psplash与psplash-write拷贝到文件系统的根文件系统/usr/bin/目录下(实质上复制psplash也可以了)



图 71.17

9. psplash.sh脚本在根文件系统/etc/init.d中,此项已经存在。

10.将psplash.sh软链接在根文件系统/etc/rcS.d/目录下,用于开机启动。

将文件系统打包,注意打包的路径要写对,然后烧写,启动。开机动画就改变了,如图 71.18所示:



图 71.18

PS:建立软连接方法:ln -s 源地址目的地址

例如:比如我把linux文件系统rootfs_dir软链接到/home/jyg/目录下

ln -s /opt/linux/rootfs_dir/home/jyg/rootfs_dir就可以了

PS:如果不想显示开机动画,可以编辑/etc/init.d/psplash.sh,注释最后一行



图 71.19

PS:修改相关源文件,你可以自己对开机动画做出相应的调整。

psplash-config.h



图 71.20

psplash-colors.h颜色配置文件(背景色 进度条颜色等)



图 71.21

设置进度条 高度宽度 psplash_draw_progress(psplash.c)函数中



图 71.22

设置LOGO 进度条的坐标



图 71.23

chun2495 发表于 2020-11-27 17:33:43

楼主文件系统跑的是什么?这个界面能从uboot平稳过渡到kernel启动不。

buguai 发表于 2020-12-16 16:03:28

chun2495 发表于 2020-11-27 17:33
楼主文件系统跑的是什么?这个界面能从uboot平稳过渡到kernel启动不。

ull的文件系统 提供了 4种文件系统,可以平稳过度,uboot阶段没有logo,logo是从内核启动开始哒

chun2495 发表于 2020-12-16 16:54:02

buguai 发表于 2020-12-16 16:03
ull的文件系统 提供了 4种文件系统,可以平稳过度,uboot阶段没有logo,logo是从内核启动开始哒 ...

那这个时间挺长的,我的imx6q uboot启动到kernel大概有10s。

liang16888 发表于 2020-12-17 13:49:06

楼主大大 其他 arm 系统是否也能做出这种进度条?

abutter 发表于 2020-12-17 18:26:34

这是个用户程序。
页: [1]
查看完整版本: 迅为i.MX6ULL 开发板开机进度条修改文档