RK3562 開發(fā)板開機 LOGO 一鍵更換,獨立分區(qū) + 雙模式更新全教程

原創(chuàng) 作者 Forlinx 2026-02-05 13:53:00 RK3562開發(fā)板 RK3562開機LOGO

一、方案介紹

本方案通過為OK3562-C開發(fā)板(基于瑞芯微RK3562處理器設計)新增獨立的LOGO分區(qū),實現(xiàn)開機LOGO圖片的便捷更換,無需修改源碼并重新編譯燒寫系統(tǒng),大幅提升開發(fā)與調(diào)試效率,適用于Linux5.10.198+QT5.15.10版本環(huán)境。

本方案的核心設計思想是將開機LOGO資源獨立存儲于專用分區(qū),與系統(tǒng)根文件系統(tǒng)分離。這種架構(gòu)設計帶來了以下顯著優(yōu)勢:

  • 隔離性:LOGO更新操作不會影響系統(tǒng)核心文件,降低更新風險
  • 便捷性:無需重新編譯整個系統(tǒng),縮短產(chǎn)品迭代周期
  • 靈活性:支持生產(chǎn)環(huán)境動態(tài)更換品牌標識,滿足OEM需求
  • 兼容性:適配Linux 5.10.198內(nèi)核與QT5.15.10圖形框架


二、修改步驟

(一)添加LOGO分區(qū)

在Ubuntu開發(fā)環(huán)境中,執(zhí)行命令編輯分區(qū)配置文件,定義存儲分區(qū)布局:

forlinx@ubuntu:~/work/3562/OK3562-linux-source$ vi device/forlinx/.chips/ok3562/parameter-buildroot-fit.txt

在配置文件中添加LOGO分區(qū)并調(diào)整userdata分區(qū),完整配置內(nèi)容如下:

// 添加logo分區(qū):0x00100000@0x00cba000(logo)
// 修改userdata分區(qū):-@0x00dba000(userdata:grow)
CMDLINE: mtdparts=:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00020000@0x00008000(boot),0x00040000@0x00028000(recovery),0x00010000@0x00068000(backup),0x00c00000@0x00078000(rootfs),0x00040000@0x00c78000(oem),0x00002000@0x00cb8000(amp),0x00100000@0x00cba000(logo),-@0x00dba000(userdata:grow)
配置說明:LOGO分區(qū)大小配置為0x00100000(對應512M),可根據(jù)實際LOGO圖片大小調(diào)整;修改userdata分區(qū)起始地址,避免與LOGO分區(qū)空間重疊,保證存儲分區(qū)正常使用。

(二)修改U-Boot并驗證分區(qū)

由于RK3562的U-Boot源碼未開源,直接使用適配本方案的修改版uboot.img(基于Linux5.10.198+QT5.15.10_用戶資料_R1制作,新版本需重新驗證兼容性)。

  1. 將uboot.img文件放入OK3562-linux-source/u-boot目錄,替換原有文件
  2. 執(zhí)行全編譯操作,將編譯后的鏡像燒寫至開發(fā)板
  3. 開發(fā)板啟動后,執(zhí)行驗證命令查看分區(qū)信息

分區(qū)驗證:

開發(fā)板啟動后,執(zhí)行fdisk -l命令查看分區(qū)信息,完整輸出如下:

root@ok3562:/# fdisk -l
Found valid GPT with protective MBR; using GPT
Disk /dev/mmcb1k0: 30576640 sectors, 2642M
Logical sector size: 512
Disk identifier(GUID): 27330000-0000-4656-8000-71000000163b
Number  Start(sector)  End (sector)  Size   Name
   1      16384         24575       4096K  uboot
   2      24576         32767       4096K  misc
   3      32768        163839       64.0M  boot
   4     163840        425983       128M   recovery
   5     425984        491519       32.0M  backup
   6     491520       13074431      6144M  rootfs
   8    13336576      13344767      4096K  amp
   9    13344768      14393343      512M   logo
  10    14393344      30576606      7901M  userdata
驗證標準:若輸出中顯示logo分區(qū)大小為512M,說明分區(qū)配置已成功生效。

三、LOGO更新方法

方法一:U盤自動更新

適用于批量部署場景,插入U盤自動檢測并完成更新,無需人工干預命令行。

方法二:手動更新

適用于開發(fā)調(diào)試階段,通過命令行手動執(zhí)行寫入操作,精確控制更新流程。

(一)U盤自動更新

準備工作:

在U盤根目錄創(chuàng)建Forlinx_logo文件夾,將logo.bmp和logo_kernel.bmp兩張LOGO圖片放入該文件夾。

自動更新腳本:

編寫LOGO自動更新腳本logo.sh,腳本按功能分段實現(xiàn)檢測、打包、寫入邏輯,完整代碼如下:

