使用的是万象奥科维的RK3506G-EVM开发板
vanxoak@vanxoak:/work/rk3506_linux6.1_v1.2.0$ tree -L 1
.
├── app # 存放上层应用 app,主要是 qcamera/qfm/qplayer/settings 等一些应用程序
├── buildroot # buildroot文件系统目录
├── build.sh -> device/rockchip/common/scripts/build.sh # 编译脚本
├── common -> device/rockchip/common
├── device # 存放各芯片板级配置和Parameter文件,以及一些编译与打包固件的脚本和预备文件
├── docs # rockchip 参考文档 存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、Linux开发指南等
├── external # 存放第三方相关仓库,包括音频、视频、网络、recovery 等
├── hal # HAL目录,存放HAL源码以及Project工程
├── kernel -> kernel-6.1
├── kernel-6.1 # 存放 kernel 6.1的目录
├── Makefile -> device/rockchip/common/Makefile # makefile 编译支持文件
├── prebuilts # 存放交叉编译工具链
├── README.md -> device/rockchip/common/README.md # README
├── rkbin # 存放 Rockchip 相关的 Binary 和工具
├── rkflash.sh -> device/rockchip/common/scripts/rkflash.sh
├── rtos # RTOS对应目录
├── tools # 存放 Linux 和 Windows 操作系统环境下常用工具
├── u-boot # 存放u-boot源码
├── vanxoak # 存放针对项目修改的补丁文件
└── yocto # yocto目录
SDK解压后会得到以上文件夹,接下来我们对每一个文件夹以及子文件进行逐项的学习
首先注意到commen,build.sh,kernel等后面带有->是软连接,指向后续文件目录(之前一直没注意到,我还寻思为什么这么多重复文件。。。)
lipthon@Lipthon:~/rk3506/rk3506_linux6.1_v1.2.0/app$ tree -d
.
├── lvgl_demo
│ ├── amp_monitor
│ │ └── overlay
│ ├── cJSON
│ ├── common
│ ├── flexbus
│ │ └── overlay
│ ├── gallery
│ │ ├── anims
│ │ └── pics
│ ├── lv_demo
│ ├── lvgl8
│ ├── lvgl9
│ ├── motor_demo
│ │ ├── deprecated
│ │ │ └── res
│ │ └── resource
│ ├── rk_demo
│ │ ├── asr
│ │ │ └── pcm
│ │ ├── audio_algorithm
│ │ │ ├── configs
│ │ │ ├── include
│ │ │ └── lib
│ │ ├── furniture_control
│ │ ├── home
│ │ ├── include
│ │ ├── intercom_homepage
│ │ │ ├── intercom_call
│ │ │ └── video_monitor
│ │ ├── layout
│ │ ├── resource
│ │ ├── rockit
│ │ ├── setting
│ │ ├── smart_home
│ │ └── wifibt
│ ├── rk_demo_test
│ │ ├── asr
│ │ │ ├── lib
│ │ │ └── pcm
│ │ ├── board_test
│ │ ├── home
│ │ ├── include
│ │ ├── layout
│ │ ├── resource
│ │ ├── rockit
│ │ ├── setting
│ │ └── wifibt
│ ├── sys
│ └── tools
└── rkadk
├── cmake
├── docs
├── examples
│ └── common
│ ├── isp
│ │ └── rv1103b
│ └── mp3_header
├── include
├── inicfg
│ ├── rk3576
│ ├── rv1106_1103
│ └── rv1126_1109
├── src
│ ├── aov
│ ├── audio
│ │ ├── decoder
│ │ └── encoder
│ ├── common
│ ├── demuxer
│ ├── display
│ ├── live
│ │ ├── rtmp
│ │ └── rtsp
│ ├── muxer
│ ├── osd
│ ├── param
│ ├── photo
│ ├── player
│ ├── record
│ ├── storage
│ ├── stream
│ ├── third-party
│ │ ├── cjson
│ │ └── iniparser
│ └── ui
└── version
app文件夹中主要存放的为官方给出的应用层开发中间件,向上提供简单易用的 API,向下对接底层驱动和硬件,
本文件夹提供了LVGL,RKADK两个实例,LVGL常用于做屏幕显示界面设计,这个大家应该都熟悉,
RKADK则提供了大量的音视频处理的API,可以用于音频解码,视频录制等

buildroot文件夹存放buildroot源码,用于固件的编译构建,不做过多解释,会用图形化界面就行

