chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板中實現(xiàn)自定義開機動畫

ElfBoard ? 2025-07-25 09:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式Linux系統(tǒng)的啟動過程中,默認的文本啟動日志往往缺乏良好的用戶體驗。為了提升設(shè)備啟動時的視覺效果,可以通過psplash工具實現(xiàn)圖形化開機動畫,支持靜態(tài)logo或動態(tài)動畫顯示。

psplash是一個輕量級的啟動屏幕程序,專為嵌入式Linux系統(tǒng)設(shè)計,具有以下核心特性:

輕量高效:專為嵌入式設(shè)備設(shè)計,資源占用極低。

圖形化支持:支持靜態(tài)圖片或動態(tài)幀動畫(通過快速切換連續(xù)圖片實現(xiàn))。

高度可定制:可配置啟動圖像、進度條樣式、顯示時間等參數(shù)。

跨平臺兼容:支持多種嵌入式Linux發(fā)行版和硬件平臺。

注:本次在ELF 2開發(fā)板上主要驗證靜態(tài)圖片顯示和動態(tài)logo動畫功能,進度條功能暫未測試。

下面將詳細介紹如何在ELF 2開發(fā)板Buildroot系統(tǒng)中配置psplash,實現(xiàn)自定義開機動畫。

一、圖片制作

1、創(chuàng)建工程文件夾

首先,我們需要在虛擬機中創(chuàng)建一個文件夾來保存相關(guān)工程文件。打開終端,執(zhí)行以下命令:

elf@ubuntu:~$mkdir -p psplash_logo/mp4_logo/

接著,將源碼中的logo.mp4視頻拷貝到剛剛創(chuàng)建的mp4_logo文件夾中。

2、安裝FFmpeg

為了后續(xù)處理MP4視頻,需要安裝FFmpeg,在終端中執(zhí)行以下命令:

elf@ubuntu:~$ cd psplash_logo/mp4_logo/ elf@ubuntu:~/psplash_logo/mp4_logo$ sudo apt-get update elf@ubuntu:~/psplash_logo/mp4_logo$ sudo apt-get install ffmpeg

3、創(chuàng)建圖片存儲文件夾

創(chuàng)建一個名為part0的文件夾,用于存儲后續(xù)生成的圖片:

elf@ubuntu:~/psplash_logo/mp4_logo$mkdir part0

4、 提取視頻幀為圖片

使用FFmpeg將視頻文件logo.mp4按每秒7幀(7fps)的速率提取為一系列連續(xù)的PNG圖片,并保存到part0/目錄下。執(zhí)行以下命令:

elf@ubuntu:~/psplash_logo/mp4_logo$ffmpeg -i logo.mp4 -f image2 -r7part0/%04d.png

5、查看生成的圖片

執(zhí)行以下命令查看part0文件夾中的圖片內(nèi)容:

elf@ubuntu:~/psplash_logo/mp4_logo$ ls part0/ 0001.png 0004.png 0007.png 0010.png 0013.png 0016.png 0019.png 0022.png 0025.png 0028.png 0031.png 0034.png 0037.png 0040.png 0043.png 0046.png 0049.png 0052.png 0002.png 0005.png 0008.png 0011.png 0014.png 0017.png 0020.png 0023.png 0026.png 0029.png 0032.png 0035.png 0038.png 0041.png 0044.png 0047.png 0050.png 0053.png 0003.png 0006.png 0009.png 0012.png 0015.png 0018.png 0021.png 0024.png 0027.png 0030.png 0033.png 0036.png 0039.png 0042.png 0045.png 0048.png 0051.png 0054.png

二、圖片轉(zhuǎn)換

1、檢查圖片分辨率

在將圖片轉(zhuǎn)換為.h文件之前,需要確保圖片分辨率與屏幕分辨率一致。使用以下命令查看圖片分辨率:

elf@ubuntu:~/psplash_logo/mp4_logo$ file part0/0001.png part0/0001.png: PNG image data, 640 x 360, 8-bit/color RGB, non-interlaced

可以看到圖片分辨率是640x360,本次測試使用的是飛凌7寸MIPI屏,分辨率為1024x600,因此需要對圖片進行分辨率轉(zhuǎn)換。

2、創(chuàng)建相關(guān)文件夾

