本 SDK 開發環境是在 Ubuntu 上開發測試的。我們推薦使用 Ubuntu 16.04 的系統進行編譯。其他的 Linux 版本可能需要對軟件包做相應調整。 除了系統要求外,還有其他軟硬件方面的要求。
64 位系統,硬盤空間大于 40G。如果您進行多個構建,將需要更大的硬盤空間。
-
Ubuntu 14.04 軟件包安裝:
-
Ubuntu 16.04 軟件包安裝
-
安裝 ARM 交叉編譯工具鏈和編譯內核相關軟件包
提供兩種方式給用戶下載:1:Github上同步SDK;2:下載源碼包(推薦國內用戶使用)
Github上同步SDK
-
下載repo工具:
-
初始化倉庫:
下載源碼包(推薦國內用戶使用)
-
下載repo工具:
-
下載鏈接:Linux-SDK GPT源碼包https://pan.baidu.com/s/1UEV7Hmpf4Dj6rbA_MI_XEw(提取碼:f4hg)
-
拷貝到linux文件夾下
-
解壓文件:7zxlinux-sdk-3328.7z
注意:解壓完之后,用戶可能會疑惑看不到文件。在linux/目錄運行ls-a命令,有.repo/目錄,這是我們的倉庫。
注意:從Github上同步SDK時,部分國內用戶會有不穩定的現象,這就需要多次運行同步命令reposync-c才可以
目錄
在device/rockchip/rk3328/目錄下,選擇對應的板型的配置文件
本文例子:確定選用rk3328/aio-rk3328-jd4.mk
aio-rk3328-jd4.mk 相關配置介紹:
重點:
配置Rootfs
源碼中默認的Linux rootfs是buildroot,如果rootfs使用buildroot,跳過此步,如果用戶需要使用Ubuntu,需要通過以下步驟來配置:
以Ubuntu18.04為例
1、 下載根文件系統:ubuntu18.04 根文件系統(64位)https://pan.baidu.com/s/1lwtFtQqIRbXq-6JSiDBXYg(提取碼:yo4z),放到SDK路徑下;
2、 該文件為7z壓縮包,解壓該文件;
3、 完成上述后,得到rk3328-ubuntu1804-arm64-rootfs.img(2.6G),拷貝根文件系統到rootfs目錄下;
4、 在device/rockchip/rk3328/aio-rk3328-jd4.mk中, 將“# rootfs image path”修改為:
編譯配置文件:
運行完上述腳本后,在device/rockchip/目錄下,生成.BoardConfig.mk 軟鏈接 device/rockchip/rk3328/aio-rk3328-jd4.mk
完全編譯運行如下命令,包含 kernel 、uboot、buildroot、recovery。 如果用戶使用buildroot,可以使用完全編譯。如果用戶使用Ubuntu系統,則不需要使用完全編譯。
注意:該腳本默認編譯buildroot根文件系統,若用戶需要用的根文件系統是Debian或者Ubuntu16.04時,請!先!將!對應的根文件系統準備好,不然在執行該build.sh腳本時,會在整理分區鏡像、打包固件時出錯,這部分操作在以下的“部分編譯”中“編譯rootfs”有詳細說明,按照操作執行即可!
build.sh腳本運行完成后,會將分區鏡像和統一固件update.img放在rockdev/目錄下,同時創建IMAGE/目錄備份。
編譯u-boot:
編譯kernel:
編譯rootfs:
本SDK支持三種根文件系統,分別是buildroot、Debian、Ubuntu;
-
Buildroot
編譯 Buildroot 環境搭建所依賴的軟件包安裝命令如下:
搭建環境完成后,編譯buildroot,執行如下命令:
-
Debian
編譯 Debian 環境搭建所依賴的軟件包安裝命令如下:
搭建環境完成后,編譯Debian,按照自身需求,執行如下命令:
完成上述后,會在rootfs目錄下,生成linaro-rootfs.img.修改device/rockchip/.BoardConfig.mk中的根文件系統路徑即可,參考配置前編譯中的“配置Rootfs”.
-
Ubuntu
以Ubuntu18.04為例
1、 下載根文件系統:ubuntu18.04 根文件系統(64位)https://pan.baidu.com/s/1lwtFtQqIRbXq-6JSiDBXYg(提取碼:yo4z),放到SDK路徑下;
2、 該文件為7z壓縮包,解壓該文件;
3、 完成上述后,得到rk3328-ubuntu1804-arm64-rootfs.img(2.6G),拷貝根文件系統到rootfs目錄下;
補充說明:
recovery分區在Ubuntu系統中不會用到,若有需要,可運行如下命令:
parameter.txt文件中包含了固件的重要信息,如以rk3288為例: 路徑:device/rockchip/rk3328/parameter-ubuntu.txt
CMDLINE屬性是我們關注的地方,以uboot為例 0x00002000@0x00004000(uboot)中0x00004000為uboot分區的起始位置0x00002000為分區的大小,后面相同,用戶可以根據自己需要增減或者修改分區信息,但是請最少保留uboot,trust,boot,rootfs分區,這是機器能正常啟動的前提條件。
-
分區介紹:
在parameter.txt文件中,僅僅保留了5個不可缺少的分區。
注意:若發現根文件分區大小異常時,執行如下命令:
package-file文件用于打包統一固件時確定需要的分區鏡像和鏡像路徑,同時它需要與parameter.txt文件保持一致。 路徑tools/linux/Linux_Pack_Firmware/rockdev/目錄下,以package-file為例:
-
整理分區鏡像到rockdev/目錄下
提示:在運行./mkfirmware時,可能會遇到如下報錯:
表示recovery分區沒有找到,類似的如oem.img、userdata.img,上文提到,這些屬于可省略分區鏡像,可以不用理會。
-
整合統一固件
注意:每次打包固件前,需要運行mkfirmware.sh腳本更新rockdev/下的分區鏡像
-
Windows:AndroidTool_v2.58
-
Linux:Upgrade_tool_1.34
下載 AndroidTool2.58后,解壓,運行里面的 AndroidTool.exe(注意,如果是 Windows 7/8,需要按鼠標右鍵,選擇以管 理員身份運行),如下圖:
前提:設備燒寫固件或分區鏡像時,需處于Loader模式或Maskrom模式,參考設備模式
燒寫統一固件 update.img
燒寫統一固件 update.img 的步驟如下:
-
切換至”升級固件”頁。
-
按”固件”按鈕,打開要升級的固件文件。升級工具會顯示詳細的固件信息
-
按”升級”按鈕開始升級。
-
如果升級失敗,可以嘗試先按”擦除Flash”按鈕來擦除 Flash,然后再升級。
注意:如果你燒寫的固件loader版本與原來的機器的不一致,請在升級固件前先執行”擦除Flash”。
燒寫分區映像
燒寫分區映像時,請使用對應SDK下的FFTools/AndroidTool.rar燒寫。步驟如下:
-
切換至”下載鏡像”頁。
-
勾選需要燒錄的分區,可以多選。
-
確保映像文件的路徑正確,需要的話,點路徑右邊的空白表格單元格來重新選擇。
-
點擊”執行”按鈕開始升級,升級結束后設備會自動重啟。
下載Upgrade_tool1.34.zip后,解壓,將upgrade_tool拷貝到/usr/local/bin/目錄下,操作如下:
統一固件燒寫
-
使用upgrade_tool工具燒寫:
-
使用SDK腳本燒寫:
分區鏡像燒寫
-
使用upgrade_tool工具燒寫:
-
使用腳本燒寫:
說明:rkflash.sh該腳本文件的原理便是使用upgrade_tool工具燒寫
-
嵌入式主板
+關注
關注
7文章
6097瀏覽量
36147 -
安卓
+關注
關注
5文章
2149瀏覽量
58366 -
Firefly
+關注
關注
2文章
541瀏覽量
7410 -
RK3328
+關注
關注
1文章
56瀏覽量
3371
發布評論請先 登錄
ROC-RK3328-CC超小型開源主板
怎樣去解決RK3328編譯build root報錯的問題呢
fireflyCORE-RK3328主板JD4解包/打包 RK 固件介紹
fireflyCORE-RK3328主板JD4簡介

fireflyCORE-RK3328主板JD4介紹

fireflyROC-RK3328PC啟動介紹
Core 3328 JD4源代碼Linux SDK包(僅支持RK3328)

Core 3328 JD4源代碼RK3328 Android8.1 SDK包

評論