common文件夹指向device/rockchip/common
lipthon@Lipthon:~/rk3506/rk3506_linux6.1_v1.2.0/common$ tree -d
.
├── build-hooks
├── configs
│ └── post
├── data
├── extra-parts
│ ├── dtbo
│ ├── oem
│ │ ├── cvr
│ │ │ ├── cvr_res
│ │ │ │ ├── font
│ │ │ │ ├── sound
│ │ │ │ ├── string
│ │ │ │ └── ui_1280x720
│ │ │ └── etc
│ │ │ └── rkadk
│ │ │ ├── 5M
│ │ │ └── 8M
│ │ ├── facial_gate
│ │ ├── ipc
│ │ ├── normal
│ │ ├── nvr
│ │ ├── sample
│ │ └── uvcc
│ └── userdata
│ ├── normal
│ └── sl
├── fonts
├── kconfig
│ ├── lxdialog
│ └── patches
├── linux-kbuild
│ ├── aarch64
│ │ ├── linux-kbuild-4.19
│ │ │ ├── scripts
│ │ │ │ ├── basic
│ │ │ │ ├── genksyms
│ │ │ │ ├── kconfig
│ │ │ │ └── mod
│ │ │ └── tools
│ │ │ └── objtool
│ │ ├── linux-kbuild-4.4
│ │ │ └── scripts
│ │ │ ├── basic
│ │ │ ├── genksyms
│ │ │ ├── kconfig
│ │ │ └── mod
│ │ ├── linux-kbuild-5.10
│ │ │ ├── scripts
│ │ │ │ ├── basic
│ │ │ │ ├── genksyms
│ │ │ │ ├── kconfig
│ │ │ │ └── mod
│ │ │ └── tools
│ │ │ └── objtool
│ │ └── linux-kbuild-6.1
│ │ ├── scripts
│ │ │ ├── basic
│ │ │ ├── genksyms
│ │ │ ├── kconfig
│ │ │ └── mod
│ │ └── tools
│ │ └── objtool
│ └── armhf
│ ├── linux-kbuild-4.19
│ │ ├── scripts
│ │ │ ├── basic
│ │ │ ├── genksyms
│ │ │ ├── kconfig
│ │ │ └── mod
│ │ └── tools
│ │ └── objtool
│ ├── linux-kbuild-4.4
│ │ └── scripts
│ │ ├── basic
│ │ ├── genksyms
│ │ ├── kconfig
│ │ └── mod
│ ├── linux-kbuild-5.10
│ │ ├── scripts
│ │ │ ├── basic
│ │ │ ├── genksyms
│ │ │ ├── kconfig
│ │ │ └── mod
│ │ └── tools
│ │ └── objtool
│ └── linux-kbuild-6.1
│ ├── scripts
│ │ ├── basic
│ │ ├── genksyms
│ │ ├── kconfig
│ │ └── mod
│ └── tools
│ └── objtool
├── overlays
│ ├── buildroot
│ ├── debian
│ ├── recovery
│ ├── rootfs
│ │ ├── bootanim
│ │ │ └── etc
│ │ │ └── bootanim.d
│ │ ├── chromium
│ │ ├── default
│ │ ├── fonts -> ../../fonts/
│ │ ├── frecon
│ │ │ ├── etc
│ │ │ │ └── frecon
│ │ │ │ └── term-switch.d
│ │ │ └── usr
│ │ │ └── bin
│ │ ├── fstrim
│ │ ├── generate-logs
│ │ │ ├── etc
│ │ │ │ └── generate_logs.d
│ │ │ └── usr
│ │ │ └── bin
│ │ ├── input-event-daemon
│ │ │ ├── etc
│ │ │ │ └── input-event-daemon.conf.d
│ │ │ └── usr
│ │ │ └── bin
│ │ ├── irqbalance
│ │ │ ├── etc
│ │ │ │ └── irqbalance.d
│ │ │ └── usr
│ │ │ ├── sbin
│ │ │ └── share
│ │ │ └── man
│ │ │ └── man1
│ │ ├── tools -> ../../tools/
│ │ └── usb-gadget
│ └── yocto
│ ├── pulseaudio
│ │ └── etc
│ │ ├── pulse
│ │ └── rcS.d
│ └── weston
│ ├── etc
│ │ ├── default
│ │ ├── profile.d
│ │ └── xdg
│ │ └── weston
│ │ └── weston.ini.d
│ └── usr
│ └── share
│ ├── backgrounds
│ └── icons
├── post-hooks
├── scripts
├── tests
│ └── debian
│ ├── bookworm
│ │ ├── aarch64
│ │ └── armhf
│ ├── bullseye
│ │ ├── aarch64
│ │ └── armhf
│ └── buster
│ ├── aarch64
│ └── armhf
└── tools
├── aarch64
├── armhf
└── x86_64
首先我们来看build.sh文件,该文件帮我们完成了环境的配置,声明了调用的配置文件,输出文件位置,我们只需要简单调用该脚本就可以轻松完成整个系统的构建

除了build.sh脚本,scripts文件夹还提供了其他的脚本

kconfig文件,buildroot根据kconfig提供的配置生成图形化界面,给出所有选项类似于菜单,然后我经过图形化配置之后生成.config文件来进行编译我的固件,也就是点菜
device文件夹,存放各芯片板级配置和Parameter文件,以及一些编译与打包固件的脚本和预备文件
lipthon@Lipthon:~/rk3506/rk3506_linux6.1_v1.2.0/device/rockchip$ ls -a -l
total 24
drwxr-xr-x 5 lipthon lipthon 4096 Nov 13 22:14 .
drwxr-xr-x 3 lipthon lipthon 4096 Oct 12 2024 ..
lrwxrwxrwx 1 lipthon lipthon 13 Nov 13 14:49 .chip -> .chips/rk3506
drwxr-xr-x 3 lipthon lipthon 4096 Oct 12 2024 .chips
drwxr-xr-x 2 lipthon lipthon 4096 Nov 4 13:36 .git
-rw-r--r-- 1 lipthon lipthon 24 Oct 12 2024 .gitignore
drwxr-xr-x 14 lipthon lipthon 4096 Jun 4 16:59 common
lrwxrwxrwx 1 lipthon lipthon 13 Nov 13 22:14 rk3506 -> .chips/rk3506
.chip,rk3506同时都指向.chips下的rk3506文件夹(到底为什么要在这里面放一只蛋蛋下巴的大兔子啊!!!油饼啊!!!)


rk3506_linux6.1_v1.2.0/device/rockchip/rk3506/rockchip_rk3506_evm_nand_defconfig 是我们使用的默认配置文件
浙公网安备 33010602011771号