創(chuàng)建logo_h文件夾,并在其中分別創(chuàng)建h、logo_1024x600、master三個文件夾:

elf@ubuntu:~/psplash_logo/mp4_logo$ mkdir logo_h elf@ubuntu:~/psplash_logo/mp4_logo$ cd logo_h/ elf@ubuntu:~/psplash_logo/mp4_logo/logo_h$ mkdir h logo_1024x600 master

3、拷貝圖片到master文件夾

將part0文件夾下的所有PNG格式的圖片拷貝到master文件夾中備用:

elf@ubuntu:~/psplash_logo/logo_h$cp ../part0/* ./master/

4、創(chuàng)建分辨率轉(zhuǎn)換腳本

在master文件夾中創(chuàng)建fix_1024x600.sh腳本,用于進行分辨率轉(zhuǎn)換。執(zhí)行以下命令創(chuàng)建腳本:

elf@ubuntu:~/psplash_logo/mp4_logo/logo_h$ cd master/ elf@ubuntu:~/psplash_logo/mp4_logo/logo_h/master$ vi fix_1024x600.sh

腳本內(nèi)容如下:

#!/bin/bash

5、賦予腳本可執(zhí)行權(quán)限

執(zhí)行以下命令賦予腳本可執(zhí)行權(quán)限:

elf@ubuntu:~/psplash_logo/logo_h/master$chmod +x fix_1024x600.sh

6、執(zhí)行腳本

執(zhí)行腳本進行分辨率轉(zhuǎn)換:

elf@ubuntu:~/psplash_logo/logo_h/master$./fix_1024x600.sh

7、驗證轉(zhuǎn)換結(jié)果

執(zhí)行完畢后,使用以下命令查看logo_1024x600文件夾下轉(zhuǎn)換好的圖片文件的分辨率:

elf@ubuntu:~/psplash_logo/mp4_logo/logo_h/master$ file ../logo_1024x600/0001.png ../logo_1024x600/0001.png: PNG image data, 1024 x 600, 8-bit/color RGB, non-interlaced

8、創(chuàng)建生成.h文件的腳本

在h文件夾中新建make-image-header.sh腳本,用于將圖片轉(zhuǎn)換為.h文件。執(zhí)行以下命令創(chuàng)建腳本:

elf@ubuntu:~/psplash_logo/mp4_logo/logo_h/master$ cd ../h/ elf@ubuntu:~/psplash_logo/mp4_logo/logo_h/h$ vi make-image-header.sh

腳本內(nèi)容如下:

#!/bin/sh # 指定圖片目錄和名稱前綴 img_dir="$1" name_prefix="$2" # 檢查目錄是否存在 if [ ! -d "$img_dir" ]; then echo "目錄 $img_dir 不存在" exit 1 fi i=0 # 遍歷目錄中的所有 PNG 文件 for img in "$img_dir"/*.png; do # 檢查是否找到了 PNG 文件 if [ ! -e "$img" ]; then echo "沒有找到 PNG 文件" break fi imageh=`basename "$img" .png`-img.h # name="${name_prefix}_${imageh}" name="${name_prefix}_$(printf "%01d" "$i")_IMG" # 生成 C 頭文件 gdk-pixbuf-csource --macros "$img" > "$imageh.tmp" sed -e "s/MY_PIXBUF/${name}/g" -e "s/guint8/uint8/g" "$imageh.tmp" > "$imageh" && rm "$imageh.tmp" i=$(expr $i + 1) echo "生成了 $imageh" done

9、賦予腳本可執(zhí)行權(quán)限

執(zhí)行以下命令賦予腳本可執(zhí)行權(quán)限:

elf@ubuntu:~/psplash_logo/logo_h/h$chmod +x make-image-header.sh

10、執(zhí)行腳本

執(zhí)行腳本將圖片轉(zhuǎn)換為.h文件:

elf@ubuntu:~/psplash_logo/logo_h/h$ ./make-image-header.sh ../logo_1024x600 POKY 生成了 0001-img.h 生成了 0002-img.h 生成了 0003-img.h 生成了 0004-img.h 生成了 0005-img.h 生成了 0006-img.h 生成了 0007-img.h 生成了 0008-img.h 生成了 0009-img.h 生成了 0010-img.h 生成了 0011-img.h 生成了 0012-img.h ... ... ...

三、psplash源碼修改

1、拷貝并解壓psplash源碼

請自行將psplash源碼拷貝到psplash_logo/文件夾中并解壓。

elf@ubuntu:~/psplash_logo$ ls mp4_logo psplash.zip elf@ubuntu:~/psplash_logo$ unzip psplash.zip

2、修改Makefile文件

修改Makefile文件,將CC變量修改為ELF 2開發(fā)板上使用的交叉編譯器。打開 Makefile文件,修改內(nèi)容如下:

AUTOMAKE = ${SHELL} /home/wonhere/zhangqi/OMAP3530/psplash/missing --run automake-1.11 AWK = gawk #CC = arm-none-linux-gnueabi-gcc CC = /home/elf/aarch64-buildroot-linux-gnu_sdk-buildroot/bin/aarch64-linux-gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 CPP = arm-none-linux-gnueabi-gcc -E

3、創(chuàng)建logo文件夾并拷貝.h文件

創(chuàng)建logo文件夾,并將h文件夾中的*-img.h文件都拷貝到logo文件夾中:

elf@ubuntu:~/psplash_logo$ mkdir logo elf@ubuntu:~/psplash_logo$ cp mp4_logo/logo_h/h/* logo/

4、在psplash.c文件中添加引用

在psplash.c文件中添加對.h文件的引用:

#include "logo/0001-img.h" #include "logo/0002-img.h" #include "logo/0003-img.h" 。。。 。。。 。。。 #include "logo/0047-img.h" #include "logo/0048-img.h" #include "logo/0049-img.h" #include "logo/0050-img.h" #include "logo/0051-img.h" #include "logo/0052-img.h" #include "logo/0053-img.h" #include "logo/0054-img.h"

5、添加宏定義

添加宏定義,方便后續(xù)編寫參數(shù):

#define IMG_WIDTH(x) POKY_##x##_IMG_WIDTH #define IMG_HEIGHT(x) POKY_##x##_IMG_HEIGHT #define IMG_BYTES_PER_PIXEL(x) POKY_##x##_IMG_BYTES_PER_PIXEL #define IMG_RLE_PIXEL_DATA(x) POKY_##x##_IMG_RLE_PIXEL_DATA

6、在main函數(shù)中添加代碼

在main函數(shù)中添加如下內(nèi)容,用于繪制圖片:

/* Draw the Myir logo */ /* psplash_fb_draw_image (fb, (fb->width - POKY_IMG_WIDTH)/2, ((fb->height * 5) / 6 - POKY_IMG_HEIGHT)/2, POKY_IMG_WIDTH, POKY_IMG_HEIGHT, POKY_IMG_BYTES_PER_PIXEL, POKY_IMG_RLE_PIXEL_DATA); */ psplash_fb_draw_image (fb, (fb->width - IMG_WIDTH(0))/2, (fb->height - IMG_HEIGHT(0))/2,IMG_WIDTH(0),IMG_HEIGHT(0),IMG_BYTES_PER_PIXEL(0),IMG_RLE_PIXEL_DATA(0)); usleep(50000); 。。。 。。。 。。。 psplash_fb_draw_image (fb, (fb->width - IMG_WIDTH(0))/2, (fb->height - IMG_HEIGHT(0))/2,IMG_WIDTH(0),IMG_HEIGHT(0),IMG_BYTES_PER_PIXEL(0),IMG_RLE_PIXEL_DATA(50)); usleep(50000); psplash_fb_draw_image (fb, (fb->width - IMG_WIDTH(0))/2, (fb->height - IMG_HEIGHT(0))/2,IMG_WIDTH(0),IMG_HEIGHT(0),IMG_BYTES_PER_PIXEL(0),IMG_RLE_PIXEL_DATA(51)); usleep(50000); psplash_fb_draw_image (fb, (fb->width - IMG_WIDTH(0))/2, (fb->height - IMG_HEIGHT(0))/2,IMG_WIDTH(0),IMG_HEIGHT(0),IMG_BYTES_PER_PIXEL(0),IMG_RLE_PIXEL_DATA(52)); usleep(50000); psplash_fb_draw_image (fb, (fb->width - IMG_WIDTH(0))/2, (fb->height - IMG_HEIGHT(0))/2,IMG_WIDTH(0),IMG_HEIGHT(0),IMG_BYTES_PER_PIXEL(0),IMG_RLE_PIXEL_DATA(53)); usleep(50000);

