- 64 位 CPU
- 8GB 物理內(nèi)存+交換內(nèi)存
- 30GB 空閑的磁盤空間用于構(gòu)建,源碼樹另外占用大約 10GB
建議使用 Ubuntu 64ibt 系統(tǒng)開發(fā),如 Ubuntu 14.04 64ibt、Ubuntu 16.04 64ibt等,避免出現(xiàn)環(huán)境問題。
您需要一個 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 交叉編譯工具鏈和編譯內(nèi)核相關(guān)軟件包
$ sudo apt-get install gcc-arm-linux-gnueabihf \ gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev \ libssl1.0.0 libssl-dev
- 目前Buildroot默認(rèn)支持的Qt版本為Qt5.9.1,此版本要求主機(jī)的編譯工具GCC和G++的版本必須為4.8以上,所以如果當(dāng)前編譯環(huán)境的GCC和G++版本小于4.8,請先更新GCC和G++版本,再進(jìn)行編譯。
由于 SDK 比較大,我們提供了一個打包好的.git以供下載:
- Firefly-PX3-SE_Buildroot_git_180421.7z
下載完成后先驗(yàn)證一下 MD5 碼:
$ md5sum Firefly-PX3-SE_Buildroot_git_180421.7z 21b8c26d61731ce7bacc9000d39f33ed Firefly-PX3-SE_Buildroot_git_180421.7z
確認(rèn)無誤后,就可以解壓:
mkdir -p ~/proj/Firefly-PX3-SE cd ~/proj/Firefly-PX3-SE 7zr x Firefly-PX3-SE_Buildroot_git_180421.7z git reset --hard
更新remote地址,解決更新倉庫時的權(quán)限問題:
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 在線瀏覽源碼
編譯內(nèi)核:
cd ~/proj/Firefly-PX3-SE/u-boot make px3se_linux_defconfig make -j8
編譯內(nèi)核:
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 是終端環(huán)境變量設(shè)置腳本。有些模塊可通過rk_make.sh單獨(dú)編譯,此時需要設(shè)置終端環(huán)境變量。
注意: Buildroot是Linux平臺上一個構(gòu)建嵌入式Linux系統(tǒng)的框架。整個Buildroot是由Makefile腳本和Kconfig配置文件構(gòu)成的。buildroot/dl/目錄存在從官網(wǎng)上下載的開源軟件包,第一次下載后,下次就不會再去從官網(wǎng)下載了,而是從dl/目錄下拿開源包。因此由于國內(nèi)網(wǎng)絡(luò)限制,第一次編譯會很漫長。為了節(jié)省時間,我們提供了基本上會用到的軟件包,下載解壓,將dl目錄拷貝到buildroot/下即可。
- 開源軟件包:dl.7z
firefly提供了便捷的編譯腳本工具。
- 編譯uboot:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -u
- 編譯內(nèi)核:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -k -d px3se-fireprime
注意:-d dts_file_name,dts默認(rèn)使用px3se-fireprime.dts
- 編譯根文件系統(tǒng):
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -a
- 以上全部編譯:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh
上一步驟的 ./mkimage.sh
會重新打包 rootfs.img。 并將其它相關(guān)的映像文件拷貝到目錄 rockimg/中。以下列出一般固件用到的映像文件:
- kernel.img :內(nèi)核映像。
- recovery.img :急救模式映像。
- resource.img :資源映像,內(nèi)含開機(jī)圖片和內(nèi)核的設(shè)備樹信息。
- rootfs.img:根文件系統(tǒng),ext4 文件系統(tǒng)格式。
請參照《升級固件》一文來燒寫分區(qū)映像文件。
如果使用的是 Windows 系統(tǒng),將上述映像文件拷貝AndroidTool (Windows 下的固件升級工具)的 rockdev\Image 目錄中,之后參照升級文檔燒寫分區(qū)映像即可,這樣的好處是使用默認(rèn)配置即可,不用修改文件的路徑。
- 在ubuntu下打包統(tǒng)一固件,編譯好SDK后,在SDK根目錄執(zhí)行./FFTools/mkupdate/mkupdate.sh。即可生成統(tǒng)一固件例如:Firefly-PX3SE_Buildroot_DEFAULT_xxxxxx.img
- 在 Windows 下打包統(tǒng)一固件 update.img 很簡單,按上一步驟將文件拷貝到 AndroidTool 的 rockdev\Image 目錄中,然后運(yùn)行 rockdev 目錄下的 mkupdate.bat 批處理文件即可創(chuàng)建 update.img 并存放到 rockdev\Image 目錄里。
update.img 方便固件的發(fā)布,供終端用戶升級系統(tǒng)使用。一般開發(fā)時使用分區(qū)映像比較方便。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35639 -
安卓
+關(guān)注
關(guān)注
5文章
2137瀏覽量
57648 -
Firefly
+關(guān)注
關(guān)注
2文章
538瀏覽量
7141
發(fā)布評論請先 登錄
相關(guān)推薦
Firefly Debian根文件系統(tǒng)使用手冊指南
Firefly-PX3-SE主板FAQ方案
![<b class='flag-5'>Firefly-PX3-SE</b>主板FAQ方案](https://file.elecfans.com/web1/M00/AF/0B/o4YBAF3gcj2AI3jdAAGZea56zx4050.png)
Firefly-PX3-SE--WIFI模塊及以太網(wǎng)簡介
如何制作一個自啟動的Linux根文件系統(tǒng)
![如何制作一個自啟動的Linux<b class='flag-5'>根</b><b class='flag-5'>文件系統(tǒng)</b>](https://file.elecfans.com/web1/M00/BB/1B/pIYBAF6f9keAF1oXAAH7UZKjyh4571.png)
嵌入式Linux--根文件系統(tǒng)(一)簡介
![嵌入式Linux--<b class='flag-5'>根</b><b class='flag-5'>文件系統(tǒng)</b>(一)<b class='flag-5'>簡介</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論