最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

RK3568開發(fā)筆記(四):在虛擬機(jī)上使用SDK編譯制作uboot、kernel和buildroot鏡像

2022-07-18 11:51 作者:紅胖子_AAA紅模仿  | 我要投稿

前言

??上一篇搭建好了ubuntu宿主機(jī)開發(fā)環(huán)境,本篇的目標(biāo)系統(tǒng)主要是開發(fā)linux+qt,所以需要刷上billdroot+Qt創(chuàng)建的系統(tǒng),為了更好的熟悉原理和整個(gè)開發(fā)過程,選擇從零開始搭建rk3568的sdk開發(fā)環(huán)境。

RK系列SDK簡(jiǎn)要介紹

目錄結(jié)構(gòu)

??一個(gè)通用 Linux SDK (RV系類的sdk沒有對(duì)工程目錄包含有 buildroot、 debian、 app、 kernel、 u-boot、 device、 docs、 external等目錄。
??以下是RK系類的目錄分類:

  • app:存放上層應(yīng)用 app,主要是 qcamera/qfm/qplayer/settings 等一些應(yīng)用程序。

  • buildroot基于 buildroot (2018.02-rc3) 開發(fā)的根文件系統(tǒng)。

  • debian:基于 debian 10 開發(fā)的根文件系統(tǒng),支持部分芯片。

  • device/rockchip:存放各芯片板級(jí)配置和 Parameter 文件,以及一些編譯與打包固件的腳本和預(yù)備文件。

  • docs存放芯片模塊開發(fā)指導(dǎo)文檔、 平臺(tái)支持列表、 芯片平臺(tái)相關(guān)文檔、 Linux 開發(fā)指南等。

  • IMAGE:存放每次生成編譯時(shí)間、 XML、 補(bǔ)丁和固件目錄。

  • external:存放第三方相關(guān)倉(cāng)庫,包括音頻、 視頻、 網(wǎng)絡(luò)、 recovery 等。

  • kernel存放 kernel 4.4 或 4.19 開發(fā)的代碼。

  • prebuilts:存放交叉編譯工具鏈。

  • rkbin:存放 Rockchip 相關(guān)的 Binary 和工具。

  • rockdev:存放編譯輸出固件。

  • tools:存放 Linux 和 Windows 操作系統(tǒng)環(huán)境下常用工具。

  • u-boot存放基于 v2017.09 版本進(jìn)行開發(fā)的 uboot 代碼。

  • yocto:基于 yocto gatesgarth 3.2 開發(fā)的根文件系統(tǒng),支持部分芯片

??相對(duì)于以上的,對(duì)比下RV1109&RV1126的SDK目錄,如下圖:
??

buildroot

??Linux SDK中 buildroot的 版本是 Buildroot-2018.02,其包含了基于 Linux 系統(tǒng)開發(fā)
??用到的各種系統(tǒng)源碼,驅(qū)動(dòng),工具,應(yīng)用軟件包。
??

??buildroot 優(yōu)勢(shì):

  • 通過源碼構(gòu)建, 有很大的靈活性

  • 方便的交叉編譯環(huán)境, 可以進(jìn)行快速構(gòu)建

  • 方便各系統(tǒng)組件配置及定制開發(fā)

源碼準(zhǔn)備

??從開發(fā)版提供的資料中拿到uboot,kernel,rootfs:

  • uboot:uboot是引導(dǎo)程序,芯片運(yùn)行跑起來,然后引入kernel

  • kernel:linux的內(nèi)核是加載后將會(huì)移植運(yùn)行在內(nèi)存中的核心

  • rootfs:這是文件系統(tǒng),文件系統(tǒng)是kernel運(yùn)行時(shí)需要加載一些驅(qū)動(dòng),庫,存儲(chǔ)等相關(guān)的其他一切相關(guān)的東西;
    ?&emsp編譯uboot,kernel,然后制作文件系統(tǒng):
    ??

??(注意:一定要從購(gòu)買開發(fā)板或者核心板的廠家獲取,已經(jīng)做好了ddr等外設(shè)的適配,包括開發(fā)板的外設(shè),這是我們后續(xù)學(xué)習(xí)移植的基礎(chǔ),千萬不要想著從零開始做,這個(gè)是不現(xiàn)實(shí)的,目前也沒有人和公司這么做)
??(注意:buildroot文件系統(tǒng),并不是真的文件系統(tǒng),是buildroot工具構(gòu)建的文件系統(tǒng),Yocto也是,Debian和Ubuntu則是真文件系統(tǒng)

編譯buildroot

步驟一:安裝buildroot依賴環(huán)境

??虛擬機(jī)安裝編譯buildroot環(huán)境,以下跟來回驗(yàn)證了:

??

步驟二:下載解壓buildroot、uboot-kernel 傳輸?shù)侥繕?biāo)系統(tǒng)

