衡阳派盒市场营销有限公司

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

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

3天內不再提示

Firefly-RK3399 Buildroot 固件介紹

firefly ? 來源:firefly ? 作者:firefly ? 2019-11-23 10:58 ? 次閱讀
編譯 Buildroot 固件

本章介紹 Buildroot 固件的編譯使用。

準備工作
下載源碼

下載repo工具:

mkdir linux cd linux git clone https://github.com/FireflyTeam/repo.git

下載 Linux-SDK:

  • 方法一

mkdir linux-sdk cd linux-sdk # 初始化repo倉庫 ../repo/repo init --repo-url https://github.com/FireflyTeam/repo.git -u https://github.com/FireflyTeam/manifests.git -b linux-sdk -m rk3399/rk3399_linux_release.xml # 同步源碼 ../repo/repo sync -c
  • 方法二

下載Linux_SDK.7z

# 把壓縮包放在上一步下載repo工具的目錄下 7z x Linux_SDK.7z # 更新代碼 repo sync -c
配置編譯環境

安裝編譯所需工具,確保工具都正確安裝:

sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler \ gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools \ linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make \ binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget \ libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client \ subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo \ liblz4-tool genext2fs lib32stdc++6
編譯SDK
配置編譯文件

選擇開發板對應的配置文件。配置文件會鏈接到 device/rockchip/.BoardConfig.mk,查看該文件可確認當前所使用的配置文件:

./build.sh firefly-rk3399.mk # 文件路徑在 `device/rockchip/rk3399/firefly-rk3399.mk`

.mk 文件默認配置為編譯 Buildroot 固件,下面對 Buildroot 相關配置進行說明:

# Buildroot config export RK_CFG_BUILDROOT=rockchip_rk3399 # Buildroot 根文件系統配置文件 # 文件路徑在 `buildroot/configs/rockchip_rk3399_defconfig`
# Recovery config export RK_CFG_RECOVERY=rockchip_rk3399_recovery # recovery 模式下根文件系統配置文件(可省略) # 文件路徑在 `buildroot/configs/rockchip_rk3399_recovery_defconfig`
# rootfs image path export RK_ROOTFS_IMG=buildroot/output/$RK_CFG_BUILDROOT/images/rootfs.$RK_ROOTFS_TYPE # Buildroot 根文件系統鏡像路徑 # 本例中,文件路徑在 `buildroot/output/rockchip_rk3399/images/rootfs.ext4` # 注:該文件路徑將在首次編譯根文件系統后生成

執行編譯命令時,將會根據 .mk 文件進行編譯。

全自動編譯

全自動編譯會編譯并打包固件 update.img,生成固件目錄 rockdev/

./build.sh
部分編譯
  • 編譯 kernel

./build.sh kernel
  • 編譯 u-boot

./build.sh uboot
  • 編譯 rootfs

編譯 Buildroot 根文件系統,將會在 buildroot/output 生成編譯輸出目錄:

./build.sh buildroot # 注:確保作為普通用戶編譯 Buildroot 根文件系統,避免不必要的錯誤。編譯過程中會自動下載所需軟件包,請保持聯網狀態
固件打包
更新鏈接

為確保 rockdev/ 目錄下文件鏈接正確,更新各部分鏡像鏈接:

./mkfirmware.sh
打包固件

rockdev 目錄的各部分鏡像打包成固件 update.img

./build.sh updateimg
Buildroot 介紹
output 目錄

Buildroot 編譯輸出結果保存在 output 目錄,具體目錄由配置文件決定,本例保存在 buildroot/output/rockchip_rk3399 目錄,后續可以在該目錄執行 make 編譯根文件系統。

采用全自動編譯方式時,默認會生成 buildroot/output/rockchip_rk3399_recovery 目錄,這是 recovery 的編譯輸出目錄。

子目錄說明:

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

  • host/ 主機端編譯需要的工具包括交叉編譯工具。

  • images/ 包含壓縮好的根文件系統鏡像文件。

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

  • target/ 包含完整的根文件系統,對比 staging/,它沒有開發文件,不包含頭文件,二進制文件也經過 strip 處理。

自定義 Buildroot

下文將介紹一些自定義 Buildroot 的方法。

模塊配置

默認編譯好的根文件系統不一定滿足我們的需求,我們可能需要增加一些第三方包,或者修改包的配置選項,Buildroot 支持圖形化方式去做選擇配置:

cd buildroot/output/rockchip_rk3399/ # 進入圖形化配置界面,選擇所需模塊,保存退出 make menuconfig # 保存到配置文件 'buildroot/configs/rockchip_rk3399_defconfig' make savedefconfig #編譯 Buildroot 根文件系統 make

需要了解的是:

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

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

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

busybox 配置修改

busybox 用于管理系統的命令工具,可按如下方式修改:

cd buildroot/output/rockchip_rk3399/ # 進入圖形化配置界面,選擇所需工具,退出保存 make busybox-menuconfig # 保存到配置文件 `board/rockchip/common/base/busybox.config` make busybox-update-config make

文件系統覆蓋

文件系統覆蓋是指在目標文件系統編譯完成后將文件覆蓋到文件系統目錄。通過這種方式,我們可以簡單的添加或修改一些文件:

  • 本例覆蓋目錄 buildroot/board/rockchip/rk3399/fs-overlay-64

  • 公有覆蓋目錄 buildroot/board/rockchip/common

例:buildroot/board/rockchip/rk3399/fs-overlay-64/etc/input-event-daemon.conf 將覆蓋文件系統的 /etc/input-event-daemon.conf 文件。


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

    關注

    87

    文章

    11345

    瀏覽量

    210385
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35611
  • Firefly
    +關注

    關注

    2

    文章

    538

    瀏覽量

    7129
  • Buildroot
    +關注

    關注

    1

    文章

    48

    瀏覽量

    1415
