91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

踩坑實(shí)錄:RK3588單獨(dú)編譯boot.img無(wú)法啟動(dòng)?這個(gè)GPU配置才是關(guān)鍵!

jf_44130326 ? 來(lái)源:Linux1024 ? 2026-02-10 16:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RK3588嵌入式開(kāi)發(fā)的同學(xué),大概率都遇到過(guò)編譯成功卻啟動(dòng)失敗的糟心場(chǎng)景——明明按官方流程單獨(dú)編譯了boot.img,燒錄后設(shè)備卻卡在開(kāi)機(jī)logo,或者直接進(jìn)入不了系統(tǒng),查日志、換編譯器、核對(duì)指令都沒(méi)用,最后發(fā)現(xiàn)竟是一個(gè)容易被忽略的GPU配置在搞鬼

今天就把這個(gè)踩坑經(jīng)歷完整分享出來(lái),幫大家少走彎路~

一、問(wèn)題復(fù)現(xiàn):看似無(wú)懈可擊的編譯流程,卻栽了跟頭

我的開(kāi)發(fā)環(huán)境是RK3588 EVB7開(kāi)發(fā)板,SDK內(nèi)核版本為Linux 5.10,按照常規(guī)單獨(dú)編譯boot.img的步驟操作:

$cd$sdk/kernel/$exportCROSS_COMPILE=../prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-$make ARCH=arm64 rockchip_linux_defconfig rockchip_rt.config$make ARCH=arm64 rk3588-evb7-v11-linux.img -j8

編譯過(guò)程一路綠燈,沒(méi)有任何報(bào)錯(cuò),生成的rk3588-evb7-v11-linux.img(包含boot.img)也正常。用RKDevTool燒錄后,設(shè)備上電:屏幕亮了logo,隨后就一直卡住,串口日志停留在“GPU initialization failed,系統(tǒng)無(wú)法進(jìn)入用戶空間。

一開(kāi)始懷疑是編譯器版本不匹配、defconfig配置錯(cuò)誤,或者內(nèi)核與開(kāi)發(fā)板型號(hào)不兼容,反復(fù)核對(duì)了交叉編譯器路徑、開(kāi)發(fā)板型號(hào)參數(shù),甚至重新同步了SDK,問(wèn)題依然存在。

二、排查關(guān)鍵:從“GPU初始化失敗鎖定核心原因

既然日志明確指向“GPU初始化,就順著這個(gè)方向深挖。RK3588集成的是Mali-G610 GPU,而Mali GPU的驅(qū)動(dòng)初始化依賴內(nèi)核配置中的關(guān)鍵選項(xiàng)。

