0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OKMX8MM-C开发板制作开机动画的思路

飞凌嵌入式 2022-01-07 16:09 次阅读

近期有部分客户询问飞凌嵌入式i.MX8M系列开发板如何添加或更改开机动画,下文以OKMX8MM-C为例整理出如下思路,可供客户尝试。

一、下载 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

87754930-69a5-11ec-8d32-dac502259ad0.png

会看到一个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文件夹中,此处用的是我们公司的logo,命名为logo-1024x600.png,外框照片命名为logo-bar.png。

87b07186-69a5-11ec-8d32-dac502259ad0.png进度条的外框logo-bar.png。87fe232c-69a5-11ec-8d32-dac502259ad0.png将这两张图片拷贝到psplash源码目录中,如下图所示。

88272a10-69a5-11ec-8d32-dac502259ad0.png

二、制作logo

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

  1. forlinx@ubuntu:~/psplash$ ./make-image-header.sh logo-1024x600.png POKY

  2. forlinx@ubuntu:~/psplash$ ls

8864eab2-69a5-11ec-8d32-dac502259ad0.png

POKY参数只是一个变量,它会传入到logo-1024x600-img.h文件里面,可以打开查看。


  1. forlinx@ubuntu:~/psplash$ vi logo-1024x600-img.h

88b44328-69a5-11ec-8d32-dac502259ad0.png

可以看到它必须是要加POKY参数的,因为其他地方要用到这样的宏定义。2.返回到psplash源码下,执行以下指令生成 logo-bar-img.h

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

  2. forlinx@ubuntu:~/psplash$ ls

88e01796-69a5-11ec-8d32-dac502259ad0.png

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

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

8918f5b6-69a5-11ec-8d32-dac502259ad0.png

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

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

894c94a2-69a5-11ec-8d32-dac502259ad0.png

修改完成后保存退出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修改成logo-1024x600-img.h,将psplash-bar-img.h修改成logo-bar-img.h。


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

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

89780d80-69a5-11ec-8d32-dac502259ad0.png

修改完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

  10. --sysroot=/opt/fsl-imx-xwayland/

  11. 4.14-sumo/sysroots/aarch64-poky-linux -DHAVE_CONFIG_H -I

  12. . -g -Wall -Wextra

  13. -D_GNU_SOURCE -DFONT_HEADER="radeon-font.h"

  14. -DFONT_DEF=radeon_font -O2 -pipe -g

  15. -feliminate-unused-debug-types

  16. -MT psplash-psplash.o -MD -MP -MF

  17. .deps/psplash-psplash.Tpo -c -o psplash-psplash.o

  18. `test -f 'psplash.c' || echo './'`psplash.c

  19. 【…】

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

89adc060-69a5-11ec-8d32-dac502259ad0.png

三、替换出厂系统logo

将编译生成的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

保存重启后可看到开机动画已替换完成。效果如下:8a09872e-69a5-11ec-8d32-dac502259ad0.png

注意:目前我们的OKMX8MM-C做了开机连续显示,所以默认没有开机动画,若客户有需要可按上述方式进行添加。同时此方法在OKMX8MQ-C和OKMX8MP-C上也同样适用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18265

    浏览量

    288191