#!/bin/bash
# 功能1:定義U盤檢測與LOGO更新核心函數(shù)
check_sdcard(){
    # 循環(huán)檢測U盤掛載狀態(tài)
    while true; do
        # 檢測U盤根目錄是否存在Forlinx_logo文件夾
        if [[ -d "/run/media/sda1/Forlinx_logo" ]]; then
            cd "/run/media/sda1/Forlinx_logo"
            # 檢測是否存在更新標志文件,避免重復更新
            if [[ -f "Forlinx_logo_flag" ]]; then
                echo "Forlinx_logo_flag file. Exiting."
                break
            else
                # 功能2:校驗LOGO圖片是否齊全,齊全則執(zhí)行打包與寫入操作
                if [[ -f "/run/media/sda1/Forlinx_logo/logo.bmp" && -f "/run/media/sda1/Forlinx_logo/logo_kernel.bmp" ]]; then
                    # 合并LOGO圖片為鏡像文件
                    cat "logo.bmp" > "logo.img"
                    # 按512字節(jié)對齊鏡像文件,適配分區(qū)寫入要求
                    truncate -s %512 "logo.img"
                    # 追加內(nèi)核LOGO圖片至鏡像文件
                    cat "logo_kernel.bmp" >> "logo.img"
                    # 將鏡像文件寫入LOGO分區(qū)
                    dd if="logo.img" of="/dev/block/by-name/logo"
                    # 功能3:更新完成后輸出提示,并創(chuàng)建標志文件
                    echo "Logo files copied and written to /dev/block/by-name/logo."
                    touch "Forlinx_logo_flag"
                    break;
                else
                    echo "Missing logo.bmp or logo_kernel.bmp files."
                fi
            fi
        fi
        # 每5秒檢測一次,避免占用過多系統(tǒng)資源
        sleep 5
    done
}
# 功能4:后臺啟動檢測函數(shù),不阻塞系統(tǒng)其他進程
check_sdcard &

配置腳本開機自啟:

臨時生效:編輯開發(fā)板/etc/autorun.sh文件,原文件內(nèi)容如下:

root@ok3562:/# cat /etc/autorun.sh
#!/bin/sh
#env
#user command
exit 0

添加腳本執(zhí)行命令,修改后完整內(nèi)容:

#!/bin/sh
# env
# 啟動LOGO自動更新腳本
./logo.sh
sync
exit 0

保存后重啟開發(fā)板,腳本即可臨時生效。

永久生效:編輯buildroot/board/forlinx/ok3562/fs-overlay/etc/autorun.sh文件,添加上述腳本執(zhí)行命令,重新編譯燒寫鏡像后,腳本永久生效。

注意事項:LOGO更新成功后,U盤會自動生成Forlinx_logo_flag標志文件,防止重復更新;若需再次更新LOGO,刪除該標志文件后重啟開發(fā)板即可。

(二)手動更新

將logo.bmp和logo_kernel.bmp兩張LOGO圖片傳入開發(fā)板。

執(zhí)行以下命令,完成LOGO鏡像打包與分區(qū)寫入:

root@ok3562:/# cat logo.bmp > logo.img && truncate -s %512 logo.img && cat logo_kernel.bmp >> logo.img
root@ok3562:/# dd if=logo.img of=/dev/block/by-name/logo
7201+1 records in
7201+1 records out
3686966 bytes (3.7 MB, 3.5 MiB) copied, 0.234017 s, 15.8 MB/s
root@ok3562:/# sync

重啟開發(fā)板,開機LOGO即可完成更換。


四、關鍵說明

本方案中分區(qū)參數(shù)以 512字節(jié)標準存儲塊為計數(shù)單位,配置參數(shù)0x00100000對應1048576個存儲塊,總?cè)萘繛?12M,與fdisk -l命令的驗證結(jié)果完全一致,無需額外進行單位換算。

參數(shù)項 十六進制值 十進制值 計算結(jié)果
LOGO分區(qū)大小 0x00100000 1,048,576 1,048,576 × 512B = 512MB
LOGO分區(qū)起始 0x00cba000 13,344,768 對應扇區(qū)號 13,344,768
Userdata起始 0x00dba000 14,393,344 緊接LOGO分區(qū)之后

咨詢立即獲得專屬報價

華北區(qū)負責人

華東區(qū)負責人

華南區(qū)負責人

中西區(qū)負責人

相關產(chǎn)品 >

  • OK3562J-C開發(fā)板

    RK3562開發(fā)板,采用核心板+底板分體式設計,CPU采用瑞芯微工業(yè)級芯片RK3562J設計,RK3562J是瑞芯微專為工業(yè)自動化及消費類電子設備打造的一款高性能、低功耗國產(chǎn)化應用處理器,集成了4個ARM Cortex-A53高性能核,主頻高達1.8GHz。RK3562核心板采用3組80Pin板對板連接器,可插拔式設計便于產(chǎn)品的安裝與維護。 了解詳情
    OK3562J-C開發(fā)板
  • FET3562J-C核心板

    RK3562核心板,采用高性能低功耗工業(yè)級芯片RK3562J設計,RK3562J是瑞芯微專為工業(yè)自動化及消費類電子設備打造的一款高性能、低功耗國產(chǎn)化應用處理器,集成了4個ARM Cortex-A53高性能核,主頻高達1.8GHz。RK3562核心板采用3組80Pin板對板連接器,可插拔式設計便于產(chǎn)品的安裝與維護。 了解詳情
    FET3562J-C核心板

推薦閱讀 換一批 換一批