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

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

3天內(nèi)不再提示

Firefly-RK3288編譯 固件介紹

firefly ? 來源:firefly ? 作者:firefly ? 2019-11-27 08:53 ? 次閱讀
編譯 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 rk3288/rk3288_linux_release.xml # 同步源碼 ../repo/repo sync -c
  • 方法二

下載 Linux-SDK GPT源碼包

# 把壓縮包放在上一步下載repo工具的目錄下 7z x linux-sdk-3288.7z # 更新代碼 repo sync -c
配置編譯環(huán)境

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

  • 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 lib32stdc++6 $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
  • Ubuntu 16.04 軟件包安裝
sudo apt-get install git gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler mtools \ parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools libssl-dev \ autotools-dev libsigsegv2 m4 libdrm-dev curl sed make binutils build-essential gcc g++ bash \ patch gzip bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-dev openssh-client lib32stdc++6
  • 安裝 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
編譯SDK
配置編譯文件

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

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

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

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

執(zhí)行編譯命令時,將會根據(jù) .mk 文件進行編譯。

全自動編譯

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

./build.sh
部分編譯
  • 編譯 kernel
./build.sh kernel
  • 編譯 u-boot
./build.sh uboot
  • 編譯 rootfs

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

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

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

./mkfirmware.sh
打包固件

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

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

Buildroot 編譯輸出結(jié)果保存在 output 目錄,具體目錄由配置文件決定,本例保存在 buildroot/output/rockchip_rk3288 目錄,后續(xù)可以在該目錄執(zhí)行 make 編譯根文件系統(tǒng)。

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

子目錄說明:

  • build/ 包含所有的源文件,包括 Buildroot 所需主機工具和選擇的包,這個目錄包含所有 模塊源碼。
  • host/ 主機端編譯需要的工具包括交叉編譯工具。
  • images/ 包含壓縮好的根文件系統(tǒng)鏡像文件。
  • staging/ 這個目錄類似根文件系統(tǒng)的目錄結(jié)構(gòu),包含編譯生成的所有頭文件和庫,以及其他開發(fā)文件,不過他們沒有裁剪,比較龐大,不適用于目標文件系統(tǒng)。
  • target/ 包含完整的根文件系統(tǒng),對比 staging/,它沒有開發(fā)文件,不包含頭文件,二進制文件也經(jīng)過 strip 處理。
自定義 Buildroot

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

模塊配置

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

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

需要了解的是:

  • 進行編譯時,Buildroot 根據(jù)配置,會自動從網(wǎng)絡(luò)獲取相關(guān)的軟件包,包括一些第三方庫,插件,實用工具等,放在dl/目錄。
  • 軟件包會解壓在 output/build/ 目錄下,然后進行編譯。
  • 如果要修改軟件包的源碼,可以通過打補丁的方式進行修改,補丁集中放在 package/ 目錄,Buildroot 會在解壓軟件包時為其打上相應(yīng)的補丁。

busybox 配置修改

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

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

文件系統(tǒng)覆蓋

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

  • 本例覆蓋目錄 buildroot/board/rockchip/rk3288/fs-overlay
  • 公有覆蓋目錄 buildroot/board/rockchip/common

例:buildroot/board/rockchip/rk3288/fs-overlay/etc/firmware 將覆蓋文件系統(tǒng)的 /etc/firmware 文件。


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

    關(guān)注

    87

    文章

    11171

    瀏覽量

    208474
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6083

    瀏覽量

    35097
  • Firefly
    +關(guān)注

    關(guān)注

    2

    文章

    538

    瀏覽量

    6946