這里的IMG_WIDTH表示寬度,IMG_HEIGHT表示高度,IMG_BYTES_PER_PIXEL表示像素格式,IMG_RLE_PIXEL_DATA表示圖片數(shù)據(jù)。由于寬度、高度和像素格式都相同,因此使用相同的參數(shù),僅修改IMG_RLE_PIXEL_DATA圖片數(shù)據(jù)的參數(shù)。


7、編譯源碼

執(zhí)行以下命令進行編譯:

elf@ubuntu:~/psplash_logo$make

編譯成功后,會在psplash_logo文件夾下生成psplash和psplash-write文件。將這兩個文件通過U盤拷貝到ELF 2 開發(fā)板的/usr/bin/目錄。

四、Linux系統(tǒng)配置

1、創(chuàng)建啟動腳本

在ELF 2 開發(fā)板的/etc/init.d/目錄下新建S50weston_psplash腳本:

root@elf2-buildroot:~# vi/etc/init.d/S50weston_psplash

2、編寫腳本內(nèi)容

腳本內(nèi)容如下:

#!/bin/sh ### BEGIN INIT INFO # Provides: psplash # Required-Start: # Required-Stop: # Default-Start: S # Default-Stop: ### END INIT INFO sleep 1 /etc/init.d/S49weston stop case "$1" in start) echo "Starting psplash..." export TMPDIR=/mnt/.psplash mkdir -p $TMPDIR mount tmpfs -t tmpfs $TMPDIR -o,size=2M rotation=0 if [ -e /etc/rotation ]; then read rotation < /etc/rotation fi /usr/bin/psplash --angle $rotation & ;; stop) echo "Stopping psplash..." killall psplash umount $TMPDIR rmdir $TMPDIR ;; *) echo "Usage: \$0 {start|stop}" exit 1 ;; esac sleep 6 pkill psplash /etc/init.d/S49weston start /etc/init.d/S50matrix-browser start exit 0

