精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

fireflyROC-RK3308B主板CC-Buildroot開發(fā)簡介

firefly ? 來源:firefly ? 作者:firefly ? 2019-12-20 09:18 ? 次閱讀
Buildroot開發(fā)
Buildroot開發(fā)基礎
Buildroot版本

當前Buildroot版本為Buildroot-2018.02

Buildroot 配置選擇及編譯

按照以下步驟配置完后,執(zhí)行 make 即可。

source buildroot/build/envsetup.sh You're building on Linux Lunch menu...pick a combo: 1. firefly_rk3308_release 2. firefly_rk3308_recovery 3. firefly_rk3308_pcba Which would you like? [1] 1 ===========================================

如選擇 firefly_rk3308_release,輸入對應序號 1

make

完成編譯后執(zhí)行 SDK 根目錄下的 mkfirmware.sh 腳本生成固件

make 編譯執(zhí)行過程

執(zhí)行過程:

  • 下載源碼;

  • 配置、編譯、安裝交叉工具鏈;

  • 配置、編譯、安裝選擇的包;

  • 按選擇的格式生成根文件系統(tǒng);

Buildroot 輸出結果保存在output目錄,具體目錄由配置文件決定。 例如,編譯配置firefly_rk3308_release,輸出結果保存在buildroot/output/firefly_rk3308_release目錄。

后續(xù)編譯可以在buildroot/output/firefly_rk3308_release目錄或是工程根目錄下執(zhí)行(make menuconfig也可以在工程根目錄下執(zhí)行),這個目錄底下包括幾個子目錄:

  • image/:包含壓縮好的根文件系統(tǒng)鏡像文件。

  • build/: 包含所有的源文件,包括 Buildroot 所需主機工具和選擇的包,這個目錄包含所有模塊源碼。

  • staging/:這個目錄類似根文件系統(tǒng)的目錄結構,包含編譯生成的所有頭文件和庫,以及其他開發(fā)文件,不過他們沒有裁剪,比較龐大,不適用于目標文件系統(tǒng)。

模塊配置

整個Buildroot是由Makefile腳本和Kconfig配置文件構成的。你可以和編譯Linux內核一樣。

make menuconfig

配置界面如下:

在Target packages里面添加和裁剪一些工具,按需求定制系統(tǒng)功能,常用到的libdrm、ssh、vsftpd、wpa_supplicant、pppd等都可在里面配置。

執(zhí)行以下命令,將會保存當前配置,并自動修改 buildroot/configs/ 目錄下的默認配置文件:

make savedefconfig

需要注意的是:

  • 進行編譯時,buildroot根據配置,會自動從網絡獲取相關的軟件包,包括一些第三方庫,插件,實用工具等,放在dl/目錄。

  • 軟件包會解壓在output/build/目錄下,然后進行編譯。

  • 如果要修改軟件包的源碼,可以通過打補丁的方式進行修改,補丁集中放在package/目錄,buildroot會在解壓軟件包時為其打上相應的補丁。

Busybox 配置修改

配置命令:

make busybox-menuconfig

修改完成后,通過命令保存配置:

make busybox-update-config
交叉編譯工具

Buildroot 編譯完成后,會在指定的輸出目錄 host 目錄下生成交叉編譯工具,我們可以用來編譯目標程序。默認配置生成的交叉編譯工具目錄為:

cdbuildroot/output/firefly_rk3308_release/host/usr/bin/

我們可以直接用交叉編譯工具編譯程序,例如:

./buildroot/output/firefly_rk3308_release/host/usr/bin/aarch64-rockchip-linux-gnu-gcc main.c -otest

浮點支持(以下配置打開 neon 支持),RK3308 支持 crc/crypto/fp/simd 這幾個 feature,配置如下:

CFLAGS+=-mcpu=cortex-a35+crc+crypto
編譯

在開發(fā)過程中,針對output/build/某個模塊源碼進行了修改,需要單獨重新編譯該模塊軟件包。

Buildroot在編譯某個包的時候,會將編譯的過程,通過一些標志文件記錄下來,保存在對應的軟件包源碼的目錄里,這些標志文件分別有:

.stamp_configured .stamp_downloaded .stamp_extracted .stamp_patched .stamp_staging_installed .stamp_target_installed

這些標識文件主要控制這個軟件包的下載,解壓,打包,配置,編譯,安裝等。具體詳細說明可參考:

docs/manual/rebuilding-packages.txt

