一、plymouthd基礎介紹
1、Plymouth是什麼?
Plymouth是一個啟動程序的框架,由Freedesktop.org(一個Linux上應用程序開發和免費軟體促進的組織)創建和維護。
2、Plymouth是為了解決什麼問題而被創建的?
Plymouth是為了解決Linux系統啟動過程中出現的閃屏問題而被創建的。在傳統的Linux啟動過程中,會出現很多閃屏,這對用戶的體驗十分不友好。使用Plymouth,可以在啟動時顯示更好的啟動畫面,在同步必要的硬體初始化和啟動系統服務的同時,也可以讓用戶有一個更美好的啟動體驗。
3、Plymouth提供了哪些功能?
① 可以在啟動時創建更好的啟動畫面,提升用戶的體驗;
② 可以在啟動過程中提供過渡時間和平滑動畫,使得轉換過程更加自然;
③ 可以通過用戶調用來管理程序中的動畫、主題、字體等資源;
③ 可以在啟動過程中顯示消息、圖形等,方便調試;
④ 可以動態地改變主題、字體等資源,滿足用戶和開發者的需求。
二、Plymouthd的運行和配置
1、plymouthd的運行
sudo plymouthd --debug --no-daemon
運行這個命令後,plymouthd就被啟動了,可以在該命令的輸出中看到plymouthd的一些初始配置和載入的主題、插件等信息。
2、plymouthd的配置文件
plymouthd的配置文件位於/etc/plymouth/plymouthd.conf,在這個文件中可以設置一些與plymouthd核心相關的配置,例如啟用debug等級、指定log文件位置等。此外,該配置文件也定義了默認主題、默認的延遲時間和啟動動畫的默認狀態等。
3、plymouthd的主題
plymouthd的主題用於控制啟動過程中的畫面風格和過渡效果。Plymouthd使用.plymouth和.plymouth-theme兩個文件來描述主題,.plymouth文件是主題的XML描述文件,包括:主題名稱、動畫對象和其他組件,.plymouth-theme文件包含了關於主題及其各種顏色等的設計信息。主題文件存儲在/usr/share/plymouth/themes目錄下。
4、plymouthd的插件
插件是plymouthd中一個相對獨立的功能單元,與主題息息相關。例如,Plymouthd框架提供一些默認的插件:文字、旋轉的進度條、淡入淡出等。
/usr/lib/plymouth/text.so /usr/lib/plymouth/themes/default.plymouth
三、plymouthd主題開發指南
1、plymouth主題的目錄結構
splash-theme/ ├ fonts/ │ ├── font1.ttf │ ├── font2.ttf │ └── ... ├── images/ │ ├── image1.png │ ├── image2.png │ └── ... ├── scripts/ │ ├── script1.sh │ ├── script2.sh │ └── ... ├── sounds/ │ ├── sound1.ogg │ ├── sound2.ogg │ └── ... ├── splash.plymouth └── splash.script
其中,fonts、images、scripts、sounds目錄是用來放置不同資源的目錄,用戶可以在plymouth主題中調用它們。splash.plymouth和splash.script分別是主題的概覽和控制文件。
2、plymouth主題製作流程
①創建目錄結構
新建一個名為splash-theme的目錄,並在其中創建fonts、images、scripts、sounds等子目錄。接下來,需要在splash-theme目錄中創建splash.plymouth和splash.script文件。
②編輯splash.plymouth文件
splash.plymouth文件是主題的描述文件,通過XML格式描繪了plymouth主題的豐富信息,包括圖像、動畫、進度條等控制指令。
[Plymouth Theme] Name=Splash Theme Description=A custom Plymouth theme ModuleName=script [script] ImageDir=/usr/share/plymouth/themes/splash-theme/images ScriptFile=/usr/share/plymouth/themes/splash-theme/scripts/splash.script
以上,是一個splash.plymouth文件的示例,值得注意的是,ModuleName的值必須為script。
③編輯splash.script文件
splash.script文件是plymouth主題的核心腳本文件,控制著整個啟動過程的細節。
#!/bin/sh . /usr/share/plymouth/themes/default.script fun() { plymouth display-message --text="$1" >/dev/null } case "$1" in # 設置啟動畫面 "setup") plymouth display-stop --mode=quit --text="Preparing startup" --progress=top >/dev/null ;; # 具體進度顯示 "progress") if [ "${SPINNER}" = "1" ]; then fun "Working on it..." plymouth display-spinner --message="Working on it..." >/dev/null else func "Please Wait..." plymouth display-progress --message="Please Wait..." --progress=top >/dev/null fi ;; # 啟動結果顯示 "showsuccess") plymouth display-message --text="Done" >/dev/null ;; "showfailure") plymouth display-message --text="Fail" >/dev/null ;; esac
四、plymouth的實際應用
1、Ubuntu的啟動界面
Plymouthd有一些很成熟、漂亮的主題,最常見和最著名的就是Ubuntu的啟動界面。Ubuntu的默認啟動界面是深紫色的背景和一個白色的Ubuntu Logo。Ubuntu的啟動畫面可以通過修改plymouth主題來進行自定義。
2、Arch Linux的實現
Plymouth也是Archlinux一個經典的引導器。在archlinux中,plymouth是被視為引導的元素,因為它主要是顯示在內核已裝入內存並在引導塊設備上掛載根文件系統之後。
3、CentOS和Fedora
Plymouth作為Red Hat家族的啟動管理器,也出現在西部的Fedora和CentOS等眾多Linux發行版中;Plymouth的主題和插件也是開源的,可以被其他Linux發行版使用和定製。
五、總結
在本文中,我們對Plymouth作為一種啟動程序管理器的核心控制器plymouthd的基礎介紹、運行和配置方法、主題開發指南以及實際應用做了詳細的分析和闡述。Plymouthd的出現,使得用戶體驗和Linux啟動過程更加一致。隨著Plymouthd在Linux系統中的廣泛應用,Plymouthd也在不斷被完善,為用戶提供更多的個性化選擇。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/275594.html