3、賦予腳本可執(zhí)行權(quán)限

執(zhí)行以下命令賦予腳本可執(zhí)行權(quán)限:

root@elf2-buildroot:~# chmod+x/etc/init.d/S50weston_psplash

4、注意事項

sleep 6這里要根據(jù)實際的播放時間進行配置。建議在動畫播放到最后放一張黑色背景的圖片,以防關(guān)機時看到最底層的動態(tài)logo圖片。

五、驗證效果

配置完成后,保存并重啟開發(fā)板,即可看到自定義的開機動畫。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    608

    瀏覽量

    29374
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5990

    瀏覽量

    109940
  • 嵌入式開發(fā)板
    +關(guān)注

    關(guān)注

    5

    文章

    99

    瀏覽量

    19514
  • RK3588
    +關(guān)注

    關(guān)注

    8

    文章

    457

    瀏覽量

    6736
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀 瑞芯微旗艦芯RK3588系列
    的頭像 發(fā)表于 09-22 15:54 ?2.1w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解讀

    RZ-G2L 技術(shù)|psplash自定義開機畫面

    psplash自定義開機畫面:以下方法基于瑞薩RZ/G2L系列HD-G2L-IOT開發(fā)板測試.
    的頭像 發(fā)表于 08-28 16:04 ?1103次閱讀
    RZ-G<b class='flag-5'>2</b>L <b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|psplash<b class='flag-5'>自定義</b><b class='flag-5'>開機</b>畫面

    ElfBoard技術(shù)|如何在RK3588ELF 2開發(fā)板上進行根系統(tǒng)的定制

    ELF 2開發(fā)板已經(jīng)適配了Linux 5.10及Elf2 Desktop 22.04操作系統(tǒng),其中Elf2 Desktop 22.04系統(tǒng)是
    的頭像 發(fā)表于 07-02 16:33 ?2601次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>上進行根系統(tǒng)的定制

    技術(shù)|【RK3588ELF 2開發(fā)板如何添加exFAT和NTFS文件系統(tǒng)格式

    基于RK3588設(shè)計的ELF2開發(fā)板在搭載Desktop22.04系統(tǒng)時,對TF卡的文件系統(tǒng)支持存在以下限制:不支持exFAT格式;支持NTFS格式,但需手動掛載;針對上述兼容性問題,本文將介紹
    的頭像 發(fā)表于 08-27 17:21 ?2969次閱讀
    <b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>如何添加exFAT和NTFS文件系統(tǒng)格式

    RK3588 EVB開發(fā)板原理圖講解【七】

    流程? Power Key 開機流程? 關(guān)機方式1. RK3588 實際開機電路描述2. 長按強制關(guān)機和復(fù)位的區(qū)別探討
    發(fā)表于 02-28 08:51

    RK3588 EVB開發(fā)板原理圖講解【八】 RK3588 power Tree

    GPU負載高時自動通知RK860-2調(diào)高CPU電壓 RK3588 Power Tree完整版圖太大,截圖看不完,需要的可以下載附件完成版。 RK3588 EVB開發(fā)板原理圖 往
    發(fā)表于 03-01 11:38

    迅為3399開發(fā)板Android7/Android8修改開機動畫

    配套資料在網(wǎng)盤資料的“iTOP-3399 開發(fā)資料匯總(不含光盤內(nèi)容)\07_iTOP-3399 開發(fā)板修改開機動畫資料”目錄下。android7 和 android8 修改開機動畫
    發(fā)表于 06-01 10:36

    瑞芯微旗艦芯RK3588開發(fā)板開售 比亞迪為應(yīng)達利頒獎

    瑞芯微旗艦芯RK3588開發(fā)板發(fā)售 比亞迪為應(yīng)達利頒獎 瑞芯微旗艦芯RK3588開發(fā)板發(fā)售 近日,瑞芯微旗艦芯RK3588系列
    的頭像 發(fā)表于 03-25 19:23 ?5292次閱讀

    迅為RK3588開發(fā)板-基于瑞芯微RK3588攝像頭方案

    RK3588開發(fā)板
    的頭像 發(fā)表于 06-09 11:09 ?6567次閱讀
    迅為<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>-基于瑞芯微<b class='flag-5'>RK3588</b>攝像頭方案

    rk3588有哪些開發(fā)板

    rk3588有哪些開發(fā)板 當前,rk3588開發(fā)板有RockPro64、Rock960 Plus、Rockchip Sapphire、Khadas VIM3 Pro和Firefly
    的頭像 發(fā)表于 08-15 17:04 ?3363次閱讀

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)板

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)板
    的頭像 發(fā)表于 08-30 14:13 ?1723次閱讀
    <b class='flag-5'>RK3588</b>!黑神話悟空,啟動?-迅為電子<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>

    迅為RK3588開發(fā)板Android12動態(tài)替換開機logo

    迅為RK3588開發(fā)板Android12動態(tài)替換開機logo
    的頭像 發(fā)表于 11-15 15:04 ?1350次閱讀
    迅為<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>Android12動態(tài)替換<b class='flag-5'>開機</b>logo

    玩轉(zhuǎn)RK3588開發(fā)板基于connector-split 功能實現(xiàn)多屏聯(lián)動

    玩轉(zhuǎn)RK3588開發(fā)板基于connector-split 功能實現(xiàn)多屏聯(lián)動
    的頭像 發(fā)表于 12-02 16:05 ?1211次閱讀
    玩轉(zhuǎn)<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>基于connector-split 功能<b class='flag-5'>實現(xiàn)</b>多屏聯(lián)動

    技術(shù)分享|iTOP-RK3588開發(fā)板Ubuntu20系統(tǒng)旋轉(zhuǎn)屏幕方案

    技術(shù)分享|iTOP-RK3588開發(fā)板Ubuntu20系統(tǒng)旋轉(zhuǎn)屏幕方案
    的頭像 發(fā)表于 04-18 15:19 ?853次閱讀
    <b class='flag-5'>技術(shù)</b>分享|iTOP-<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>Ubuntu20系統(tǒng)旋轉(zhuǎn)屏幕方案

    ElfBoard技術(shù)|【RK3588ELF 2開發(fā)板開機自啟動詳解

    在嵌入式系統(tǒng)開發(fā),合理管理開機自啟動項目能夠優(yōu)化系統(tǒng)啟動流程,確保關(guān)鍵服務(wù)和應(yīng)用按時加載運行。本文將詳細介紹在ELF2開發(fā)板Linux5.
    的頭像 發(fā)表于 06-27 16:20 ?1585次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>貼</b>|【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>開機</b>自啟動詳解