??windows上先解壓,得到完整文件:
??

??

??然后傳送到ubuntu上(使用samba服務(wù),不清楚的參考上一篇安裝samba服務(wù))。
??

??

??虛擬機(jī)上:
??

步驟三:移動(dòng)解壓uboot-kernel

??注意:文件較大,不建議copy,一是會(huì)增加虛擬機(jī)所占存儲(chǔ),二是復(fù)制的時(shí)間很久。

??

??先解壓uboot_kernel:

???

??這是個(gè)挺漫長(zhǎng)的時(shí)間,花費(fèi)大致5分鐘。

步驟四:使用buildroot系統(tǒng)

??注意:rk3568支撐多個(gè)系統(tǒng),按照SDK文檔指定系統(tǒng)是相似的操作。
??我們使用buildroot文件系統(tǒng),將buildroot_20220510.tar.gz拷貝到rk356x文件夾:

??


??然后解壓:

??差不多也是五分鐘。

步驟五:查看編譯命令

??

??編譯uboot,編譯內(nèi)核,編譯文件系統(tǒng)(buildroot)
??

步驟六:適配屏幕

??屏幕,筆者使用的是廠家提供的lvds10.1寸屏幕,已經(jīng)做好了驅(qū)動(dòng)在sdk中,但是需要配置設(shè)備樹:

??我們此時(shí)做個(gè)額外學(xué)習(xí),先不配置hdmi和vga,這樣hdmi和vga就不能顯示,后續(xù)等我們驗(yàn)證hdmi不能顯示后,再重新配置 該文件,進(jìn)行顯示:
??

步驟七:編譯整體

??由于uboot,kernel是沒有爭(zhēng)議的,但是文件系統(tǒng)是由好幾個(gè)參數(shù),所以要根據(jù)開發(fā)文檔來,有個(gè)環(huán)境變量RK_ROOTFS_SYSTEM,他是什么則是什么系統(tǒng),由此可見,他實(shí)際上是build編譯文件系統(tǒng)的參數(shù):
??

??然后開始編譯:

??

??查看“入坑二”,最終,使用sdk定義的路徑是可以通過的:
??

入坑

入坑一:編譯所有,定位到是文件系統(tǒng)失敗

問題

??

??編譯錯(cuò)誤:
??

解決

??依次編譯,開始哪里有錯(cuò)誤:

??

??內(nèi)核報(bào)的警告,但是依然過了:
??

??


??仔細(xì)看信息,找到問題依次解決:
??


??過程中,還有其他的錯(cuò)誤,…其實(shí)就是環(huán)境缺少一些依賴,文檔前面已經(jīng)補(bǔ)上全部的依賴環(huán)境了。
??特別注意,解決后要./build.sh cleanall清理后再編譯。
??最終依賴環(huán)境是:

入坑二:編譯buildroot失敗

問題

??編譯buildroot出現(xiàn)編譯庫錯(cuò)誤。

原因

??新版本的buildroot添加了很多庫,這些庫跟/home/toppet/Linux的路徑相關(guān),配置的時(shí)候?qū)懗闪私^對(duì)路徑,所以編譯buildroot無法通過。

解決

??方案商技術(shù)支持說一定要使用文檔說的路徑才可以通過,重新全部來一遍后,確實(shí)可以過,如下圖:
??


RK3568開發(fā)筆記(四):在虛擬機(jī)上使用SDK編譯制作uboot、kernel和buildroot鏡像的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
蒲城县| 南宁市| 临海市| 公主岭市| 青龙| 柯坪县| 文安县| 循化| 吉林省| 永顺县| 察哈| 岗巴县| 运城市| 通山县| 托克逊县| 凉山| 乐昌市| 二连浩特市| 登封市| 平阳县| 兴城市| 陕西省| 白河县| 安义县| 抚州市| 惠东县| 南部县| 大厂| 六枝特区| 垣曲县| 元氏县| 临海市| 克什克腾旗| 黄石市| 方正县| 香格里拉县| 布尔津县| 吉木乃县| 邮箱| 禄劝| 临猗县|