也可以直接看mk文件,了解原理:

package/pkg-generic.mk

要想重新執(zhí)行哪一個步驟,相應的就要刪掉其對應的標志文件。假如你想重新編譯某軟件包源碼,只需刪掉該目錄下的.stamp_built和.stamp_target_installed,然后再編譯整個Buildroot就可以了。

Buildroot有更快捷的實現方法。

  • 執(zhí)行makeshow-targets顯示出本次配置所要編譯所有的目標,即packages。

  • 執(zhí)行make將構建并安裝該軟件包及其依賴項。

同時我們還可以通過make-,對軟件包單獨調用構建中的某一步驟,如下:

Package-specific:-Buildandinstallandallitsdependencies-source-Onlydownloadthesourcefilesfor-extract-Extractsources-patch-Applypatchesto-depends-Build's dependencies-configure-Builduptotheconfigurestep-build-Builduptothebuildstep-graph-depends-Generateagraphof's dependencies-dirclean-Removebuilddirectory-reconfigure-Restartthebuildfromtheconfigurestep-rebuild-Restartthebuildfromthebuildstep

因此,如果我們想重新編譯xxx模塊軟件包,執(zhí)行makexxx-rebuild即可。

關于make的更多用法,可通過makehelp獲得。

新增本地源碼包

以上介紹都是在 Buildroot 已有源碼包的情況下,我們去選擇打開編譯即可,如果 Buildroot沒有或者我們自己寫的應用該如何集成到 Buildroot ?

Buildroot 支持多種模塊編譯方式,包括 generic-package、cmake-package、autotools-package 等,我們以 generic-package 舉例說明。

例子:buildroot/package/rockchip/fireflydemo

  • 創(chuàng)建工程目錄

buildroot/package/rockchip/fireflydemo/
  • 新建 Config.in

config BR2_PACKAGE_FIREFLYDEMO bool"Simple Firefly Demo"
  • 新建 fireflydemo.mk,填入以下內容,其中源碼目錄指向 external/fireflydemo/src/

################################################################ fireflydemo###############################################################ifeq ($(BR2_PACKAGE_FIREFLYDEMO), y)FIREFLYDEMO_VERSION:=1.0.0FIREFLYDEMO_SITE=$(TOPDIR)/../external/fireflydemo/srcFIREFLYDEMO_SITE_METHOD=localdefine FIREFLYDEMO_BUILD_CMDS$(TARGET_MAKE_ENV)$(MAKE)CC=$(TARGET_CC)CXX=$(TARGET_CXX)-C$(@D)endefdefine FIREFLYDEMO_CLEAN_CMDS$(TARGET_MAKE_ENV)$(MAKE)-C$(@D)cleanendefdefine FIREFLYDEMO_INSTALL_TARGET_CMDS$(TARGET_MAKE_ENV)$(MAKE)-C$(@D)installendefdefine FIREFLYDEMO_UNINSTALL_TARGET_CMDS$(TARGET_MAKE_ENV)$(MAKE)-C$(@D)uninstallendef$(eval$(generic-package))endif
  • 創(chuàng)建源碼目錄

external/fireflydemo/src/
  • 編寫源碼 demo.c

#include#includeintmain(intargc,char*argv[]){printf("hello world\n");return0;}
  • 編寫Makefile

DEPS=OBJ=demo.oCFLAGS=%.o:%.c$(DEPS)$(CC)-c -o$@$<$(CFLAGS)demo:$(OBJ)$(CXX)-o$@$^$(CFLAGS).PHONY:cleanclean:rm -f *.o *~ demo.PHONY:installinstall:cp -f demo$(TARGET_DIR)/usr/bin/.PHONY:uninstalluninstall:rm -f$(TARGET_DIR)/usr/bin/demo
  • 在將新建包加入到 Buildroot 編譯系統(tǒng)內;

  • 修改 package/rockchip/Config.in 最后加入下面這行:

source"package/rockchip/fireflydemo/Config.in"
  • 配置選擇包,make menuconfig 然后選上 fireflydemo 包;

  • 編譯: make fireflydemo

  • 打包進文件系統(tǒng):make

  • 修改源碼后重新編譯包:make fireflydemo-rebuild

fs-overlay

默認編譯出來根文件系統(tǒng),有些配置文件可能不能滿足客制化需求,這時候 fs-overlay 就能排上用場,fs-overlay 目錄會在編譯的最后階段替換到文件系統(tǒng)目錄,打包進根文件系統(tǒng)。 fs-overlay路徑由默認配置文件指定:

BR2_ROOTFS_OVERLAY="board/rockchip/rk3308/fs-overlay"
Rootfs 切換為 ext2

Rootfs 可配置為可讀寫 ext2 文件系統(tǒng),方便系統(tǒng)調試使用。

  • 修改 Kernel 中 bootargs 配置:

diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3308-firefly.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3308-firefly.dtsi index acd0dab..939db3c 100644 --- a/kernel/arch/arm64/boot/dts/rockchip/rk3308-firefly.dtsi +++ b/kernel/arch/arm64/boot/dts/rockchip/rk3308-firefly.dtsi @@ -11,7 +11,7 @@ compatible = "firefly,rk3308-firefly", "firefly,rk3308"; chosen { - bootargs = "earlycon=uart8250,mmio32,0xff0c0000 swiotlb=1 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=squashfs rootwait"; + bootargs = "earlycon=uart8250,mmio32,0xff0c0000 swiotlb=1 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=ext2 rootwait"; }; adc-keys {
  • 修改device/rockchip/rk3308/rockimg/對應的 parameter 文件,確保 rootfs 分區(qū)大小足夠存放分區(qū)鏡像。

  • 修改 device\rockchip\rk3308\BoardConfig.mk 中 rootfs 文件系統(tǒng)類型:

diff --git a/device/rockchip/rk3308/BoardConfig.mk b/device/rockchip/rk3308/BoardConfig.mk index abb9e96..97662b3 100755 --- a/device/rockchip/rk3308/BoardConfig.mk +++ b/device/rockchip/rk3308/BoardConfig.mk @@ -28,7 +28,7 @@ TARGET_PRODUCT=rk3308 # Set rootfs type, see buildroot. # ext4 squashfs -ROOTFS_TYPE=squashfs +ROOTFS_TYPE=ext2 # Set data partition type. # ext2 squashfs
  • rootfs 分區(qū) ext2 文件系統(tǒng)鏡像會自動打包生成,也可以直接在以下路徑獲取:

buildroot/output/firefly_rk3308_release/images/rootfs.ext2
外部存儲設備

TF卡設備掛載目錄:/sdcard

U盤設備掛載目錄:/udisk

支持文件系統(tǒng)格式:ext2,vfat,ntfs等。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11229

    瀏覽量

    208927
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6085

    瀏覽量

    35216
  • Firefly
    +關注

    關注

    2

    文章

    538

    瀏覽量

    6988
  • RK3308
    +關注

    關注

    1

    文章

    39

    瀏覽量

    1112
  • Buildroot
    +關注

    關注

    1

    文章

    48

    瀏覽量

    1384
收藏 人收藏

    評論

    相關推薦

    一文詳解RK3308開發(fā)板Qt開發(fā)的流程

    應用程序,而無需下載編譯 SDK 代碼。在SDK中編譯QT工具鏈準備工作:Ubuntu系統(tǒng)RK3308 Linux SDKQt Creator開發(fā)板:ROC-RK3308B-CC 或者
    發(fā)表于 08-16 16:58

    使用DKCook進行ROC-RK3308-CC Buildroot SDK的編譯

    Docker鏡像內配置好了編譯SDK所需的依賴環(huán)境,無需在本地配置編譯環(huán)境,進入對應的docker容器內進行SDK編譯即可。目前暫時只支持ROC-RK3308-CC Buildroot SDK的編譯。安裝
    發(fā)表于 08-22 17:19

    firefly RK3308開發(fā)板ROC-RK3308-CC四核64位AIOT主板規(guī)格

    ROC-RK3308-CC 四核64位AIOT主板
    的頭像 發(fā)表于 11-03 11:08 ?4922次閱讀
    firefly <b class='flag-5'>RK3308</b><b class='flag-5'>開發(fā)</b>板ROC-<b class='flag-5'>RK3308-CC</b>四核64位AIOT<b class='flag-5'>主板</b>規(guī)格

    fireflyROC-RK3308B-CC固件編譯工具簡介

    Docker鏡像內配置好了編譯SDK所需的依賴環(huán)境,無需在本地配置編譯環(huán)境,進入對應的docker容器內進行SDK編譯即可。 目前暫時只支持ROC-RK3308B-CC Buildroot SDK
    的頭像 發(fā)表于 12-20 09:30 ?1962次閱讀

    fireflyROC-RK3308B-CC--啟動模式說明

    ROC-RK3308B-CC 有著非常靈活的啟動方式。一般情況下,除非硬件損壞,ROC-RK3308B-CC 主板是不會變磚的。
    的頭像 發(fā)表于 12-20 09:20 ?2895次閱讀

    fireflyROC-RK3308B主板CC教程簡介

    確認主板配件連接無誤后,通過 USB Type-C 線給 ROC-RK3308B-CC 供電。
    的頭像 發(fā)表于 12-20 09:32 ?2325次閱讀

    微雪電子RK3308主板CC啟動模式介紹

    ROC-RK3308-CC 有著非常靈活的啟動方式。一般情況下,除非硬件損壞,ROC-RK3308-CC 主板是不會變磚的。
    的頭像 發(fā)表于 12-23 15:47 ?2485次閱讀

    微雪電子RK3308主板CC上手介紹

    確認主板配件連接無誤后,通過 USB Type-C 線給 ROC-RK3308-CC 供電。
    的頭像 發(fā)表于 12-23 15:50 ?2322次閱讀

    Core 3308Y固件ROC RK3308B CC PLUS Buildroot NoUI

    電子發(fā)燒友網站提供《Core 3308Y固件ROC RK3308B CC PLUS Buildroot NoUI.txt》資料免費下載
    發(fā)表于 09-13 10:01 ?1次下載
    Core <b class='flag-5'>3308</b>Y固件ROC <b class='flag-5'>RK3308B</b> <b class='flag-5'>CC</b> PLUS <b class='flag-5'>Buildroot</b> NoUI

    Core 3308Y固件ROC RK3308B CC PLUS Buildroot MiniGUI

    電子發(fā)燒友網站提供《Core 3308Y固件ROC RK3308B CC PLUS Buildroot MiniGUI.txt》資料免費下載
    發(fā)表于 09-13 10:00 ?3次下載
    Core <b class='flag-5'>3308</b>Y固件ROC <b class='flag-5'>RK3308B</b> <b class='flag-5'>CC</b> PLUS <b class='flag-5'>Buildroot</b> MiniGUI

    ROC RK3308B CC PLUS Buildroot QT Desktop固件

    電子發(fā)燒友網站提供《ROC RK3308B CC PLUS Buildroot QT Desktop固件.txt》資料免費下載
    發(fā)表于 09-13 10:08 ?0次下載
    ROC <b class='flag-5'>RK3308B</b> <b class='flag-5'>CC</b> PLUS <b class='flag-5'>Buildroot</b> QT Desktop固件

    Core 3308Y固件ROC RK3308B CC Buildroot NoUI固件

    電子發(fā)燒友網站提供《Core 3308Y固件ROC RK3308B CC Buildroot NoUI固件.txt》資料免費下載
    發(fā)表于 09-13 09:51 ?0次下載
    Core <b class='flag-5'>3308</b>Y固件ROC <b class='flag-5'>RK3308B</b> <b class='flag-5'>CC</b> <b class='flag-5'>Buildroot</b> NoUI固件

    ROC RK3308B CC Buildroot Qt Desktop固件

    電子發(fā)燒友網站提供《ROC RK3308B CC Buildroot Qt Desktop固件.txt》資料免費下載
    發(fā)表于 09-13 09:49 ?0次下載
    ROC <b class='flag-5'>RK3308B</b> <b class='flag-5'>CC</b> <b class='flag-5'>Buildroot</b> Qt Desktop固件

    IoT四核64位開源主板ROC RK3308B CC規(guī)格書

    電子發(fā)燒友網站提供《IoT四核64位開源主板ROC RK3308B CC規(guī)格書.pdf》資料免費下載
    發(fā)表于 09-13 09:35 ?1次下載
    IoT四核64位開源<b class='flag-5'>主板</b>ROC <b class='flag-5'>RK3308B</b> <b class='flag-5'>CC</b>規(guī)格書

    四核64位開源主板ROC RK3308B CC Plus規(guī)格書

    電子發(fā)燒友網站提供《四核64位開源主板ROC RK3308B CC Plus規(guī)格書.pdf》資料免費下載
    發(fā)表于 09-13 09:33 ?0次下載
    四核64位開源<b class='flag-5'>主板</b>ROC <b class='flag-5'>RK3308B</b> <b class='flag-5'>CC</b> Plus規(guī)格書