[RK356x] [Firefly-Linux] 10min带你了解Linux_SDK

[RK356x] [Firefly-Linux] 10min带你了解Linux_SDK_第1张图片

又是周末了,按照惯例,更新一篇,so这篇便是。之前我带大家讲述如何通过Linux_SDK编译与打包Ubuntu或Buildroot系统固件,现在就反过头来看看Linux_SDK的构造,要注意的是了解一下即可,用到哪些方面再去查才叫高效率!

文章目录

    • 一、Linux_SDK下载(已下载忽略)
    • 三、Linux_SDK介绍
      • 3.1 根目录
      • 3.2 app目录
      • 3.2 build.sh脚本
      • 3.2 buildroot目录
      • 3.3 device/rockchip/rk356x目录
      • 3.4 docs目录
      • 3.5 external目录
      • 3.6 kernel目录
      • 3.7 prebuilts/gcc/linux-x86/aarch64目录
      • 3.8 rkbin目录
      • 3.9 rockdev目录
      • 3.10 tools目录
      • 3.11 u-boot目录

一、Linux_SDK下载(已下载忽略)

进入Firefly官方进行下载,链接如下:

https://www.t-firefly.com/doc/download/107.html

大家点击以下图片中指向的地方进行下载:


下载最新版本:

首先使用md5sum进行校验:

neutionwei@x:~/Download/rk356x_linux_release_v1.2.0_20211019_split_dir$ ls
md5sum.txt
README_EN.txt
README.txt
rk356x_linux_release_v1.2.0_20211019_firefly_split.file0
rk356x_linux_release_v1.2.0_20211019_firefly_split.file1
rk356x_linux_release_v1.2.0_20211019_firefly_split.file2
rk356x_linux_release_v1.2.0_20211019_firefly_split.file3
rk356x_linux_release_v1.2.0_20211019_firefly_split.file4
neutionwei@x:~/Download/rk356x_linux_release_v1.2.0_20211019_split_dir$  md5sum *firefly_split*
b633414d69240faa0c3bd755c255ede8  rk356x_linux_release_v1.2.0_20211019_firefly_split.file0
5cb1e2b63bbb4e3595c731038f6723fd  rk356x_linux_release_v1.2.0_20211019_firefly_split.file1
e06c0f29fd5a870e0942139a1877a470  rk356x_linux_release_v1.2.0_20211019_firefly_split.file2
4e14fbf72ccbb9b87f81d83a256205b0  rk356x_linux_release_v1.2.0_20211019_firefly_split.file3
be8b003703b51e7220e52bb36439a357  rk356x_linux_release_v1.2.0_20211019_firefly_split.file4

确认与目录内的md5sum.txt文件内容无误!

根据Firefly官方维基安装必要工具:

neutionwei@32b7b9ddcaab:/$ sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool \
expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \
qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib \
unzip device-tree-compiler python-pip ncurses-dev python-pyelftools

在Ubuntu 18.04新建一个目录:

neutionwei@32b7b9ddcaab:/$ cd ~
neutionwei@32b7b9ddcaab:~$ mkdir project
neutionwei@32b7b9ddcaab:~$ cd project/
neutionwei@32b7b9ddcaab:~/project$ pwd
/home/neutionwei/project

主机使用docker命令把Linux_SDK拷贝到Docker下的Ubuntu 18.04:

neutionwei@x:~/Download$ docker cp rk356x_linux_release_v1.2.0_20211019_split_dir 32b7b9ddcaab:/home/neutionwei/project

解压缩Linux_SDK:

neutionwei@32b7b9ddcaab:~/project$ cat rk356x_linux_release_v1.2.0_20211019_split_dir/*firefly_split* | tar -xzv

三、Linux_SDK介绍

Linux系统框图:
[RK356x] [Firefly-Linux] 10min带你了解Linux_SDK_第2张图片
[RK356x] [Firefly-Linux] 10min带你了解Linux_SDK_第3张图片

3.1 根目录

Firefly官方发布的Linux_SDK虽然是基于瑞芯微原厂更改,但是并不是所有目录都进行相应的适配,这个在相应的目录使用git log即可知道,以下是根目录下各个目录与文件的介绍:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019$ tree -L 1
.
|-- Makefile -> buildroot/build/Makefile
|-- app # Rockchip App 目录
|-- br.log # 编译 SDK 过程产生的日志
|-- build.sh -> device/rockchip/common/build.sh # Linux_SDK 编译脚本
|-- buildroot # Buildroot SDK 目录
|-- debian # Debian SDK 目录(一般用不到)
|-- device # 板卡编译相关配置文件目录
|-- docs # Rockchip 开发文档目录
|-- envsetup.sh -> buildroot/build/envsetup.sh # 配置 Buildroot 编译环境脚本
|-- external # Rockchip 库目录
|-- kernel # Linux kernel SDK 目录
|-- mkfirmware.sh -> device/rockchip/common/mkfirmware.sh # rockdev 目录链接更新脚本
|-- prebuilts # 交叉编译工具链目录
|-- rkbin # Rockchip miniloader 二进制文件目录
|-- rkflash.sh -> device/rockchip/common/rkflash.sh # 烧写脚本(一般用不到)
|-- rockdev # 固件存放目录
|-- tools # Rockchip 发布的 Linux 或 Windows 工具目录
|-- u-boot # U-Boot SDK 目录
|-- ubuntu_20.04_RK3568_ext4_v2.10-51-g7ecad547_20211109-1751_DESKTOP.7z
|-- ubuntu_rootfs # Firefly 定义的 Ubuntu 文件系统存放目录
|-- yocto # Yocto SDK 目录

14 directories, 7 files

Rockchip文档中的介绍:
[RK356x] [Firefly-Linux] 10min带你了解Linux_SDK_第4张图片

3.2 app目录

app目录主要是瑞芯微发布的App Demo,还有其他一些server,其中带字母Qq开头的与QT有关,详细可以来深入研究一下:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/app$ tree -L 1
.
|-- CameraFactoryTestServer
|-- QFacialGate
|-- QLauncher
|-- aiserver
|-- dbserver
|-- eptz_demo
|-- ipc-daemon
|-- ipcweb-backend
|-- ipcweb-ng
|-- libIPCProtocol
|-- libgdbus
|-- librkdb
|-- mediaserver
|-- multivideoplayer
|-- netserver
|-- qcamera
|-- qfm
|-- qplayer
|-- qsetting
|-- rkaiq_tool_server
|-- storage_manager

21 directories, 0 files

3.2 build.sh脚本

build.sh脚本相当重要,它是Linux_SDK的编译脚本,具体用法如下:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019$ ./build.sh -h
Usage: build.sh [OPTIONS]
Available options:
*.mk               -switch to specified board config # 选择板卡配置文件
launch              -list current SDK boards and switch to specified board config # 列出当前 SDK 板卡与选择特定板卡配置文件
uboot              -build uboot # 编译 U-Boot
spl                -build spl # 编译 U-Boot spl
loader             -build loader # 编译 Rockchip miniloader
kernel             -build kernel # 编译 Linux kernel
modules            -build kernel modules # 编译 Linux kernel 模块
toolchain          -build toolchain # 编译工具链
extboot            -build extlinux boot.img, boot from EFI partition # 编译 extlinux boot.img(一般用不到)
rootfs             -build default rootfs, currently build buildroot as default # 默认编译 Buildroot 文件系统
buildroot          -build buildroot rootfs # 编译 Buildroot 文件系统
ramboot            -build ramboot image # 编译 ramboot(一般用不到)
multi-npu_boot     -build boot image for multi-npu board # 编译 multi-npu板卡 boot 镜像(一般用不到)
yocto              -build yocto rootfs # 编译 Yocto 文件系统(一般用不到)
debian             -build debian9 stretch rootfs # 编译 Debian9 文件系统(一般用不到)
distro             -build debian10 buster rootfs # 编译 Debian10 文件系统(一般用不到)
openwrt            -build openwrt rootfs # 编译 Openwrt 文件系统
pcba               -build pcba # 编译 pcba(一般用不到)
recovery           -build recovery # 编译 recovery 镜像
all                -build uboot, kernel, rootfs, recovery image # 编译全部(按照顺序编译 U-Boot、Linux Kernel、文件系统与 recovery 镜像)
cleanall           -clean uboot, kernel, rootfs, recovery # 清除 U-Boot、Linux Kernel、文件系统与 recovery 镜像
firmware           -pack all the image we need to boot up system # 打包所有我们需要启动的系统(一般用不到)
updateimg          -pack update image # 打包 RK 格式系统固件(用瑞芯微工具烧写)
rawimg             -pack raw image # 打包 RAW 格式系统固件(用第三方工具或者 dd 烧写)
otapackage         -pack ab update otapackage image (update_ota.img) # 打包 ota 包固件(一般用不到)
sdpackage          -pack update sdcard package image (update_sdcard.img) # 打包 sdcard 包固件(一般用不到)
save               -save images, patches, commands used to debug # 保存用于 debug 的镜像、补丁与命令(一般用不到)
allsave            -build all & firmware & updateimg & save # 前面 all、firmware、updateimg、save 的集合(一般用不到)
check              -check the environment of building # 检查编译环境
info               -see the current board building information # 查看当前板卡编译情况
app/<pkg>          -build packages in the dir of app/* # 编译某个 Rockchip App
external/<pkg>     -build packages in the dir of external/* # 编译某个 Rockchip 库

Default option is 'allff'.

3.2 buildroot目录

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/buildroot$ tree -L 1
.
|-- CHANGES # Buildroot 修改日志
|-- COPYING
|-- Config.in
|-- Config.in.legacy
|-- DEVELOPERS
|-- Makefile
|-- Makefile.legacy
|-- README # Buildroot 简单说明
|-- arch # CPU 架构的构建、配置文件
|-- board # 具体单板相关的文件
|-- boot # Bootloaders 的构建、配置文件
|-- build
|-- configs # 具体单板的 Buildroot 配置文件
|-- dl # 下载的程序、源码压缩包、补丁等
|-- docs # 文档
|-- fs # 各种文件系统的构建、配置文件
|-- linux # Linux 的构建、配置文件
|-- output # 编译输出目录
|-- package # 所有软件包的构建、配置文件
|-- support # 为 Bulidroot 提供功能支持的脚本、配置文件
|-- system # 制作根文件系统的构建、配置文件
|-- toolchain # 交叉编译工具链的构建、配置文件
|-- utils # 实用工具

15 directories, 8 files

3.3 device/rockchip/rk356x目录

rk356x的板卡配置文件位于目录device/rockchip/rk356x(注意该目录的文件是经常发生变化的,可能与新的版本有出入):

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/device/rockchip/rk356x$ tree -L 1
.
|-- BoardConfig-rk3566-evb2-lp4x-v10-32bit.mk
|-- BoardConfig-rk3566-evb2-lp4x-v10.mk
|-- BoardConfig-rk3568-evb1-ddr4-v10-32bit.mk
|-- BoardConfig-rk3568-evb1-ddr4-v10-spi-nor-64M.mk
|-- BoardConfig-rk3568-evb1-ddr4-v10.mk
|-- BoardConfig-rk3568-nvr-spi-nand.mk
|-- BoardConfig-rk3568-nvr.mk
|-- BoardConfig-rk3568-uvc-evb1-ddr4-v10.mk
|-- BoardConfig.mk
|-- aio-3566-jd4-buildroot.mk # AIO-3566JD4 Buildroot 配置文件
|-- aio-3566-jd4-ubuntu.mk # AIO-3566JD4 Ubuntu 配置文件
|-- aio-3568j-buildroot.mk # AIO-3568J Buildroot 配置文件
|-- aio-3568j-lede.mk # AIO-3568J LEDE 配置文件
|-- aio-3568j-nvr.mk # AIO-3568J NVR 配置文件
|-- aio-3568j-openwrt.mk # AIO-3568J Openwrt 配置文件
|-- aio-3568j-ubuntu.mk # AIO-3568J Ubuntu 配置文件
|-- boot.its
|-- boot4recovery.its
|-- bootramdisk.its
|-- firefly-rk3566-buildroot.mk # Firefly RK3566 Buildroot 全系列的包含配置文件(一般不使用)
|-- firefly-rk3566-ubuntu.mk # Firefly RK3566 Ubuntu 全系列的包含配置文件(一般不使用)
|-- firefly-rk3568-buildroot.mk # Firefly RK3568 Buildroot 全系列的包含配置文件(一般不使用)
|-- firefly-rk3568-nvr-buildroot.mk # Firefly RK3568 NVR Buildroot 全系列的包含配置文件(一般不使用)
|-- firefly-rk3568-ubuntu.mk # Firefly RK3568 Ubuntu 全系列的包含配置文件(一般不使用)
|-- firefly-rk356x-openwrt.mk # Firefly RK356x Ubuntu 全系列的包含配置文件(一般不使用)
|-- parameter-buildroot-NVR-128M.txt
|-- parameter-buildroot-NVR-spi-nand-128M.txt
|-- parameter-buildroot-fit.txt # Buildroot 系统固件打包分区表
|-- parameter-buildroot-spi-nor-64M.txt
|-- parameter-openwrt.txt # Openwrt 系统固件打包分区表
|-- parameter-ubuntu-fit.txt # Ubuntu 系统固件打包分区表
|-- roc-rk3566-pc-buildroot.mk # ROC-RK3566-PC Buildroot 配置文件
|-- roc-rk3566-pc-lede.mk # ROC-RK3566-PC LEDE 配置文件
|-- roc-rk3566-pc-openwrt.mk # ROC-RK3566-PC Openwrt 配置文件
|-- roc-rk3566-pc-ubuntu.mk # ROC-RK3566-PC Ubuntu 配置文件
|-- roc-rk3568-pc-buildroot.mk # ROC-RK3568-PC Buildroot 配置文件
|-- roc-rk3568-pc-lede.mk # ROC-RK3568-PC LEDE 配置文件
|-- roc-rk3568-pc-openwrt.mk # ROC-RK3568-PC Openwrt 配置文件
|-- roc-rk3568-pc-ubuntu.mk # ROC-RK3568-PC Ubuntu 配置文件
|-- station-m2-ubuntu.mk # Station M2 Ubuntu 配置文件
|-- station-p2-ubuntu.mk # Station P2 Ubuntu 配置文件
|-- zboot.its

0 directories, 42 files

3.4 docs目录

docs目录主要存放Rockchip 开发文档目录:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/docs$ tree -L 1
.
|-- Common
|-- Linux
|-- Others
|-- RK356X -> .Socs/RK356X
|-- RK_Linux_SDK_Supported_System_Kernel_Version_and_ISP_Version_List.png
|-- Rockchip_Developer_Guide_Linux_Software_CN.pdf
|-- docs_list.txt # 各个目录的具体介绍

4 directories, 3 files

docs_list.txt文件具体内容:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/docs$ cat docs_list.txt
├── Common
│   ├── AUDIO
│   │   └── Rockchip_Developer_Guide_Audio_CN.pdf
│   ├── AVL
│   │   ├── Latest-Release-AVL-Link.txt
│   │   ├── RKeMMCSupportList Ver1.57_20210506.pdf
│   │   ├── RKNandFlashSupportList Ver2.73_20180615.pdf
│   │   ├── RK SpiNor and  SLC Nand SupportList Ver1.32_20210506.pdf
│   │   ├── Rockchip_Camera_Module_AVL_v2.1.pdf
│   │   ├── Rockchip_Support_List_DDR_V2.47.pdf
│   │   └── Rockchip_Support_List_WiFi_and_BT_20190801_EN.pdf
│   ├── CAMERA
│   │   ├── ISP2X
│   │   │   ├── Rockchip_Color_Optimization_Guide_ISP2x_CN_v1.2.5.pdf
│   │   │   ├── Rockchip_Color_Optimization_Guide_ISP2x_EN_v1.2.1.pdf
│   │   │   ├── Rockchip_Development_Guide_ISP20_CN_v1.6.8.pdf
│   │   │   ├── Rockchip_Development_Guide_ISP20_EN_v1.6.4.pdf
│   │   │   ├── Rockchip_Driver_Guide_ISP2x_EN_v1.0.3.pdf
│   │   │   ├── Rockchip_Driver_Guide_VI_CN_v1.0.5.pdf
│   │   │   ├── Rockchip_IQ_Tools_Guide_ISP2x_CN_v1.2.2.pdf
│   │   │   ├── Rockchip_IQ_Tools_Guide_ISP2x_EN_v1.2.2.pdf
│   │   │   ├── Rockchip_Tuning_Guide_ISP20_CN_v1.6.3.pdf
│   │   │   ├── Rockchip_Tuning_Guide_ISP20_EN_v1.6.2.pdf
│   │   │   └── Rockchip_Tuning_Guide_ISP21_CN_v0.0.2.pdf
│   │   └── The-Latest-Camera-Documents-Link.txt
│   ├── CAN
│   │   ├── Rockchip_Develop_Guide_Can_CN.pdf
│   │   └── Rockchip_Develop_Guide_CAN_FD_CN.pdf
│   ├── CLK
│   │   ├── Rockchip_Developer_Guide_Linux4.4_4.19_Clock_CN.pdf
│   │   ├── Rockchip_Develop_Guide_Pll_Ssmod_Clock_CN.pdf
│   │   └── Rockchip_RK3399_Developer_Guide_Clock_CN.pdf
│   ├── CRU
│   │   ├── Rockchip-Clock-Developer-Guide-RTOS-CN.pdf
│   │   └── Rockchip_RK3399_Developer_Guide_Linux4.4_Clock_CN.pdf
│   ├── DDR
│   │   ├── Rockchip-Developer-Guide-DDR-CN.pdf
│   │   ├── Rockchip-Developer-Guide-DDR-EN.pdf
│   │   ├── Rockchip-Developer-Guide-DDR-Problem-Solution-CN.pdf
│   │   ├── Rockchip-Developer-Guide-DDR-Problem-Solution-EN.pdf
│   │   ├── Rockchip-Developer-Guide-DDR-Verification-Process-CN.pdf
│   │   ├── Rockchip_Developer_Guide_DDR_Verification_Process_EN.pdf
│   │   ├── Rockchip_Developer_Guide_HAL_DDR_ECC_CN.pdf
│   │   ├── Rockchip-Guide-DDR-PCB-Layout-Notes-CN.pdf
│   │   ├── Rockchip_Trouble_Shooting_DDR_CN.pdf
│   │   ├── Rockchip_Trouble_Shooting_DDR_EN.pdf
│   │   └── Rockchip-User-Guide-DDR-DQ-Eye-Tool-CN.pdf
│   ├── DEBUG
│   │   ├── Rockchip_Developer_Guide_DS5_CN.pdf
│   │   ├── Rockchip_Developer_Guide_GDB_Over_ADB_CN.pdf
│   │   ├── Rockchip_Developer_Guide_OpenOCD_CN.pdf
│   │   └── Rockchip_User_Guide_J-Link_CN.pdf
│   ├── DISPLAY
│   │   ├── Rockchip_BT656_TX_AND_BT1120_TX_Developer_Guide_CN.pdf
│   │   ├── Rockchip_Developer_Guide_HDMI-CEC_CN.pdf
│   │   ├── Rockchip_Developer_Guide_HDMI_CN.pdf
│   │   ├── Rockchip_Developer_Guide_HDMI-PHY-PLL_Config_CN.pdf
│   │   ├── Rockchip_DRM_Display_Driver_Development_Guide_V1.0.pdf
│   │   ├── rockchip_drm_integration_helper-zh.pdf
│   │   ├── Rockchip_DRM_Panel_Porting_Guide_V1.6_20190228.pdf
│   │   ├── Rockchip_DRM_RK628_Porting_Guide_CN.pdf
│   │   ├── Rockchip_MCU_RK628D_Porting_Guide_CN.pdf
│   │   └── Rockchip_RK628D_Application_Notes_CN.pdf
│   ├── DVFS
│   │   ├── Rockchip_Developer_Guide_CPUFreq_CN.pdf
│   │   ├── Rockchip_Developer_Guide_CPUFreq_EN.pdf
│   │   ├── Rockchip_Developer_Guide_Devfreq_CN.pdf
│   │   └── Rockchip_Developer_Guide_Devfreq_EN.pdf
│   ├── FS
│   │   └── Rockchip_Developer_FAQ_FileSystem_CN.pdf
│   ├── GMAC
│   │   ├── Rockchip_Developer_Guide_Linux_GMAC_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_GMAC_Mode_Configuration_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_EN.pdf
│   │   └── Rockchip_Developer_Guide_Linux_MAC_TO_MAC_CN.pdf
│   ├── I2C
│   │   ├── Rockchip_Developer_Guide_I2C_CN.pdf
│   │   └── Rockchip_Developer_Guide_I2C_EN.pdf
│   ├── IO-DOMAIN
│   │   └── Rockchip_Developer_Guide_Linux_IO_DOMAIN_CN.pdf
│   ├── IOMMU
│   │   └── Rockchip_Developer_Guide_Linux_IOMMU_CN.pdf
│   ├── MCU
│   │   ├── Rockchip_Developer_Guide_MCU_EN.pdf
│   │   ├── Rockchip_Developer_Guide_MCU.pdf
│   │   └── Rockchip_RK3399_Developer_Guide_MCU_CN.pdf
│   ├── MEMORY
│   │   ├── Rockchip_Developer_Guide_Linux_CMA_CN.pdf
│   │   └── Rockchip_Developer_Guide_Linux_Meminfo_CN.pdf
│   ├── MMC
│   │   ├── Rockchip_Developer_Guide_SD_Boot_CN.pdf
│   │   └── Rockchip_Developer_Guide_SDMMC_SDIO_eMMC_CN.pdf
│   ├── NVM
│   │   ├── Rockchip_Application_Notes_Storage_CN.pdf
│   │   ├── Rockchip_Developer_FAQ_Storage_CN.pdf
│   │   ├── Rockchip_Developer_Guide_OTP_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Secure_Boot_Application_Note_EN.pdf
│   │   ├── Rockchip_Developer_Guide_Secure_Boot_for_UBoot_Next_Dev_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Secure_Boot_for_UBoot_Next_Dev_EN.pdf
│   │   ├── Rockchip_RK3568_Reference_SATA_Performance_CN.pdf
│   │   ├── Rockchip_RK356X_Developer_Guide_SATA_CN.pdf
│   │   └── Rockchip_Trouble_Shooting_Firmware_Upgrade_Issue_CN.pdf
│   ├── PCIe
│   │   ├── Rockchip_PCIe_Virtualization_Developer_Guide_CN.pdf
│   │   ├── Rockchip_RK3399_Developer_Guide_PCIe_CN.pdf
│   │   └── Rockchip_RK356X_Developer_Guide_PCIe_CN.pdf
│   ├── PERF
│   │   ├── Rockchip_Optimize_Tutorial_Linux_IO_CN.pdf
│   │   ├── Rockchip_Quick_Start_Linux_Perf_CN.pdf
│   │   ├── Rockchip_Quick_Start_Linux_Streamline_CN.pdf
│   │   └── Rockchip_Quick_Start_Linux_Systrace_CN.pdf
│   ├── Pin-Ctrl
│   │   ├── Rockchip-Developer-Guide-Linux-Pin-Ctrl-CN.pdf
│   │   └── Rockchip_Problem_Shooting_Linux_GPIO_CN.pdf
│   ├── PMIC
│   │   ├── Rockchip_Developer_Guide_Power_Discrete_DCDC_EN.pdf
│   │   ├── Rockchip_RK805_Developer_Guide_CN.pdf
│   │   ├── Rockchip_RK808_Developer_Guide_CN.pdf
│   │   ├── Rockchip_RK809_Developer_Guide_CN.pdf
│   │   ├── Rockchip_RK816_Developer_Guide_CN.pdf
│   │   ├── Rockchip_RK817_Developer_Guide_CN.pdf
│   │   ├── Rockchip_RK818_Developer_Guide_CN.pdf
│   │   ├── Rockchip_RK818_RK816_Developer_Guide_Fuel_Gauge_CN.pdf
│   │   └── Rockchip_RK818_RK816_Introduction_Fuel_Gauge_Log_CN.pdf
│   ├── POWER
│   │   ├── Rockchip_Developer_Guide_Power_Analysis_CN.pdf
│   │   └── Rockchip_Developer_Guide_Power_Analysis_EN.pdf
│   ├── PWM
│   │   ├── Rockchip_Developer_Guide_Linux_PWM_CN.pdf
│   │   └── Rockchip_Developer_Guide_Linux_PWM_EN.pdf
│   ├── SARADC
│   │   └── Rockchip_Developer_Guide_Linux_SARADC_CN.pdf
│   ├── SPI
│   │   ├── Rockchip_Developer_Guide_Linux_SPI_CN.pdf
│   │   └── Rockchip_Developer_Guide_Linux_SPI_EN.pdf
│   ├── THERMAL
│   │   ├── Rockchip_Developer_Guide_Thermal_CN.pdf
│   │   └── Rockchip_Developer_Guide_Thermal_EN.pdf
│   ├── TOOL
│   │   ├── Production-Guide-For-Firmware-Download.pdf
│   │   ├── RKUpgrade_Dll_UserManual.pdf
│   │   ├── Rockchip_Introduction_Partition_CN.pdf
│   │   ├── Rockchip_Introduction_Partition_EN.pdf
│   │   ├── Rockchip-Parameter-File-Format-Version1.4.pdf
│   │   └── Rockchip-User-Guide-ProductionTool-CN.pdf
│   ├── TRUST
│   │   ├── Rockchip_Developer_Guide_Trust_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Trust_EN.pdf
│   │   ├── Rockchip_RK3308_Developer_Guide_System_Suspend_CN.pdf
│   │   ├── Rockchip_RK3308_Developer_Guide_System_Suspend_EN.pdf
│   │   └── Rockchip_RK3399_Developer_Guide_System_Suspend_CN.pdf
│   ├── UART
│   │   ├── Rockchip_Developer_Guide_UART_CN.pdf
│   │   ├── Rockchip_Developer_Guide_UART_EN.pdf
│   │   └── Rockchip_Developer_Guide_UART_FAQ_CN.pdf
│   ├── UBOOT
│   │   ├── Rockchip_Developer_Guide_Linux_AB_System_CN.pdf
│   │   ├── Rockchip_Developer_Guide_UBoot_MMC_Device_Analysis_CN.pdf
│   │   ├── Rockchip_Developer_Guide_UBoot_MTD_Block_Device_Design_CN.pdf
│   │   ├── Rockchip_Developer_Guide_UBoot_Nextdev_CN.pdf
│   │   ├── Rockchip_Developer_Guide_U-Boot_TFTP_Upgrade_CN.pdf
│   │   └── Rockchip_Introduction_UBoot_rkdevelop_vs_nextdev_CN.pdf
│   ├── USB
│   │   ├── Rockchip_Developer_Guide_Linux_USB_Initialization_Log_Analysis_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_USB_Performance_Analysis_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_USB_PHY_CN.pdf
│   │   ├── Rockchip_Developer_Guide_USB2_Compliance_Test_CN.pdf
│   │   ├── Rockchip_Developer_Guide_USB_CN.pdf
│   │   ├── Rockchip_Developer_Guide_USB_EN.pdf
│   │   ├── Rockchip_Developer_Guide_USB_FFS_Test_Demo_CN.pdf
│   │   ├── Rockchip_Developer_Guide_USB_Gadget_UAC_CN.pdf
│   │   ├── Rockchip_Developer_Guide_USB_SQ_Test_CN.pdf
│   │   ├── Rockchip_RK3399_Developer_Guide_USB_DTS_CN.pdf
│   │   ├── Rockchip_RK356x_Developer_Guide_USB_CN.pdf
│   │   └── Rockchip_Trouble_Shooting_Linux4.19_USB_Gadget_UVC_CN.pdf
│   └── WATCHDOG
│       ├── Rockchip_Developer_Guide_Linux_WDT_CN.pdf
│       └── Rockchip_Developer_Guide_Linux_WDT_EN.pdf
├── docs_list.txt
├── Linux
│   ├── ApplicationNote
│   │   ├── Rockchip_Developer_Guide_Buildroot_Weston_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Buildroot_Weston_EN.pdf
│   │   ├── Rockchip_Developer_Guide_Debian10_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Debian10_EN.pdf
│   │   ├── Rockchip_Developer_Guide_Debian_Docker_EN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Nand_Flash_Open_Source_Solution_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Nand_Flash_Open_Source_Solution_EN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_PCBA_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_PCBA_EN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Qt_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Qt_EN.pdf
│   │   ├── Rockchip_Instruction_Linux_ROS_CN.pdf
│   │   ├── Rockchip_Instruction_Linux_ROS_EN.pdf
│   │   ├── Rockchip_Quick_Start_Linux_USB_Gadget_CN.pdf
│   │   ├── Rockchip_Quick_Start_Linux_USB_Gadget_EN.pdf
│   │   ├── Rockchip_Use_Guide_Linux_RetroArch_CN.pdf
│   │   └── The Buildroot User Manual.pdf
│   ├── Camera
│   │   ├── Rockchip_Developer_Guide_Linux4.4_Camera_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_RMSL_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_RMSL_EN.pdf
│   │   ├── Rockchip_Trouble_Shooting_Linux4.4_Camera_CN.pdf
│   │   └── Rockchip_Trouble_Shooting_Linux4.4_Camera_EN.pdf
│   ├── Graphics
│   │   ├── Rockchip_Developer_Guide_Linux_Graphics_CN.pdf
│   │   └── Rockchip_Developer_Guide_Linux_Graphics_EN.pdf
│   ├── Multimedia
│   │   ├── Rockchip_Developer_Guide_Linux_DLNA_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_RGA_CN.pdf
│   │   ├── Rockchip_Developer_Guide_MPP_CN.pdf
│   │   ├── Rockchip_Developer_Guide_MPP_EN.pdf
│   │   ├── Rockchip_Introduction_Linux_Audio_3A_Algorithm_CN.pdf
│   │   └── Rockchip_Introduction_Linux_Audio_3A_Algorithm_EN.pdf
│   ├── Profile
│   │   ├── Rockchip_Introduction_Linux_Benchmark_KPI_EN.pdf
│   │   ├── Rockchip_Introduction_Linux_PLT_CN.pdf
│   │   ├── Rockchip_User_Guide_Linux_Software_Test_CN.pdf
│   │   └── Rockchip_User_Guide_Linux_Software_Test_EN.pdf
│   ├── Recovery
│   │   ├── Rockchip_Developer_Guide_Linux_DFU_Upgrade_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Recovery_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Recovery_EN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Upgrade_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Upgrade_EN.pdf
│   │   └── Rockchip_Introduction_Smart_Screen_OTA_CN.pdf
│   ├── Security
│   │   ├── Rockchip_Developer_Guide_Linux4.4_CRYPTO_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Secure_Boot_CN.pdf
│   │   ├── Rockchip_Developer_Guide_Linux_Secure_Boot_EN.pdf
│   │   └── Rockchip_Developer_Guide_TEE_SDK_CN.pdf
│   └── Wifibt
│       ├── AP模组RF测试文档
│       │   ├── BT RF Test Commands for Linux-v05.pdf
│       │   └── Wi-Fi RF Test Commands for Linux-v03.pdf
│       ├── REALTEK模组RF测试文档
│       │   ├── 00014010-WS-170731-RTL8723D_COB_MP_FLOW_R04.pdf
│       │   ├── MP tool user guide for linux20180319.pdf
│       │   └── Quick_Start_Guide_V6.txt
│       ├── RK平台_RTL8723DS_AIRKISS配网说明.pdf
│       ├── Rockchip_Developer_Guide_DeviceIo_Bluetooth_CN.pdf
│       ├── Rockchip_Developer_Guide_DeviceIo_Bluetooth_EN.pdf
│       ├── Rockchip_Developer_Guide_Linux_WIFI_BT_CN.pdf
│       ├── Rockchip_Developer_Guide_Linux_WIFI_BT_EN.pdf
│       ├── Rockchip_Developer_Guide_Network_Config_CN.pdf
│       ├── Rockchip_Introduction_RK3308_DeviceIo_WIFI_CN.pdf
│       ├── Rockchip_Introduction_RK3308_DeviceIo_WIFI_EN.pdf
│       └── WIFI性能测试PC工具
│           └── iperf-2.0.5-2-win32.zip
├── Others
│   ├── Rockchip_User_Guide_Bug_System_CN.pdf
│   └── Rockchip_User_Guide_SDK_Application_And_Synchronization_CN.pdf
├── RK_Linux_SDK_Supported_System_Kernel_Version_and_ISP_Version_List.png
├── Rockchip_Developer_Guide_Linux_Software_CN.pdf

3.5 external目录

external目录主要都是各种各样的库文件,例如tensorflow等等,详细可以来深入研究一下:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/external$ tree -L 1
.
|-- CallFunIpc
|-- RKNPUTools
|-- alsa-config
|-- app
|-- avb
|-- ble_wificonfig
|-- bluetooth_bsa
|-- bluez-alsa
|-- broadcom_bsa
|-- camera_engine_rkaiq
|-- chromium
|-- common_algorithm
|-- deviceio_release
|-- eq_drc_process
|-- gstreamer-rockchip
|-- isp2-ipc
|-- ladspaSDK
|-- libglCompositor
|-- libmali
|-- linux-rga
|-- minigui
|-- minigui_desktop
|-- minilogger
|-- mpp
|-- pcba_adb_test
|-- quectel-cm
|-- recovery
|-- rk_pcba_test
|-- rkfacial
|-- rknn-toolkit2
|-- rknn_demo
|-- rknpu
|-- rknpu2
|-- rkscript
|-- rktoolkit
|-- rkupdate
|-- rkwifibt
|-- rockface
|-- rockit
|-- rockx
|-- rtc_demo
|-- security
|-- softapDemo
|-- tensorflow
|-- uac_app
|-- update_engine
|-- uvc_app
|-- wifiAutoSetup

48 directories, 0 files

3.6 kernel目录

kernel一般是我们经常打交道的,这里主要介绍几个与一般内核不一样的文件:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/kernel$ tree -L 1
.
|-- COPYING
|-- CREDITS
|-- Documentation
|-- Kbuild
|-- Kconfig
|-- LICENSES
|-- MAINTAINERS
|-- Makefile
|-- Module.symvers
|-- OWNERS
|-- README
|-- System.map
|-- android
|-- arch
|-- block
|-- boot.img # 最终烧写的内核固件
|-- boot.its # Fit 打包格式描述文件(描述如何打包 boot.img)
|-- build.config.aarch64
|-- build.config.allmodconfig
|-- build.config.allmodconfig.aarch64
|-- build.config.allmodconfig.arm
|-- build.config.allmodconfig.x86_64
|-- build.config.arm
|-- build.config.common
|-- build.config.gki
|-- build.config.gki-debug.aarch64
|-- build.config.gki-debug.x86_64
|-- build.config.gki.aarch64
|-- build.config.gki.x86_64
|-- build.config.gki_kasan
|-- build.config.gki_kasan.aarch64
|-- build.config.gki_kasan.x86_64
|-- build.config.gki_kprobes
|-- build.config.gki_kprobes.aarch64
|-- build.config.gki_kprobes.x86_64
|-- build.config.x86_64
|-- built-in.a
|-- certs
|-- check-config.sh
|-- crypto
|-- drivers
|-- firmware
|-- fs
|-- include
|-- init
|-- ipc
|-- kernel
|-- kernel.img
|-- lib
|-- logo.bmp # U-Boot logo bmp 文件
|-- logo_kernel.bmp # Kernel logo bmp 文件(一般文件与 U-Boot logo bmp 一样)
|-- mm
|-- modules.builtin
|-- modules.order
|-- net
|-- ramdisk.img # Firefly 提供的 initramfs
|-- resource.img # Resource 固件,由 dtb + logo 组成
|-- samples
|-- scripts
|-- security
|-- sound
|-- tools
|-- usr
|-- virt
|-- vmlinux
|-- vmlinux.o
|-- zboot.img

24 directories, 43 files

通用目录介绍可以参考点击以下链接:

https://mp.weixin.qq.com/s/z-yehOYqMMw46yoa2FzF7A

3.7 prebuilts/gcc/linux-x86/aarch64目录

交叉工具链目录,存放的是一个当前平台通用交叉工具链gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu与Buildroot工具链gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/prebuilts/gcc/linux-x86/aarch64$ tree -L 1
.
|-- gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu
|-- gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu

2 directories, 0 files

3.8 rkbin目录

rkbin目录是Rockchip miniloader二进制文件目录,它们是由瑞芯微维护的不开源的引导文件(U-Boot前一级引导):

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/rkbin$ tree -L 1 
.
|-- README
|-- RKBOOT
|-- RKBOOT.ini
|-- RKTRUST
|-- bin
|-- img
|-- scripts
|-- tools

6 directories, 2 files

3.9 rockdev目录

rockdev目录主要是各部分待打包固件的软链接,最终打包的系统固件会存放于pack目录:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/rockdev$ tree -L 1
.
|-- MiniLoaderAll.bin -> ../u-boot/rk356x_spl_loader_v1.11.111.bin
|-- boot.img -> ../kernel/boot.img
|-- idblock.bin -> /home/neutionwei/project/rk356x_linux_release_20211019/u-boot/idblock.bin
|-- misc.img -> ../device/rockchip/rockimg/wipe_all-misc.img
|-- pack # 系统固件存放目录
|-- parameter.txt -> /home/neutionwei/project/rk356x_linux_release_20211019/device/rockchip/rk356x/parameter-buildroot-fit.txt
|-- recovery.img
|-- rootfs.ext4 -> ../buildroot/output/rockchip_rk3568/images/rootfs.ext2
|-- rootfs.img -> ../ubuntu_rootfs/ubuntu_20.04_RK3568_ext4_v2.10-51-g7ecad547_20211109-1751_DESKTOP.img
|-- uboot.img -> ../u-boot/uboot.img

1 directory, 9 files

3.10 tools目录

tools目录主要是瑞芯微发布的一些PC机Linux与Windows平台下的工具:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/tools$ tree -L 2
.
|-- linux
|   |-- Firmware_Merger
|   |-- Linux_Pack_Firmware
|   |-- Linux_SecureBoot
|   |-- Linux_SecurityAVB
|   |-- Linux_SecurityDM_v1_01.tar.gz
|   |-- Linux_TA_Sign_Tool.rar
|   |-- Linux_Upgrade_Tool
|   |-- ToolsRelease.txt
|   |-- programmer_image_tool
|   |-- rk_sign_tool
|   |-- rk_sign_tool_v1.41_linux.zip
|-- windows
    |-- AndroidTool
    |-- AndroidTool_Console_v2.4.zip
    |-- CameraFactoryTestTool-v2.0.5.1.zip
    |-- DriverAssitant_v5.11.zip
    |-- EfuseTool_v1.4.zip
    |-- FactoryTool-1.71.200.rar
    |-- ParameterTool_v1.2.zip
    |-- RKDevInfoWriteTool_1.2.6.zip
    |-- RKDevTool
    |-- RKDevTool_Release_v2.86.zip
    |-- RKPCBATool_V1.0.9.zip
    |-- RK_IPCamera_Tool-V1.3.zip
    |-- Rockchip_Platform_DDR_Test_Tool_V1.38_Release_Annoucement_CN.7z
    |-- Rockchip_Platform_DDR_Test_Tool_V1.38_Release_Annoucement_EN.7z
    |-- SDDiskTool_v1.69.zip
    |-- SecureBootTool_v1.99.zip
    |-- Source\ Code
    |-- Speaker-PCBATool-v0.2.2.zip
    |-- TV_Camera_demo_protocol_V1.2.0.zip
    |-- ToolsRelease.txt
    |-- eq_drc_tool-v1.23.zip
    |-- pin_config_tool_v1.0_0517_win.zip
    |-- programmer_image_tool_v1.2_win.zip
    |-- rk_sign_tool_v1.41_win.zip

12 directories, 25 files

Rockchip文档中的介绍:
[RK356x] [Firefly-Linux] 10min带你了解Linux_SDK_第5张图片
[RK356x] [Firefly-Linux] 10min带你了解Linux_SDK_第6张图片

3.11 u-boot目录

u-boot目录一般我们主要关心编译的脚本与最终打包的固件:

neutionwei@32b7b9ddcaab:~/project/rk356x_linux_release_20211019/u-boot$ tree -L 1
.
|-- Documentation
|-- Kbuild
|-- Kconfig
|-- Licenses
|-- MAINTAINERS
|-- Makefile
|-- PREUPLOAD.cfg
|-- README
|-- System.map
|-- api
|-- arch
|-- bl31.elf
|-- bl31_0x00040000.bin
|-- bl31_0x00066000.bin
|-- bl31_0x00068000.bin
|-- bl31_0xfdcc9000.bin
|-- bl31_0xfdcd0000.bin
|-- board
|-- cmd
|-- common
|-- config.mk
|-- configs
|-- disk
|-- doc
|-- drivers
|-- dts
|-- env
|-- examples
|-- fit
|-- fs
|-- idblock.bin
|-- include
|-- lib
|-- make.sh # 配置与编译脚本
|-- net
|-- post
|-- rk356x_spl_loader_v1.11.111.bin # spl 引导固件
|-- scripts
|-- snapshot.commit
|-- spl
|-- tee.bin
|-- test
|-- tools
|-- tpl
|-- u-boot
|-- u-boot-dtb.bin
|-- u-boot-nodtb.bin
|-- u-boot.bin
|-- u-boot.cfg
|-- u-boot.cfg.configs
|-- u-boot.dtb
|-- u-boot.lds
|-- u-boot.map
|-- u-boot.srec
|-- u-boot.sym
|-- uboot.img # 最终烧写的U-Boot固件

25 directories, 31 files

通用目录介绍:

[RK356x] [Firefly-Linux] 10min带你了解Linux_SDK_第7张图片

你可能感兴趣的:(linux,ubuntu,运维,rk3566,rk3568)