通過(guò)make ARCH=arm64 menuconfig打開(kāi)內(nèi)核配置界面,在Device Drivers → Graphics support → MaliBifrost seriessupport路徑下發(fā)現(xiàn):Enable Mali CSF based GPU suppor選項(xiàng)默認(rèn)是關(guān)閉的(設(shè)為n

這就是問(wèn)題的根源!之前我們分析過(guò),CONFIG_MALI_CSF_SUPPORT是啟用Mali CSF(圖形計(jì)算子系統(tǒng))架構(gòu)的核心配置,而RK3588Mali-G610 GPU原生適配CSF架構(gòu)——如果關(guān)閉這個(gè)配置,Mali驅(qū)動(dòng)無(wú)法識(shí)別GPU硬件,會(huì)導(dǎo)致GPU初始化失敗。

更關(guān)鍵的是,RK3588的系統(tǒng)啟動(dòng)流程中,GPU是核心依賴模塊:無(wú)論是AndroidGUI顯示,還是Linux的桌面環(huán)境,甚至是部分底層服務(wù),都需要GPU完成圖形渲染或資源調(diào)度。GPU初始化失敗會(huì)直接阻斷啟動(dòng)流程,導(dǎo)致系統(tǒng)卡在開(kāi)機(jī)階段。

三、解決方法:只需一步,啟用CONFIG_MALI_CSF_SUPPORT

找到問(wèn)題后,解決起來(lái)就很簡(jiǎn)單了,核心就是開(kāi)啟CONFIG_MALI_CSF_SUPPORT配置:

1.進(jìn)入內(nèi)核配置界面:

wKgZO2kah3-AH13lAAAfwdxuyV8986.png
$cd$sdk/kernel/$make ARCH=arm64 menuconfig

1.導(dǎo)航到GPU配置路徑:

Device Drivers → Graphics support → MaliBifrost seriessupport→Enable Mali CSF based GPU support

2.找到Enable Mali CSF based GPU support,按Y鍵啟用(選項(xiàng)前會(huì)出現(xiàn)“*”),確保配置為CONFIG_MALI_CSF_SUPPORT=y。

3.保存配置并退出(按ESC鍵,選擇Save,確認(rèn)保存路徑)。

4.另一個(gè)方法就是直接在配置文件里面添加wKgZO2kah3-APxWXAACV_ovWV5E007.png

5.重新編譯boot.img

$make ARCH=arm64 rk3588-evb7-v11-linux.img -j8

1.重新燒錄生成的鏡像文件,設(shè)備上電后順利進(jìn)入系統(tǒng),串口日志顯示“Mali CSF initialized successfully”GPU功能正常啟用。

四、原理補(bǔ)充:為什么這個(gè)配置不能少?

可能有同學(xué)會(huì)問(wèn):我只是單獨(dú)編譯boot.img,又不做圖形開(kāi)發(fā),為什么必須啟用GPU配置?

這里再劃重點(diǎn):

1.硬件兼容性強(qiáng)制要求RK3588Mali-G610 GPU的硬件設(shè)計(jì)、寄存器邏輯都基于CSF架構(gòu),關(guān)閉CONFIG_MALI_CSF_SUPPORT后,驅(qū)動(dòng)無(wú)法識(shí)別GPU,會(huì)觸發(fā)初始化失敗。

2.系統(tǒng)啟動(dòng)的核心依賴RK3588的啟動(dòng)流程中,GPU不僅負(fù)責(zé)圖形渲染,還會(huì)參與部分系統(tǒng)資源調(diào)度(如內(nèi)存訪問(wèn)、模塊協(xié)同),GPU初始化失敗會(huì)直接阻斷啟動(dòng)鏈路。

3.驅(qū)動(dòng)生態(tài)的必然要求RK3588 SDK配套的Mali驅(qū)動(dòng)(無(wú)論是ARM閉源驅(qū)動(dòng)還是社區(qū)開(kāi)源驅(qū)動(dòng))都默認(rèn)依賴CSF架構(gòu),關(guān)閉該配置會(huì)導(dǎo)致驅(qū)動(dòng)加載失敗。

簡(jiǎn)單說(shuō):對(duì)RK3588而言,CONFIG_MALI_CSF_SUPPORT不是可選配置,而是系統(tǒng)正常啟動(dòng)的必要配置,哪怕你用不到GPU的圖形功能,也必須啟用。

五、避坑總結(jié):?jiǎn)为?dú)編譯boot.img3個(gè)關(guān)鍵注意點(diǎn)

1.單獨(dú)編譯boot.img時(shí),不要只核對(duì)交叉編譯器和defconfig,一定要檢查GPU相關(guān)配置,尤其是CONFIG_MALI_CSF_SUPPORT必須設(shè)為y。

2.若遇到啟動(dòng)卡logo”“初始化失敗類問(wèn)題,優(yōu)先查看串口日志,重點(diǎn)關(guān)注GPUDDR、CPU等核心模塊的初始化狀態(tài)。

3.編譯前建議通過(guò)make ARCH=arm64 savedefconfig備份當(dāng)前配置,避免后續(xù)修改配置后無(wú)法回滾。

嵌入式開(kāi)發(fā)就是這樣,很多看似無(wú)關(guān)緊要的配置,實(shí)則是系統(tǒng)正常運(yùn)行的關(guān)鍵。希望這篇踩坑實(shí)錄能幫大家避開(kāi)這個(gè)坑,讓RK3588的編譯啟動(dòng)一路順暢~

