iMX8M系列技術貼 | OKMX8MM-C開發板制作開機動畫的思路

原創 2021-12-31 09:11:00 iMX8M imx8mm

近期有部分客戶詢問飛凌嵌入式i.MX8M系列開發板如何添加或更改開機動畫,下文以OKMX8MM-C為例整理出如下思路,可供客戶嘗試。


一、下載 psplash源碼

1.下載psplash:gitclone git://git.yoctoproject.org/psplash,會下載到當前目錄的psplash文件夾中


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


2.下載成功后會在當前目錄下生成一個psplash文件夾,進入psplash文件夾


forlinx@ubuntu:~$ cd psplash/
forlinx@ubuntu:~/psplash$ ls


 make-image-header.sh 腳本


會看到一個 make-image-header.sh 的腳本,等下會使用這個腳本來將圖片轉化成頭文件。


3.在使用腳本之前,需要安裝庫,否則會報錯。


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


4.將想要替換的圖片復制到psplash文件夾中,此處用的是我們公司的logo,命名為logo-1024x600.png ,外框照片命名為logo-bar.png。

外框照片


進度條的外框 logo-bar.png。


進度條的外框


將這兩張圖片拷貝到 psplash 源碼目錄中,如下圖所示。


psplash 源碼目錄


二 制作logo

1.在 psplash 源碼中執行以下指令來生成 logo-1024x600-img.h 


POKY 參數


可以看到它必須是要加 POKY 參數的,因為其他地方要用到這樣的宏定義。


2.返回到 psplash 源碼下,執行以下指令生成  logo-bar-img.h 


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


生成 logo-bar-img.h


同樣我們打開 logo-bar-img.h 這個文件。它必須是加 BAR 參數的,因為其他地方會 用到這樣的宏定義。 


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


修改include


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


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


修改成 #include logo-bar-img.h


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


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


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


內容如下:


#!/bin/bash 
aclocal 
autoheader 
automake --add-missing
autoconf


制作完腳本后,賦予它可執行權限,再執行這個腳本。


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


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


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


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


修改完后的 Makefile.am


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


6.執行以下指令,使能環境變量。


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


7.環境變量使能后,就可以執行以下指令配置交叉編譯工具鏈。


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


8.執行 make 指令進行編譯。


forlinx@ubuntu:~/psplash$ make 
cd . && /bin/bash /home/forlinx/psplash/missing automake-1.15 --gnu Makefile
 cd . && /bin/bash ./config.status Makefile depfiles
config.status: creating Makefile
config.status: executing depfiles commands
./make-image-header.sh base-images/psplash-bar.png BAR
make  all-am
make[1]: Entering directory '/home/forlinx/psplash'
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
【…】


編譯完成后會在源碼目錄下生成 psplash 和 psplash-write 文件。

源碼目錄下生成 psplash 和 psplash-write 文件


三、替換出廠系統logo 

將編譯生成的 psplash 和 psplash-write 文件拷貝到開發板出廠文件系統/usr/bin 目錄下。


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


保存重啟后可看到開機動畫已替換完成。效果如下:


開機動畫替換完成效果




相關產品 >

  • FETMX8MM-C核心板

    NXP i.MX8系列分為iMX8I、i.MX8M、i.MX8Mini、iMX8M Nano、iMX 8X等,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,搭配實時任務處理的Cortex-M4和Cortex M7的解決方案,適用于從消費家庭音頻到工業樓宇自動化及移動計算機等。飛凌嵌入式近期推出的iMX8系列i.MX8Mmini核心板基于四核Cortex-A53、單核Cortex-M4架構的i.MX 8Mmini 處理器設計,現已全面上市,更多i.MX8M核心板產品、解決方案詳情,歡迎致電飛凌嵌入式了解。

    了解詳情
    FETMX8MM-C核心板
  • FETMX8MP-C核心板

    iMX8MP核心板基于 NXP  i.MX 8M Plus 處理器設計,  采用4核Cortex-A53 和 Cortex-M7架構。支持雙千兆網口,iMX8MP性能強勁最高運行速率可達2.3TOPS,并且i.MX8MP功耗更低≤2W 。iMX 8M Plus系列專注于機器學習和視覺、高級多媒體以及具有高可靠性的工業自動化。它旨在滿足智慧家庭、樓宇、城市和工業4.0應用的需求。飛凌iMX8MP核心板提供用戶手冊,iMX8MP原理圖,引腳定義等。
    了解詳情
    FETMX8MP-C核心板

推薦閱讀 換一批 換一批