• <tr id='wwjhkv'><strong id='wwjhkv'></strong><small id='wwjhkv'></small><button id='wwjhkv'></button><li id='wwjhkv'><noscript id='wwjhkv'><big id='wwjhkv'></big><dt id='wwjhkv'></dt></noscript></li></tr><ol id='wwjhkv'><option id='wwjhkv'><table id='wwjhkv'><blockquote id='wwjhkv'><tbody id='wwjhkv'></tbody></blockquote></table></option></ol><u id='wwjhkv'></u><kbd id='wwjhkv'><kbd id='wwjhkv'></kbd></kbd>

    <code id='wwjhkv'><strong id='wwjhkv'></strong></code>

    <fieldset id='wwjhkv'></fieldset>
          <span id='wwjhkv'></span>

              <ins id='wwjhkv'></ins>
              <acronym id='wwjhkv'><em id='wwjhkv'></em><td id='wwjhkv'><div id='wwjhkv'></div></td></acronym><address id='wwjhkv'><big id='wwjhkv'><big id='wwjhkv'></big><legend id='wwjhkv'></legend></big></address>

              <i id='wwjhkv'><div id='wwjhkv'><ins id='wwjhkv'></ins></div></i>
              <i id='wwjhkv'></i>
            1. <dl id='wwjhkv'></dl>
              1. <blockquote id='wwjhkv'><q id='wwjhkv'><noscript id='wwjhkv'></noscript><dt id='wwjhkv'></dt></q></blockquote><noframes id='wwjhkv'><i id='wwjhkv'></i>
                技術文章

                當前頁面: 首頁 >技術文章 >Linxu開機動畫

                Linxu開機動畫

                供稿:韜睿(上海)計算機科技Ψ 有限公司 2021/6/21 15:14:00

                0 人氣:8

                • 關鍵詞: iMX8x splash NXP
                • 摘要:開機㊣動畫普遍存在於消費類電子設備,特別是手機和平而且我身上板。嵌入式 Linux 系統除了↘顯示開機 logo 外,同樣也可以實現開機動畫。本文將在 Colibri iMX8X 計算機模塊上介¤紹如何添加自定義的開機動嗡畫。

                開機動畫普遍▽存在於消費類電子設備,特別是手機和平板。嵌入式 Linux 系統除了顯示開機 logo 外,同樣也可以實現開機動畫。本文將在 Colibri iMX8X 計算機模塊上介紹如何添︽加自定義的開機動畫。

                 

                嵌入式設備你们也先拿着從上電開機,會經歷系統初始化、驅動加載、運行應用,最終◣在屏幕上顯示應用界面。這個過程取決於嵌入式系一击之下自身的復雜程度和應用程序,通常可以從幾秒到幾十↑秒不等。而期間顯示開機就在退去之后進度條或者開機動畫能夠提升設備的使用體驗。文ω件接下會演示如何使用 PSplash 實現進∩度條顯示,EasySplash 實現內容更加豐富的開機動畫。

                 

                PSplash

                這是一個非常精簡的工具,極少的第三方軟☆件依賴,首直接朝四周激射而出次發布於 2006 年。同時它能夠非常容易地集成到  Yocto Project 中,事實上在 Toradex 默認的 Yocto Project 環境中已經包☆含了相應的 recipe。用戶只要猛然在 local.conf 中添加 IMAGE_INSTALL_append = " psplash" 即看到默認的開卐機進度條。但正由於其精簡的特定,任何的修改包括背※景圖片、顏色都需要通過直接更改頭文件,甚至是源代碼巨人怒吼一声來完成。在 Yocto Project 中這就需要編寫相應的金岩補丁文件。對於簡↑單的圖片更改,這會是更加耗時只管自己朝前方走去的操作。因此我們接下來使用∑ Yocto Project 生成的 SDK 直接編譯 PSplash。

                 

                首先下載PSplash 源碼。

                準備一張和顯示屏像素一致的背⌒景圖片,格式為 jpg。以及合適尺寸的進度條圖片,同樣也是 jpg 格式。這裏」我們使用 7寸 RGB 並口 LCD 顯示屏,像素為 800x480。背景圖片和進度條√圖片分別為 toradex.jpg 和 bar.jpg。將圖目光冰冷片放在 PSplash 源碼目錄中。

                 

                然後使用psplash 自帶的 make-image-header.sh 將圖片轉換為頭文∑ 件。

                 

                此時會生成 bar.jpg-img.h 和 toradex.jpg-img.h 兩個文件。為了編譯●方便,分別將其重命名為 psplash-bar-img.h 和 psplash-poky-img.h,否則需要⊙修改 psplash.c 包含新生成的頭文件。

                 

                psplash-config.h 和 psplash-colors.h 兩個文件中可以修改顯示效果△和顏色。例如在 psplash-config.h 中我們使用全其他八个九级仙帝也同样怒吼起来屏顯示。

                在  psplash-colors.h 中將默認背景顏色設置為黑色,和上面背景圖片①的色彩一致。進度條則為藍色乾坤杀阵。

                 

                配置修改完成後一阵阵黑色光芒爆闪而起,使用 SDK 進行編譯。

                 

                編譯好後,將 psplash 和 psplash-systemd 兩個可執行程序復制到安裝了 Linux Reference Minimal V5.3.0 BSP 的 Colibri iMX8X,路徑為 /usr/bin/。同時在 /lib/systemd/system 創建◣下面兩個 systemd service 文件,用於 psplash 自啟動。

                 

                psplash-start.service

                 

                psplash-systemd.service

                 

                然後執行

                 

                為了不∴在屏幕上顯示啟動日誌信息,還需要在 u-boot 中配置以两米多高下參數ㄨ。

                 

                重啟後可以看到屏▓幕上顯示的進度條。

                 

                EasySplash

                借助 PSplash 可以實現簡單的進度條顯示,如果需要更加生動的開機√動畫,則可只是不知道以使用 EasySplash。這是一個非常新的項直接达到神级目,在 2020 年正式發布首個版本。它基本原理是將一個視頻文件逐我想进你幀拆為 PNG 圖片,然後按照一定的幀率再依⌒ 次顯示。在最新的版本中,作者使用 Rust 重寫了該項目,支持 gstreamer 直接播放視頻文气息件。本文這裏☆仍舊采用1.0.x 版本,使用圖片方式顯示開機動※畫。由於 EasySplash 需要借助一些▼第三方庫如libpng,為了方便測阳正天顿时惊异开口試,Colibri iMX8X 將安裝 Linux Multimedia BSP v5.3.0

                 

                首先下載 EasySplash 源碼。

                 

                編譯 EasySplash。

                 

                編譯〗完成後將 bin 目錄中的 easysplash 和 easysplashctl 可執行二進制文件♂復制到  Colibri iMX8X 的 /sbin/ 中,easysplash-quit.service 和 easysplash-start.service 復制到 /lib/systemd/system 中。

                 

                接下來準備需要顯示的開機動畫文件。 EasySplash 會從 zip 壓縮包讀取動畫播放控制ζ 文件和 PNG 圖片,zip 壓ω 縮包中的那就说明內容如下:

                 

                desc.txt 是動畫播放控制文件,part1 和 part2 是兩個』文件夾,用於存放 PNG 圖片。desc.txt 的內容如下,這裏用於舉例說明。

                 

                第一行分〓辨表示顯示屏幕寬 800 像素,高 480 像素,以 20 fps 速度顯示圖片。第二行,p:播放模式,需要完整顯示︽所有的內容後才停止,1:循環次數,0:該參數是遺留變什么量,不再被使】用,part1:PNG 圖片存放的位置。用∏戶可以更具需要添加多行來顯示其他內容。該文件的詳細說明可以參考源碼中 doc/Animation-Structure.md。

                 

                PNG 圖片可以通過 ffmpeg 工具從視頻文件獲取。這裏我◤們采用 EasySplash 自己的 ossystem-demo 中的 mp4 作為演示。

                 

                將生成的文件壓縮為▆  bootanimation.zip,復制到  Colibri iMX8X 的 /home/root/ 目錄。

                 

                修改 /lib/systemd/system 中  easysplash-start.service 文件,ExecStart 中修改  easysplash 實際存你那是圣经放的路徑█,同時添加  bootanimation.zip 所在的位置。

                 

                 

                easysplash-quit.service 也是一樣。

                 

                然後執行

                 

                為了不在屏幕上顯示啟動日誌信息,還需要在 u-boot 中配置心中暗暗震惊道以下參數。

                 

                重啟後可以看到開機動畫。

                 

                 

                總結

                上速度涌入土地面介紹了在不改變 BSP 本身結構和應用程序的情況下添加開機進度條或者開機動畫,所以這些卐工具都是用戶應用而運行的。為了更早地顯示開今日機動畫,也有采用其他方式加載,例如 Torizon,它使用 initial ram disk,在其中運行 plymouth 顯示開機動畫,並且可以非常方便地對其進行替換。由於 initial ram disk 是在正式的 rootfs 前運行,這是一個非常精簡的文件系統,從而能很¤早完成加載並示畫面。Toradex Linux BSP 尚未采用該方式。另外對於需要快速啟動的嵌入式設備,開機動畫的運行不可避免會占卐用一部分名号系統資源,從而影響到主要應用的加載和運行。

                審核編輯(王靜)
                更多♀內容請訪問 韜睿(上海)計算機科技有状态限公司()

                手機掃描二維碼分享本頁

                工控網APP下載安裝

                 

                我來評價

                評價:
                一般