如果還有其他編譯啟動(dòng)相關(guān)的問(wèn)題,歡迎在評(píng)論區(qū)交流!

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

    關(guān)注

    5198

    文章

    20449

    瀏覽量

    334079
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    5194

    瀏覽量

    135461
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    694

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

    進(jìn)行電源完整性分析 下面實(shí)際分析RK3588電源分布電源架構(gòu)設(shè)計(jì)方案說(shuō)明? 系統(tǒng)采用雙電源輸入架構(gòu),支持以下兩種標(biāo)準(zhǔn)供電接口: ?主電源接口:配置標(biāo)準(zhǔn)D型電源插座(DC JACK)及AXT系列工業(yè)
    發(fā)表于 03-01 11:38

    基于 RK3588 debian 搭建 RK3588 Kernel 編譯環(huán)境

    ARCH=arm64 rk3588-xxx.img -j16二、分布式編譯環(huán)境1、安裝 C/C++ 分布式編譯工具apt install distcc distccmon-gnome2、修改服務(wù)器端
    發(fā)表于 03-22 16:28

    介紹一種RK3588 Android SDK編譯方法的使用

    rk3588-evb1-lp4-v10編譯后會(huì)在rockdev/Image-rk3588_s/下生成boot.img,燒寫(xiě)這個(gè)
    發(fā)表于 05-23 14:27

    RK3588 SDK編譯與固件燒寫(xiě)步驟

    ; make ARCH=arm64 rk3588sevb1-lp4x-v10.img -j24  單獨(dú)編譯uboot  $ 。/make.sh rk3588  2、固件燒寫(xiě) 
    發(fā)表于 08-31 17:45

    RK3588 Android無(wú)法編譯Package模塊是怎么回事

      我編譯的時(shí)候在firefly/device/rockchip/rk3588/rk3588_firefly_itx_3588j/rk3588_firefly_itx_3588j.mk
    發(fā)表于 09-05 17:33

    RK3588單獨(dú)編譯kernel的方式

    中。以 RK3588樣機(jī)為例,編譯時(shí)替換對(duì)應(yīng)的boot.img及dts:其中 BOOT_IMG=../rockdev/Image-rk3588
    發(fā)表于 09-20 17:01

    RK3588 Android 12.0 SDK編譯步驟分享

    rk3588sevb1-lp4x-v10.img -j24單獨(dú)編譯uboot$ ./make.sh rk35882、固件燒寫(xiě)升級(jí)工具版本:AndroidTool_Relea
    發(fā)表于 09-20 17:11

    怎樣去解決RK3588編譯kernel的問(wèn)題呢

    =../rockdev/Image-rk3588_firefly_itx_3588j/boot.img rk3588-firefly-itx-3588j.img -j32SYNC include
    發(fā)表于 10-14 15:18

    iTOP3588開(kāi)發(fā)板編譯Android內(nèi)核方法一

    在 rockdev/Image-rk3588_s 目錄下生成 boot.img,boot.img 為內(nèi)核鏡像。boot.img 鏡像里面包含了設(shè)備樹(shù)鏡像。所以燒寫(xiě)
    發(fā)表于 12-06 13:30

    RK3588開(kāi)發(fā)板Linux源碼包編譯Ubuntu

    ubootUboot 編譯完成如下圖所示:編譯完成后生成 uboot.img 到 u-boot 目錄,如下圖所示:更多內(nèi)容可以了解迅為RK3588
    發(fā)表于 03-01 10:57

    【飛凌RK3588開(kāi)發(fā)板試用】源碼編譯

    編譯配置在 device/forlinux/rk3588/目錄下,有不同板型的配置文件。選擇配置文件進(jìn)行
    發(fā)表于 03-28 22:32

    iTOP-RK3588開(kāi)發(fā)板單獨(dú)編譯Android固件-打包update.img

    rockdev/Image-rk3588_s 目錄下生成 update.img 鏡像。 更多內(nèi)容:B站搜索迅為RK3588開(kāi)發(fā)板
    發(fā)表于 08-15 11:00

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

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

    RK3588 SDK入門之編譯使用篇

    前言:在上一篇文章中,我們已經(jīng)配置好了Ubuntu虛擬機(jī)。本期將重點(diǎn)介紹如何Ubuntu虛擬機(jī)中使用RK3588的SDK。具體內(nèi)容包括SDK的下載與安裝、環(huán)境變量的配置、以及編譯調(diào)試的
    的頭像 發(fā)表于 11-22 01:07 ?7316次閱讀
    <b class='flag-5'>RK3588</b> SDK入門之<b class='flag-5'>編譯</b>使用篇

    調(diào)試RK3588必看!這個(gè)臨時(shí)設(shè)備樹(shù)文件,藏著你要的所有配置答案

    ”——rk3588-evb7-v11-linux.dtb.dts.tmp。不少人以為它是編譯過(guò)程的“臨時(shí)垃圾”,看完這篇你就知道:它其實(shí)是解決硬件適配、內(nèi)核啟動(dòng)問(wèn)題的“調(diào)試鑰匙”。
    的頭像 發(fā)表于 02-03 15:55 ?1082次閱讀
    調(diào)試<b class='flag-5'>RK3588</b>必看!<b class='flag-5'>這個(gè)</b>臨時(shí)設(shè)備樹(shù)文件,藏著你要的所有<b class='flag-5'>配置</b>答案