日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Rk3288运行linux,查看“Firefly-rk3288 build linux”的源代码

發布時間:2024/10/8 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Rk3288运行linux,查看“Firefly-rk3288 build linux”的源代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為以下原因,您沒有權限編輯本頁:

您所請求的操作僅限于該用戶組的用戶使用:用戶

該頁面已被保護以防止編輯和其他操作。

您可以查看與復制此頁面的源代碼。=編譯firefly linux-SDK系統=

注意:此章節操作均在我們提供的資料光盤以及vmware ubuntu18.04進行過測試,確保其可用。

==獲取源碼==

*下載源碼

*firefly-rk3288 firefly-sdk開發SDK以及參考資料地址

:*鏈接:https://eyun.baidu.com/s/3o92a6vC 密碼:SVdn

*解壓源碼

使用FileZilla或其它軟件上傳下載后的linux-sdk源碼包,讓后通過7z工具進行解壓。

7z x linux3288-sdk.7z.001

*同步源碼

repo sync -c

如果提示repo命令不存在,請使用手動下載安裝,或者使用我們提供的。

==編譯前配置:==

在device/rockchip/rk3288/目錄下,選擇對應的板型的配置文件,本文例子:確定選用rk3288/firefly-rk3288.mk

*firefly-rk3288.mk 相關配置介紹:

**Target arch 指定編譯目標架構,這里指定 32位ARM架構

export RK_ARCH=arm

**Uboot defconfig 指定 u-boot配置文件

export RK_UBOOT_DEFCONFIG=firefly-rk3288

**Kernel defconfig 指定kernel配置文件

export RK_KERNEL_DEFCONFIG=firefly_linux_defconfig

**Kernel dts 指定使用那個dts文件

export RK_KERNEL_DTS=rk3288-firefly

** parameter for GPT table 指定系統鏡像的分區表

export RK_PARAMETER=parameter-ubuntu.txt

**rootfs image path 根文件系統生成的路徑

export RK_ROOTFS_IMG=buildroot/output/$RK_CFG_BUILDROOT/images/rootfs.$RK_ROOTFS_TYPE

==配置Rootfs==

源碼中默認的Linux rootfs是buildroot,如果rootfs使用buildroot,跳過此步,如果用戶需要使用Ubuntu,需要通過以下步驟來配置:

#下載根文件系統:ubuntu16.04 根文件系統(32位),放到SDK路徑下;

#該文件為7z壓縮包,解壓該文件;

7z x ubuntu1604armhf-rootfs.7z

#完成上述后,得到ubuntu1604armhf-rootfs.img(2.6G),拷貝根文件系統到rootfs目錄下;

cp ubuntu1604armhf-rootfs.img rootfs/

#在device/rockchip/rk3288/firefly-rk3288.mk中, 將“# rootfs image path”修改為:

export RK_ROOTFS_IMG=rootfs/ubuntu1604armhf-rootfs.img

===配置板型===

根據各個板型和配件的差別,內核中使用的DTS也有差別,如果是標配板型,跳過此步,如果板型有VGA或者LCD等支持,需要在.BoardConfig.mk中做對應的修改。

Firefly-rk3288

* 標配:

export RK_KERNEL_DTS=rk3288-firefly

* 帶VGA:

export RK_KERNEL_DTS=rk3288-firefly-vga

==編譯配置文件:==

./build.sh firefly-rk3288.mk

運行完上述腳本后,在device/rockchip/目錄下,生成.BoardConfig.mk 軟鏈接 device/rockchip/rk3288/firefly-rk3288.mk

*完全編譯

完全編譯運行如下命令,包含 kernel 、uboot、buildroot、recovery。 如果用戶使用buildroot,可以使用完全編譯。如果用戶使用Ubuntu系統,則不需要使用完全編譯。

./build.sh

注意:該腳本默認編譯buildroot根文件系統,若用戶需要用的根文件系統是Debian或者Ubuntu16.04時,

請!先!將!對應的根文件系統準備好,不然在執行該build.sh腳本時,會在整理分區鏡像、打包固件時出錯,這部分操作在以下的'''部分編譯'''中'''編譯rootfs'''有詳細說明,按照操作執行即可!

build.sh腳本運行完成后,會將分區鏡像和統一固件update.img放在 rockdev/ 目錄下,同時創建IMAGE/目錄備份。

==模塊化編譯:==

===編譯u-boot:===

./build.sh uboot

===編譯kernel:===

./build.sh kernel

==編譯rootfs:==

本SDK支持三種根文件系統,分別是buildroot、Debian、Ubuntu;

===編譯Buildroot系統鏡像===

編譯 Buildroot 環境搭建所依賴的軟件包安裝命令如下:

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

搭建環境完成后,編譯buildroot,執行如下命令:

./build.sh rootfs

===編譯Ubuntu16.04===

*1.下載根文件系統:ubuntu16.04 根文件系統(32位),放到SDK路徑下;

*2.該文件為7z壓縮包,解壓該文件;

7z x ubuntu1604armhf-rootfs.7z

*3.完成上述后,得到ubuntu1604armhf-rootfs.img(2.6G),拷貝根文件系統到rootfs目錄下;

cp ubuntu1604armhf-rootfs.img rootfs/

補充說明:

./build.sh --help

====USAGE: build.sh modules====

uboot -build uboot

kernel -build kernel

rootfs -build default rootfs, currently build buildroot as default

buildroot -build buildroot rootfs

yocto -build yocto rootfs, currently build ros as default

ros -build ros rootfs

debian -build debian rootfs

pcba -build pcba

recovery -build recovery

all -build uboot, kernel, rootfs, recovery image

cleanall -clean uboot, kernel, rootfs, recovery

firmware -pack all the image we need to boot up system

updateimg -pack update image

sdbootimg -pack sdboot image

save -save images, patches, commands used to debug

default -build all modules

BoardConfig -select the corresponding BoardConfig.mk file

recovery分區在Ubuntu系統中不會用到,若有需要,可運行如下命令:

./build.sh recovery

==打包固件==

===parameter分區表===

parameter.txt文件中包含了固件的重要信息,如以rk3288為例: 路徑:device/rockchip/rk3288/parameter-ubuntu.txt

FIRMWARE_VER: 8.1 固件版本

MACHINE_MODEL:rk3288 固件板型

MACHINE_ID:007

MANUFACTURER:RK3288

MAGIC: 0x5041524B

ATAG: 0x00200800

MACHINE: 3288

CHECK_MASK: 0x80

PWR_HLD: 0,0,A,0,1

TYPE: GPT 分區類型

CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(trust),0x00010000@0x0000a000(boot),0x00010000@0x0002a000(backup),-@0x0005a000(rootfs:grow)

uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9

CMDLINE屬性是我們關注的地方,以uboot為例 0x00002000@0x00004000(uboot)中0x00004000為uboot分區的起始位置0x00002000為分區的大小,后面相同,用戶可以根據自己需要增減或者修改分區信息,但是請最少保留uboot,trust,boot,rootfs分區,這是機器能正常啟動的前提條件。

*分區介紹:

uboot 分區: uboot編譯出來的 uboot.img.

trust 分區: uboot編譯出來的 trust.img

misc 分區: misc.img開機檢測進入recovery模式.(可省略)

boot 分區: 編譯出來的 boot.img包含kernel和設備樹信息.

recovery 分區: 燒寫 recovery.img.(可省略)

backup 分區: 預留,暫時沒有用。后續跟 android 一樣作為 recovery 的 backup 使用.

oem 分區: 給廠家使用,存放廠家的 app 或數據,只讀,代替原來音箱的 data 分區,掛載在/oem 目錄.(可省略)

rootfs 分區: 存放 buildroot 或者 debian 編出來的rootfs.img只讀.

userdata 分區: 存放app臨時生成的文件或者是給最終用戶使用。可讀寫,掛載在/userdata目錄下.(可省略)

在parameter.txt文件中,僅僅保留了5個不可缺少的分區。

注意:若發現根文件分區大小異常時,執行如下命令:

resize2fs /dev/mmcblk2p5

===package-file===

package-file文件用于打包統一固件時確定需要的分區鏡像和鏡像路徑,同時它需要與parameter.txt文件保持一致。 路徑tools/linux/Linux_Pack_Firmware/rockdev/目錄下,以package-file為例:

# NAME Relative path

#

#HWDEF HWDEF

package-file package-file

bootloader Image/MiniLoaderAll.bin

parameter Image/parameter.txt

trust Image/trust.img

uboot Image/uboot.img

boot Image/boot.img

rootfs:grow Image/rootfs.img

backup RESERVED

===打包===

整理分區鏡像到rockdev/目錄下

./mkfirmware.sh

提示:在運行./mkfirmware時,可能會遇到如下報錯:

error: /home/ljh/proj/linux-sdk/buildroot/output/rockchip_rk3288_recovery/images/recovery.img not found!

表示recovery分區沒有找到,類似的如oem.img、userdata.img,上文提到,這些屬于可省略分區鏡像,可以不用理會。

*整合統一固件

./build.sh updateimg

注意:每次打包固件前,需要運行mkfirmware.sh腳本更新rockdev/下的分區鏡像

[[Category:ROCKCHIP]][[Category:Rk3288]] [[Category:LinuxKernel4.x??]]

總結

以上是生活随笔為你收集整理的Rk3288运行linux,查看“Firefly-rk3288 build linux”的源代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。