- 64 位 CPU
- 8GB 物理內存+交換內存
- 30GB 空閑的磁盤空間用于構建,源碼樹另外占用大約 10GB
建議使用 Ubuntu 64ibt 系統開發,如 Ubuntu 14.04 64ibt、Ubuntu 16.04 64ibt等,避免出現環境問題。
您需要一個 64 位版本的 Ubuntu 。注意:使用老版本 Ubuntu 可能會有兼容性問題。
- Ubuntu 14.04 軟件包安裝:
$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip tar curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 cmake tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gn u/libGL.so
- 安裝 ARM 交叉編譯工具鏈和編譯內核相關軟件包
$ sudo apt-get install gcc-arm-linux-gnueabihf \ gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev \ libssl1.0.0 libssl-dev
- 目前Buildroot默認支持的Qt版本為Qt5.9.1,此版本要求主機的編譯工具GCC和G++的版本必須為4.8以上,所以如果當前編譯環境的GCC和G++版本小于4.8,請先更新GCC和G++版本,再進行編譯。
由于 SDK 比較大,我們提供了一個打包好的.git以供下載:
- Firefly-PX3-SE_Buildroot_git_180421.7z
下載完成后先驗證一下 MD5 碼:
$ md5sum Firefly-PX3-SE_Buildroot_git_180421.7z 21b8c26d61731ce7bacc9000d39f33ed Firefly-PX3-SE_Buildroot_git_180421.7z
確認無誤后,就可以解壓:
mkdir -p ~/proj/Firefly-PX3-SE cd ~/proj/Firefly-PX3-SE 7zr x Firefly-PX3-SE_Buildroot_git_180421.7z git reset --hard
更新remote地址,解決更新倉庫時的權限問題:
git remote set-url gitlab https://gitlab.com/TeeFirefly/px3se-buildroot.git
以后就可以直接從 gitlab 處更新:
git pull gitlab firefly-px3se:firefly-px3se
也可以到 https://gitlab.com/TeeFirefly/px3se-buildroot 在線瀏覽源碼
編譯內核:
cd ~/proj/Firefly-PX3-SE/u-boot make px3se_linux_defconfig make -j8
編譯內核:
cd ~/proj/Firefly-PX3-SE/kernel make ARCH=arm px3se_linux_defconfig make ARCH=arm px3se-fireprime.img -j8
編譯 rootfs:
cd ~/proj/Firefly-PX3-SE . envsetup.sh cd ~/proj/Firefly-PX3-SE/buildroot/ make rockchip_px3se_defconfig && cd .. ./build_all.sh && ./mkfirmware.sh
其中,envsetup.sh 是終端環境變量設置腳本。有些模塊可通過rk_make.sh單獨編譯,此時需要設置終端環境變量。
注意: Buildroot是Linux平臺上一個構建嵌入式Linux系統的框架。整個Buildroot是由Makefile腳本和Kconfig配置文件構成的。buildroot/dl/目錄存在從官網上下載的開源軟件包,第一次下載后,下次就不會再去從官網下載了,而是從dl/目錄下拿開源包。因此由于國內網絡限制,第一次編譯會很漫長。為了節省時間,我們提供了基本上會用到的軟件包,下載解壓,將dl目錄拷貝到buildroot/下即可。
- 開源軟件包:dl.7z
firefly提供了便捷的編譯腳本工具。
- 編譯uboot:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -u
- 編譯內核:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -k -d px3se-fireprime
注意:-d dts_file_name,dts默認使用px3se-fireprime.dts
- 編譯根文件系統:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -a
- 以上全部編譯:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh
上一步驟的 ./mkimage.sh
會重新打包 rootfs.img。 并將其它相關的映像文件拷貝到目錄 rockimg/中。以下列出一般固件用到的映像文件:
- kernel.img :內核映像。
- recovery.img :急救模式映像。
- resource.img :資源映像,內含開機圖片和內核的設備樹信息。
- rootfs.img:根文件系統,ext4 文件系統格式。
請參照《升級固件》一文來燒寫分區映像文件。
如果使用的是 Windows 系統,將上述映像文件拷貝AndroidTool (Windows 下的固件升級工具)的 rockdev\Image 目錄中,之后參照升級文檔燒寫分區映像即可,這樣的好處是使用默認配置即可,不用修改文件的路徑。
- 在ubuntu下打包統一固件,編譯好SDK后,在SDK根目錄執行./FFTools/mkupdate/mkupdate.sh。即可生成統一固件例如:Firefly-PX3SE_Buildroot_DEFAULT_xxxxxx.img
- 在 Windows 下打包統一固件 update.img 很簡單,按上一步驟將文件拷貝到 AndroidTool 的 rockdev\Image 目錄中,然后運行 rockdev 目錄下的 mkupdate.bat 批處理文件即可創建 update.img 并存放到 rockdev\Image 目錄里。
update.img 方便固件的發布,供終端用戶升級系統使用。一般開發時使用分區映像比較方便。
-
嵌入式主板
+關注
關注
7文章
6081瀏覽量
34942 -
安卓
+關注
關注
5文章
2107瀏覽量
56707 -
Firefly
+關注
關注
2文章
538瀏覽量
6930
發布評論請先 登錄
相關推薦
評論