收藏 人收藏

    評論

    相關(guān)推薦

    在Windows10系統(tǒng)下為Firefly-RK3288燒寫固件

    目錄概述準備安裝Firefly 官方燒寫固件教程Firefly 韋東山版燒寫固件教程韋東山出的還帶有SD卡啟動的教程概述在Windows10系統(tǒng)下為
    發(fā)表于 11-05 06:12

    Firefly-RK3288燒錄自己編譯的Android 5.1的鏡像后一直不動怎么解決?

    Firefly-RK3288燒錄自己編譯的Android 5.1的鏡像后一直不動如何解決?
    發(fā)表于 03-03 06:05

    怎樣在Windows10系統(tǒng)下為Firefly-RK3288燒寫固件

    怎樣在Windows10系統(tǒng)下為Firefly-RK3288燒寫固件呢?有哪些燒寫步驟呢?
    發(fā)表于 03-03 06:55

    為什么Firefly-RK3288主板燒寫Android固件會失敗呢

    為什么Firefly-RK3288主板燒寫Android固件會失敗呢?怎樣去解決這個問題呢?
    發(fā)表于 03-04 07:53

    教你怎樣從零開始搭建Firefly-RK3288的開發(fā)板的編譯環(huán)境

    教你怎樣從零開始搭建Firefly-RK3288的開發(fā)板的編譯環(huán)境
    發(fā)表于 03-10 07:32

    怎樣去搭建一種Firefly-RK3288編譯環(huán)境呢

    怎樣去搭建一種Firefly-RK3288編譯環(huán)境呢?有哪些步驟?
    發(fā)表于 03-10 06:08

    Firefly-RK3288用戶指南

    Firefly-RK3288 是一個高性能平臺,它擁有強大的多線程運算能力、圖形處理能力以及硬件解碼能力,支持 Android 4.4 和 Ubuntu 雙系統(tǒng),也是一臺強大的微型
    發(fā)表于 10-10 07:35

    Firefly-RK3288--教程

    Firefly-RK3288 的標準套裝包含以下配件:   Firefly-RK3288 主板一塊   WiFi 天線   亞克力
    的頭像 發(fā)表于 11-11 16:04 ?4440次閱讀
    <b class='flag-5'>Firefly-RK3288</b>--教程

    Firefly-RK3288--外殼

    外殼 Firefly-RK3288 CAD圖
    的頭像 發(fā)表于 11-25 10:14 ?1138次閱讀
    <b class='flag-5'>Firefly-RK3288</b>--外殼

    Firefly-RK3288開發(fā)板介紹

    Firefly-RK3288 開發(fā)板內(nèi)置 5 路 UART,分別為 uart0,uart1,uart2,uart3,uart4。 uart0 為 uart_bt,用于藍牙傳輸。
    的頭像 發(fā)表于 11-25 10:27 ?2888次閱讀
    <b class='flag-5'>Firefly-RK3288</b>開發(fā)板<b class='flag-5'>介紹</b>

    Firefly-RK3288PWM輸出介紹

    Firefly-RK3288 開發(fā)板上有 4 路 PWM 輸出,分別為 PWM0 ~ PWM3, 本章主要描述如何配置 PWM。
    的頭像 發(fā)表于 11-25 10:31 ?2175次閱讀

    Firefly-RK3288 LED介紹

    Firefly-RK3288 開發(fā)板上有 2 個 LED 燈
    的頭像 發(fā)表于 11-25 10:39 ?2466次閱讀
    <b class='flag-5'>Firefly-RK3288</b> LED<b class='flag-5'>介紹</b>

    Firefly-RK3288--IR主板介紹

    Firefly-RK3288/Firefly-RK3288-Reload開發(fā)板上使用紅外收發(fā)傳感器 IR (在 USB OTG 接口和音頻接口之間)實現(xiàn)遙控功能。
    的頭像 發(fā)表于 11-26 17:10 ?2755次閱讀
    <b class='flag-5'>Firefly-RK3288</b>--IR主板<b class='flag-5'>介紹</b>

    Firefly-RK3288主板啟動教程

    RK3288 有靈活的啟動方式。一般情況下,除非硬件損壞,Firefly-RK3288 開發(fā)板是不會變磚的。
    的頭像 發(fā)表于 11-27 09:14 ?6232次閱讀
    <b class='flag-5'>Firefly-RK3288</b>主板啟動教程

    Firefly-RK3288產(chǎn)品規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《Firefly-RK3288產(chǎn)品規(guī)格書.pdf》資料免費下載
    發(fā)表于 09-15 16:12 ?3次下載
    <b class='flag-5'>Firefly-RK3288</b>產(chǎn)品規(guī)格書