日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[ROC-RK3399-PC Pro] 手把手教你移植主线U-Boot(基于v2022.04-rc5版本)

發(fā)布時(shí)間:2024/3/12 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ROC-RK3399-PC Pro] 手把手教你移植主线U-Boot(基于v2022.04-rc5版本) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

🍇 博主主頁(yè):Systemcall小酒屋
🍇 博主簡(jiǎn)介:Neutionwei,C站嵌入式領(lǐng)域新星創(chuàng)作者之一,一枚熱愛(ài)開(kāi)源技術(shù)、喜歡分享技術(shù)心得的極客,注重簡(jiǎn)約風(fēng)格,熱衷于用簡(jiǎn)單的案例講述復(fù)雜的技術(shù),“假傳萬(wàn)卷書(shū),真?zhèn)饕话咐?#xff0c;這是廈大一位教數(shù)學(xué)的院士說(shuō)過(guò)的一句話,另外“成就是最好的老師”,技術(shù)既要沉淀,也得分享,成就感的正反饋是支持我持續(xù)耕耘的動(dòng)力!
🍇 專(zhuān)欄目錄:Firefly-RK3399板卡
🍇 專(zhuān)欄說(shuō)明:本專(zhuān)欄主要基于Firefly旗下的RK3399板卡進(jìn)行入門(mén)篇講述,歡迎訂閱,博主會(huì)持續(xù)更新!

文章目錄

    • 一、編譯環(huán)境
    • 二、交叉工具鏈
    • 三、克隆源代碼
    • 四、編譯源代碼
    • 五、燒錄固件

一、編譯環(huán)境

我的 PC 機(jī)用的是 Ubuntu 18.04,執(zhí)行以下命令安裝必要工具:

$ sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool \ expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \ qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib \ unzip device-tree-compiler python-pip ncurses-dev python-pyelftools

二、交叉工具鏈

從 Firefly 倉(cāng)庫(kù)克隆交叉工具鏈并添加到環(huán)境變量,這里的 GCC 版本為 6.3.1:

$ git clone https://gitlab.com/firefly-linux/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu $ export PATH=$PATH:/home/neutionwei/project/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

如果需要使用更高版本交叉編譯工具鏈,可以點(diǎn)擊以下鏈接:

http://releases.linaro.org/components/toolchain/binaries/

三、克隆源代碼

從 GitHub 倉(cāng)庫(kù)克隆主線U-Boot:

$ git clone git@github.com:u-boot/u-boot.git

使用 git tag 命令可以查看版本情況:

$ git tag

把頁(yè)面翻到最底下,可以看到當(dāng)前最新版本為 v2022.04-rc5:

切換到 v2022.04-rc5分支:

$ git checkout -b v2022.04-rc5 v2022.04-rc5

四、編譯源代碼

在主線 U-Boot 中,ROC-RK3399-PC Plus使用的是roc-pc-rk3399_defconfig配置文件,由于ROC-RK3399-PC Pro是ROC-RK3399-PC Plus硬件迭代版本,因此兩者是兼容的。

執(zhí)行以下命令生成.config:

$ make roc-pc-rk3399_defconfig

指定交叉工具鏈并開(kāi)始編譯:

$ make CROSS_COMPILE=aarch64-linux-gnu-


編譯完成后打印了一個(gè)警告,意思是說(shuō)沒(méi)找到 bl31.elf文件!通過(guò)查閱 doc/README.rockchip文檔了解到這個(gè)bl31.elf是必須的!

回到u-boot的上一層目錄,克隆arm-trusted-firmware:

$ git clone git@github.com:ARM-software/arm-trusted-firmware.git

編譯 RK3399 的bl31.elf文件:

$ cd arm-trusted-firmware $ make realclean $ make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399

編譯后報(bào)出一個(gè)缺少arm-none-eabi-gcc工具鏈的錯(cuò)誤:

安裝該工具鏈并重新編譯:

$ sudo apt-get install gcc-arm-none-eabi $ make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399

編譯完成,我們可以看到bl31.elf文件所在目錄:
回到 U-Boot 源代碼根目錄,指定 BL31環(huán)境變量并重新編譯:

$ cd u-boot $ export BL31=/home/neutionwei/project/arm-trusted-firmware/build/rk3399/release/bl31/bl31.elf $ make CROSS_COMPILE=aarch64-linux-gnu-

編譯完成:

我們可以看到添加bl31.elf后生成以下三個(gè)文件:

五、燒錄固件

準(zhǔn)備一張 TF卡,TF 卡接上讀卡器,執(zhí)行以下命令查看生成的設(shè)備節(jié)點(diǎn):

$ dmesg | tail

我的設(shè)備節(jié)點(diǎn)是/dev/sdd,分別把idbloader.img燒錄到第64扇區(qū)與 u-boot.itb燒錄到16384扇區(qū):

$ sudo dd if=idbloader.img of=/dev/sdd seek=64 conv=notrunc $ sudo dd if=u-boot.itb of=/dev/sdd seek=16384 conv=notrunc

把 TF 卡接入到 ROC-RK3399-PC Pro,接上串口調(diào)試,上電可以看到主線U-Boot相關(guān)日志。

總結(jié)

以上是生活随笔為你收集整理的[ROC-RK3399-PC Pro] 手把手教你移植主线U-Boot(基于v2022.04-rc5版本)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。