收藏 人收藏

    評論

    相關推薦

    Firefly-RK3399 人臉識別 SDK 發布

    ` 本帖最后由 Developer_x 于 2017-6-19 11:14 編輯 利用Firefly-RK3399核心板與底板的組合,搭配上Firefly人臉識別SDK,我們可以實現各種人臉識別應用。掃描視頻中的二維碼或到Firef
    發表于 06-13 14:20

    Firefly-RK3399 Android8.1固件,可調用神經網絡API進行硬件加速

    本帖最后由 人間煙火123 于 2018-7-31 17:45 編輯 Firefly-RK3399 Android8.1 固件支持Android Neural Networks API
    發表于 07-31 17:42

    如何在Firefly-RK3399上編譯和移植Linux內核和Ubuntu16.04 rootfs?

    Firefly-RK3399移植Ubuntu16.04的過程是怎樣的?如何在Firefly-RK3399上編譯和移植Linux內核和Ubuntu16.04 rootfs?
    發表于 03-07 07:13

    Firefly-RK3399燒寫Ubuntu系統校驗芯片和固件失敗怎么解決?

    Firefly-RK3399燒寫Ubuntu系統校驗芯片和固件失敗怎么解決?
    發表于 03-07 07:24

    如何對Firefly-RK3399 Linux內核進行編譯呢

    如何對Firefly-RK3399 Linux內核進行編譯呢?有哪些基本流程?
    發表于 03-08 07:16

    如何對Firefly-RK3399進行編譯呢

    如何對Firefly-RK3399進行編譯呢?
    發表于 03-08 07:16

    Firefly-RK3399板卡上電默認啟動Android系統

    運行的時候整體上非常流暢,能應付大多數場合下的需求。Firefly此前發布的產品都堪稱經典,Firefly-RK3399也同樣不例外,目前已經提供Android 7.1的源碼和固件,要知道很多
    發表于 06-21 10:05

    Firefly RK3399開源板的雙目攝像頭數據采集方案

    把Demo固件(下載鏈接 在文章結尾)燒錄到Firefly-RK3399開源板,系統自帶雙攝像頭測試軟件CameraExample。
    的頭像 發表于 10-29 10:13 ?7666次閱讀

    Firefly-RK3399--接口介紹

    Firefly-RK3399 提供了豐富的接口,主要包括:電源接口,
    的頭像 發表于 11-19 15:25 ?3938次閱讀
    <b class='flag-5'>Firefly-RK3399</b>--接口<b class='flag-5'>介紹</b>

    Firefly-RK3399--FAQs簡介

    Firefly-RK3399 的 HDMI 能自動識別顯示的分辨率。
    的頭像 發表于 11-19 15:27 ?3271次閱讀
    <b class='flag-5'>Firefly-RK3399</b>--FAQs簡介

    Firefly-RK3399開發板

    Firefly-RK3399 開發板分別帶有兩個MIPI,一個DVP攝像頭接口,MIPI支持最高4K拍照,并支持 1080P 30fps以上視頻錄制。此外,開發板還支持 USB 攝像頭。
    的頭像 發表于 11-23 09:34 ?4821次閱讀
    <b class='flag-5'>Firefly-RK3399</b>開發板

    Firefly-RK3399--LED 介紹

    標準的 Linux 專門為 LED 設備定義了 LED 子系統。 在 Firefly-RK3399 開發板中的兩個 LED 均以設備的形式被定義。
    的頭像 發表于 11-22 10:13 ?3581次閱讀
    <b class='flag-5'>Firefly-RK3399</b>--LED <b class='flag-5'>介紹</b>

    Firefly-RK3399--LCD介紹

    Firefly-RK3399開發板外置了兩個LCD屏接口,一個是EDP,一個是MIPI
    的頭像 發表于 11-22 10:17 ?6479次閱讀
    <b class='flag-5'>Firefly-RK3399</b>--LCD<b class='flag-5'>介紹</b>

    Firefly-RK3399開發板介紹

    Firefly-RK3399有靈活的啟動方式。一般情況下,除非硬件損壞,Firefly-RK3399開發板是不會變磚的。
    的頭像 發表于 11-23 11:30 ?3519次閱讀
    <b class='flag-5'>Firefly-RK3399</b>開發板<b class='flag-5'>介紹</b>

    Firefly-RK3399產品規格書

    Firefly-RK3399產品規格書
    發表于 07-16 10:50 ?3次下載
    真人百家乐官网平台下载| 真人百家乐信誉| bet365| 金臂百家乐开户送彩金| 网上玩百家乐官网技巧| 汇丰百家乐娱乐城| 威尼斯人娱乐城在线赌博网站| 杨公24山属性| 百家乐官网太阳城娱乐城| 金濠国际| 百家乐看单技术| 大发888网页版登录| 百家乐伴侣| 百家乐娱乐城彩金| 视频百家乐官网是真是假| 那曲县| 大发888在线扑| 威尼斯人娱乐城信誉| 百家乐赌博策略| 百家乐庄闲的冷热| 乐中百家乐官网的玩法技巧和规则 | 黄金城百家乐官网下载| 百家乐官网等投注网改单| 澳门赌场分布| 大发888娱乐城 casino| 大佬百家乐的玩法技巧和规则| 玩百家乐游戏经验| 百家乐官网最新首存优惠| 百家乐赌球| 百家乐官方网站| 大发888娱乐客户端下载| 威尼斯人娱乐棋牌下载| 百家乐专业赌徒| 百家乐现实赌场| 澳门百家乐官网官方网站| 免费百家乐官网统计软件| 百家乐官网微笑不倒| 百家乐官网PK| 武强县| 网上百家乐官网有假的吗| 88百家乐官网现金网|