利用i.MX8MM开发板制作开机动画

[复制链接]
 楼主| 布罗利 发表于 2024-5-30 16:16 | 显示全部楼层 |阅读模式
本帖最后由 布罗利 于 2024-5-30 16:19 编辑

一、下载 psplash源码

1.下载psplash:gitclone git://git.yoctoproject.org/psplash,会下载到当前目录的psplash文件夹中

  1. forlinx@ubuntu:~$ git clone git://git.yoctoproject.org/psplash
  2. Cloning into 'psplash'...
  3. remote: Enumerating objects: 11, done.
  4. remote: Counting objects: 100% (11/11), done.
  5. remote: Compressing objects: 100% (11/11), done.
  6. remote: Total 306 (delta 2), reused 0 (delta 0), pack-reused 295
  7. Receiving objects: 100% (306/306), 128.73 KiB | 74.00 KiB/s, done.
  8. Resolving deltas: 100% (192/192), done.


2.下载成功后会在当前目录下生成一个psplash文件夹,进入psplash文件夹

  1. forlinx@ubuntu:~$ cd psplash/
  2. forlinx@ubuntu:~/psplash$ ls




会看到一个 make-image-header.sh 的脚本,等下会使用这个脚本来将图片转化成头文件。


3.在使用脚本之前,需要安装库,否则会报错。

  1. forlinx@ubuntu:~/psplash$ sudo apt-get install libgdk-pixbuf2.0-dev
  2. [sudo] password for forlinx:
  3. Reading package lists... Done
  4. Building dependency tree      
  5. Reading state information... Done
  6. The following package was automatically installed and is no longer required:
  7.   linux-hwe-5.4-headers-5.4.0-84
  8. Use 'sudo apt autoremove' to remove it.
  9. 【…】
  10. forlinx@ubuntu:~/psplash$ sudo apt-get install build-essential libncurses5-dev
  11. Reading package lists... Done
  12. Building dependency tree      
  13. Reading state information... Done
  14. 【…】

4.将想要替换的图片复制到psplash文件夹中,此处用的是我们公司的**,命名为**-1024x600.png ,外框照片命名为**-bar.png。




进度条的外框 **-bar.png。




将这两张图片拷贝到 psplash 源码目录中,如下图所示。






二 制作**

1.在 psplash 源码中执行以下指令来生成 **-1024x600-img.h




可以看到它必须是要加 POKY 参数的,因为其他地方要用到这样的宏定义


2.返回到 psplash 源码下,执行以下指令生成 **-bar-img.h

  1. forlinx@ubuntu:~/psplash$ ./make-image-header.sh **-bar.png BAR
  2. forlinx@ubuntu:~/psplash$ ls



同样我们打开 **-bar-img.h 这个文件。它必须是加 BAR 参数的,因为其他地方会 用到这样的宏定义。


  1. forlinx@ubuntu:~/psplash$ vi **-bar-img.h



3.打开 psplash.c,将里面的 #include "psplash-poky-img.h" 修改成 #include "**-1024x600-img.h"。将里面的 #include " psplash-bar-img.h" 修改成 #include "**-bar-img.h"。修改完后如下图所示。

  1. forlinx@ubuntu:~/psplash$ vi psplash.c



修改完成后保存退出 psplash.c,返回到源码目录下。


4.制作 autogen.sh 脚本,用于生成 Makefile。


  1. forlinx@ubuntu:~/psplash$ vi autogen.sh

内容如下:

  1. #!/bin/bash
  2. aclocal
  3. autoheader
  4. automake --add-missing
  5. autoconf

制作完脚本后,赋予它可执行权限,再执行这个脚本。

  1. forlinx@ubuntu:~/psplash$ chmod 777 autogen.sh
  2. forlinx@ubuntu:~/psplash$ ./autogen.sh
  3. configure.ac:7: installing './compile'
  4. configure.ac:3: installing './install-sh'
  5. configure.ac:3: installing './missing'
  6. Makefile.am: installing './INSTALL'
  7. Makefile.am: installing './depcomp'

5.修改 Makefile.am,将 psplash-poky-img.h 修改成**-1024x600-img.h,将 psplash-bar-img.h 修改成 **-bar-img.h。

  1. forlinx@ubuntu:~/psplash$ vi Makefile.am

修改完后的 Makefile.am 如下图所示。




修改完 Makefile.am 后保存退出,回到源码目录下。


6.执行以下指令,使能环境变量。

  1. forlinx@ubuntu:~/psplash$ . /opt/fsl-imx-xwayland/4.14-sumo/environment-setup-aarch64-poky-linux

7.环境变量使能后,就可以执行以下指令配置交叉编译工具链。


  1. forlinx@ubuntu:~/psplash$ ./configure --host=aarch64-poky-linux
  2. configure: loading site script /opt/fsl-imx-xwayland/4.14-sumo/site-config-aarch64-poky-linux
  3. checking for a BSD-compatible install... /usr/bin/install -c
  4. checking whether build environment is sane... yes
  5. checking for aarch64-poky-linux-strip... aarch64-poky-linux-strip
  6. checking for a thread-safe mkdir -p... /bin/mkdir -p
  7. checking for gawk... no
  8. checking for mawk... mawk
  9. checking whether make sets $(MAKE)... yes
  10. checking whether make supports nested variables... yes
  11. checking for style of include used by make... GNU
  12. 【…】

8.执行 make 指令进行编译。

  1. forlinx@ubuntu:~/psplash$ make
  2. cd . && /bin/bash /home/forlinx/psplash/missing automake-1.15 --gnu Makefile
  3. cd . && /bin/bash ./config.status Makefile depfiles
  4. config.status: creating Makefile
  5. config.status: executing depfiles commands
  6. ./make-image-header.sh base-images/psplash-bar.png BAR
  7. make  all-am
  8. make[1]: Entering directory '/home/forlinx/psplash'
  9. aarch64-poky-linux-gcc  --sysroot=/opt/fsl-imx-xwayland/4.14-sumo/sysroots/aarch64-poky-linux -DHAVE_CONFIG_H -I.    -g -Wall -Wextra  -D_GNU_SOURCE -DFONT_HEADER="radeon-font.h" -DFONT_DEF=radeon_font -O2 -pipe -g -feliminate-unused-debug-types  -MT psplash-psplash.o -MD -MP -MF .deps/psplash-psplash.Tpo -c -o psplash-psplash.o `test -f 'psplash.c' || echo './'`psplash.c
  10. 【…】

编译完成后会在源码目录下生成 psplash 和 psplash-write 文件。




三、替换出厂系统**

将编译生成的 psplash 和 psplash-write 文件拷贝到开发板出厂文件系统/usr/bin 目录下。

  1. okmx8mm login:root
  2. Last login: Thu Jun 20 10:00:15 UTC 2019 on tty7
  3. root@okmx8mm:~# cd /usr/bin/
  4. root@okmx8mm:/usr/bin# ls psp*
  5. psplash  psplash-default  psplash-write
  6. root@okmx8mm:/usr/bin# rm psplash
  7. root@okmx8mm:/usr/bin# rm psplash-write
  8. root@okmx8mm:/usr/bin# cp /run/media/sda1/psplash ./
  9. root@okmx8mm:/usr/bin# cp /run/media/sda1/psplash-write ./
  10. root@okmx8mm:/usr/bin# sync

保存重启后可看到开机动画已替换完成。效果如下:





您需要登录后才可以回帖 登录 | 注册

本版积分规则

179

主题

181

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部