-
MBR固件是采用舊版本SDK編譯出來的MBR分區固件,已使用時間長,穩定性高
-
GPT固件是采用新版本SDK編譯出來得GPT分區固件,兼容性好,SDK編譯簡單方便,功能齊全,建議使用。
注意:官方正在完善新版本SDK(GPT),在后期將全部使用新版本SDK。
準備工作
準備網絡:
準備qemu
進入根文件系統進行操作:
更新及安裝
更新:
安裝自己需要的功能
安裝xubuntu
可能出現錯誤:
安裝包的源沒有添加到/etc/apt/source.list中,導致無法識別安裝包,可以自行添加源,也可以使用下面給出的source.list覆蓋原來的/etc/apt/source.list文件:
添加用戶及設置密碼
添加用戶
給用戶設置密碼:
給root用戶設置密碼:
修改完自己的根文件系統就可以退出了。
制作自己的根文件系統,大小依據自己的根文件系統而定,注意依據temp文件夾的大小來修改count值
這樣 linuxroot.img 就是最終的根文件系統映像文件了。
根文件系統加載后,大小不正常,未占滿整個分區:
在系統正確加載后執行擴展文件系統命令:
為了方便用戶的使用與開發,官方提供了Linux開發的整套sdk,本章詳細的說明SDK的具體用法。
下載源碼
下載 Linux-SDK:
-
方法一
初始化repo倉庫:
同步源碼:
-
方法二(國內用戶推薦使用)
因為國內用戶可能git拉代碼會比較慢,所以官方提供了基礎得源碼包Linux_SDK.7z
下載Linux_SDK.7z
Linux_SDK 目錄介紹
目錄:
搭建SDK編譯環境
編譯buildroot固件:
編譯debian固件:
ubuntu固件:(根文件系統請使用官方提供的根文件系統鏡像)
編譯前配置
配置文件 aio-3399-jd4.mk:
配置文件生效會連接到device/rockchip/.BoardConfig.mk,檢查該文件可以驗證是否配置成功。
注意:aio-3399-jd4.mk為編譯生成buildroot固件的配置文件.同時用戶也可以通過參考該配置生成新的配置文件來適配自己所需要的固件。
重要配置介紹:(如果需要diy固件,可能需要修改下列配置信息)
注意,十分重要!!
默認配置編譯buildroot固件,如果想編譯其他固件(如ubuntu固件)請執行一下操作:
-
下載ubuntu根文件系統鏡像https://pan.baidu.com/s/1DuCzTGARDi7APxyKs9Nl1A#list/path=%2F
-
把得到的鏡像放到sdk的指定目錄:
注意:ubuntu根文件系統鏡像存放路徑不能錯
全自動編譯
在配置和搭建環境的工作都做好的前提下:
全自動編譯的固件默認編譯buildroot固件。生成固件目錄rockdev/,同時會在IMAGE中備份。
部分編譯
kernel
u-boot
recovery
recovery分區可省略,若有需要: 編譯recovery:
rootfs
-
buildroot
-
debian:
-
ubuntu18.04,可以通過云盤下載:
下載鏈接https://pan.baidu.com/s/1DuCzTGARDi7APxyKs9Nl1A#list/path=%2F
把得到的鏡像放到sdk的根目錄處:
注意:ubuntu根文件系統鏡像存放路徑不能錯
運行./mkfirmware.sh會自動更新rockdev/rootfs.img的鏈接
同步更新各部分鏡像
每次打包固件前先確保rockdev/目錄下文件鏈接是否正確:
可以運行./mkfirmware.sh更新鏈接
提示:若不是編譯全部的分區鏡像,在運行./mkfirmware時,會遇到如下類似情況:
打包統一固件
注意:打包前請確認tools/linux/Linux_Pack_Firmware/rockdev/package-file是否正確。打包會根據此文件進行分區打包。此文件鏈接會在./build.shaio-rk3399-jd4.mk命令時更新,如果配置不對請返回[配置]這一節重新配置一次。
整合統一固件
parameter
parameter.txt包含了固件的分區信息十分重要,你可以在device/rockchip/rk3399目錄下找到一些parameter.txt文件,下面以parameter-debian.txt為例子做介紹:
CMDLINE屬性是我們關注的地方。以uboot為例0x00002000@0x00004000(uboot)中0x00004000為uboot分區的起始位置0x00002000為分區的大小。后面的分區規則相同。用戶可以根據自己需要增減或者修改分區信息,但是請最少保留uboot,trust,boot,rootfs分區,這是機器能正常啟動的前提條件。parameter-ubuntu.txt中使用的就是這樣的最簡分區方案。
分區介紹:
package-file
此文件應當與parameter保持一致,用于固件打包。可以在tools/linux/Linux_Pack_Firmware/rockdev下找到相關文件。以rk3399-ubuntu-package-file為例介紹:
以上是SDK編譯后生成的鏡像文件。根據parameter.txt只打包自己用到的img文件。
如何進入升級模式
操作方法見《升級固件》
Mpp是Rockchip為RK3399提供的一套視頻編解碼的api, 并且基于mpp,Rockchip提供了一套gstreamer的編解碼插件。用戶可以根據自己的需求,基于gstreamer來做視頻編解碼的應用,或者直接調用mpp,來實現硬件的編解碼加速。
Firefly 發布的Ubuntu 系統, 都已經提供了完整的gstremaer 和 mpp支持,并且提供了相應的demo,供用戶開發參考。
Gstreamer
-
Ubuntu 16.04 下,gstreamer 1.12 已經安裝在/opt/目錄下。
-
Ubuntu 18.04下, gstreamer 1.12 已經安裝到系統中。
/usr/local/bin/h264dec.sh 測試硬件H264解碼。
/usr/local/bin/h264enc.sh 測試硬件H264編碼。
用戶可以參照這兩個腳本,配置自己的gstreamer應用。
Mpp
-
Ubunut 系統下, mpp 相關dev包都已經安裝到系統中。
/opt/mpp/下分別是mpp 編解碼的相關demo 和 源文件。
RK3399 支持 OpenGL ES1.1/2.0/3.0/3.1。
Firefly 發布的Ubuntu 系統, 都已經提供了完整的OpenGL-ES支持。運行glmark2-es2可以測試openGL-ES支持。 如果要避免屏幕刷新率對測試結果的影響,可以在串口終端上使用以下命令測試。
在Chromium瀏覽器中, 在地址欄輸入:chrome://gpu可以查看chromium下硬件加速的支持。
Note:
-
EGL 是用arm 平臺上OpenGL針對x window system的擴展,功能等效于x86下的glx庫。
-
由于Xorg使用的Driver modesettings 默認會加載libglx.so(禁用glx會導致某些通過檢測glx環境的應用啟動失敗), libglx.so會搜索系統中的dri實現庫。但是rk3399 Xorg 2D加速是直接基于DRM實現, 并未實現dri庫,所以啟動過程中,libglx.so會報告如下的錯誤 。
(EE)AIGLXerror:dlopenof/usr/lib/aarch64-linux-gnu/dri/rockchip_dri.sofailed這個對系統運行沒有任何影響,不需要處理。
-
基于同樣的道理,某些應用啟動過程中,也會報告如下錯誤,不用處理,對應用的運行不會造成影響。
libGLerror:unabletoloaddriver:rockchip_dri.solibGLerror:driverpointermissinglibGLerror:failedtoloaddriver:rockchip -
Firefly之前發布的某些版本的Ubuntu軟件,默認關閉了加載libglx.so,在某些情況下,運行某些應用程序會出現下述錯誤:
GdkGLExt-WARNING**:Windowsystemdoesn'tsupportOpenGL.
修正的方法如下:
刪除/etc/X11/xorg.conf.d/20-modesetting.conf中一下三行配置。
Section"Module"Disable"glx"EndSection
Firefly發布的Ubuntu系統,已經添加了opencl1.2支持,可以運行系統內置的clinfo獲取平臺opencl相關參數。
RK3399 支持神經網絡的GPU加速方案LinuxNN, Firefly發布的Ubuntu系統,已經添加了LinuxNN的支持。
在opt/tensorflowbin/下,運行test.sh, 即可測試MobileNet 模型圖像分類器的 Demo和MobileNet-SSD 模型的目標檢測 Demo
Firefly發布的Ubuntu系統,如果需要默認對系統的顯示方向做旋轉,可以在
/etc/default/xrandr中修改對應的顯示設備的方向即可。
對于配有觸摸屏的平臺,如果需要對觸摸屏的方向做旋轉,可以在/etc/X11/xorg.conf.d/05-gslX680.conf中修改SwapAxes / InvertX / InvertY三個值。
-
嵌入式主板
+關注
關注
7文章
6097瀏覽量
36159 -
安卓
+關注
關注
5文章
2149瀏覽量
58391 -
Firefly
+關注
關注
2文章
541瀏覽量
7415
發布評論請先 登錄
fireflyCORE-3399PRO主板JD4接口定義

fireflyCORE-3399PRO主板JD4燒寫固件簡介

fireflyCORE-3399PRO主板JD4產品簡介
fireflyCORE-3399主板JD4--FAQs方案

fireflyCORE-3399主板JD4接口定義

fireflyCORE-3399主板JD4--Android工具簡介

fireflyCORE-3399主板JD4產品簡介
Core 3399Pro JD4 Linux SDK源碼包(僅支持RK3399Pro)

Core 3399 JD4文檔AIO 3399JD4 Product Specifications

Core 3399 JD4 V2 Linux SDK源碼包(僅支持RK3399)

評論