收藏 人收藏

    评论

    相关推荐

    【活动】4款AI开发板任你选,紧跟人工智能的风口

    CZ3456 OK3588-C[/url]——————————OKMX8MP-C开发板优惠券 [url=58₤OHPSWJuB30y₤ https://m.tb.cn/h.gao5Njo CZ3458
    发表于 04-19 13:31

    嵌入式学习-ElfBoard ELF 1板卡-修改开机动画的方法

    /sda1/psplash /usr/bin/ root@ELF1:~# cp /run/media/sda1/psplash-write /usr/bin/ root@ELF1:~# sync 9.开发板断电,连接屏幕,开发板上电,观察到
    发表于 01-10 10:21

    TQ3568开发平台Android11修改开机动画

    **TQ3568开发平台Android11修改开机动画** Android 开机logo是可以动态显示或者静态显示的。如果是静态显示,循环播放一章图片,直到系统启动。如果是动态显示,那么开机
    发表于 12-07 13:45

    TQ3568开发平台Android11修改开机动画

    TQ3568开发平台Android11修改开机动画Android开机logo是可以动态显示或者静态显示的。如果是静态显示,循环播放一章图片,直到系统启动。如果是动态显示,那么开机log
    的头像 发表于 12-04 17:21 313次阅读
    TQ3568<b class='flag-5'>开发</b>平台Android11修改<b class='flag-5'>开机动画</b>

    请问STM32用TFT屏写开机动画有什么比较好的方案?

    请问STM32 用 TFT 屏写开机动画有什么比较好的方案?
    发表于 11-10 07:25

    新定义TBK RD8T3x开发板功能及上电开机测试!

    给加大介绍的新定义 TBK-RD8T3x 开发板,使用的是增强型的高速 1T 8051 内核,工业级集成触控按键功能的 Flash 微控制器 RD8T37P48RJ。 板载功能包含: (1)触摸
    发表于 09-24 22:38

    OKMX6ULL-C开发平台试用体验

    飞凌OKMX6ULL-C开发平台试用体验
    的头像 发表于 09-18 02:54 901次阅读
    <b class='flag-5'>OKMX</b>6ULL-C<b class='flag-5'>开发</b>平台试用体验

    在i.MX8MP开发板上实现SPI转CAN

    飞凌嵌入式OKMX8MP-C开发板有两路原生CAN总线,但用户在开发产品时可能需要用到更多的CAN,这该如何解决呢?今天小编将为大家介绍一种SPI转CAN的方法,供各位工程师小伙伴参考。 说明
    发表于 09-11 15:26

    飞凌OKMX6ULL开发板开箱试用体验

    OKMX6ULL-C开发板采用核心板+底板结构,基于NXP公司的i.MX6ULL低功耗处理器设计,运行主频800MHz,ARM Cortex-A7架构。独特的电源管理架构相比ARM9系列核心板功耗
    的头像 发表于 08-15 10:33 481次阅读
    飞凌<b class='flag-5'>OKMX</b>6ULL<b class='flag-5'>开发板</b>开箱试用体验

    【飞凌i.MX9352开发板试用】+内核编译+系统烧写+核心芯片性能测试

    一、开发板启动 开发板上已经烧写好系统了,通电后可以直接启动。 经过上一篇电路分析,知道DEBUG的Type-C接口上有两个串口,其中A通道是A核心的,B通道是M核心的,启动Linux使用的是A核心
    发表于 06-09 08:46

    【CW32饭盒派开发板试用体验】开发板及核心介绍

    CW32饭盒派是一款基于CW32F030C8T6的开发板。 接上tpye-c数据线后,板子tft有以下显示: 这块MCU是48PIN MCU:CW32F030C8T6位微控制器,是6
    发表于 05-22 11:28

    【CW32饭盒派开发板试用体验】开发板简单介绍和开发板初体验

    今天开箱一款基于CW32F030C8T6的开发板开发板命名为CW32饭盒派。 下面简单的对开发板做个介绍: CW32饭盒派板载资源非常丰富:有一电位器、蜂鸣器、3路用户按键、3路指示
    发表于 05-22 10:56

    【CW32饭盒派开发板试用体验】开发板简单介绍及初体验

    今天开箱一款基于CW32F030C8T6的开发板开发板命名为CW32饭盒派。 下面简单的对开发板做个介绍: CW32饭盒派板载资源非常丰富:有一电位器、蜂鸣器、3路用户按键、3路指示
    发表于 05-22 10:47

    通过Yocto为开发板制作一个u-boot,应该更改或/和添加到图层的位置?

    你好!我用 DDR4 创建了我的自定义 IMX8MM 。所有 DDR4 测试都在 IMX 配置工具中成功通过。 我正在尝试通过 Yocto 为我的开发板制作一个 u-boot。我以
    发表于 05-09 08:03

    【测评】飞凌i.MX8MM开发板,为你带来卓越的影音体验

    飞凌嵌入式OKMX8MM-C开发板,专注于提供优秀的视频和音频体验
    的头像 发表于 05-05 15:26 577次阅读
    【测评】飞凌i.MX8<b class='flag-5'>MM</b><b class='flag-5'>开发板</b>,为你带来卓越的影音体验