LuckfoxPico-SDK 环境部署

拉灯是我干掉的
原创
发布时间: 2025-06-10 20:43:07 | 阅读数 0收藏数 0评论数 0
封面
LuckfoxPico-SDK主要在Ubuntu LTS系统上进行开发和测试,主要支持Ubuntu 22.04版本。如果系统是Ubuntu 22.04,只需安装相应的依赖编译即可。为了确保与不同版本的Ubuntu兼容,建议使用Docker 环境。

准备工作:

工具:

工具名称
数量
备注
计算机
1
装有Ubuntu22.04系统
1

安装依赖环境

sudo apt update

sudo apt-get install -y git ssh make gcc gcc-multilib g++-multilib module-assistant expect g++ gawk texinfo libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler libncurses5-dev pkg-config bc python-is-python3 passwd openssl openssh-server openssh-client vim file cpio rsync


2

获取最新的 SDK

git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git


3

SDK 目录说明

SDK目录结构
├── build.sh -> project/build.sh ---- SDK编译脚本
├── media --------------------------- 多媒体编解码、ISP等算法相关(可独立SDK编译)
├── sysdrv -------------------------- U-Boot、kernel、rootfs目录(可独立SDK编译)
├── project ------------------------- 参考应用、编译配置以及脚本目录
├── output -------------------------- SDK编译后镜像文件存放目录
└── tools --------------------------- 烧录镜像打包工具以及烧录工具

镜像存放目录
output/
├── image
│ ├── download.bin ---------------- 烧录工具升级通讯的设备端程序,只会下载到板子内存
│ ├── env.img --------------------- 包含分区表和启动参数
│ ├── uboot.img ------------------- uboot镜像
│ ├── idblock.img ----------------- loader镜像
│ ├── boot.img -------------------- kernel镜像
│ ├── rootfs.img ------------------ kernel镜像
│ └── userdata.img ---------------- userdata镜像
└── out
├── app_out --------------------- 参考应用编译后的文件
├── media_out ------------------- media相关编译后的文件
├── rootfs_xxx ------------------ 文件系统打包目录
├── S20linkmount ---------------- 分区挂载脚本
├── sysdrv_out ------------------ sysdrv编译后的文件
└── userdata -------------------- userdata

说明:output 目录为编译生成目录
4

SDK配置文件说明

Luckfox-Pico 系列 SDK 配置文件存放在 project/cfg/BoardConfig_IPC 目录下。

以 'BoardConfig-EMMC-Ubuntu-RV1103_Luckfox_Pico-IPC.mk' 为例,详细介绍其中关键的文件配置。

# Config CMA size in environment
export RK_BOOTARGS_CMA_SIZE="24M"

# Kernel dts
export RK_KERNEL_DTS=rv1103g-luckfox-pico.dts

# Target boot medium: emmc/spi_nor/spi_nand
export RK_BOOT_MEDIUM=emmc

export RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),256K(uboot),32M(boot),512M(oem),256M(userdata),6G(rootfs),-(media)"

# Target rootfs : ubuntu(only emmc)/buildroot/busybox
export LF_TARGET_ROOTFS=ubuntu

# SUBMODULES : gitee/gitee
export LF_SUBMODULES_BY=gitee

# Buildroot defconfig
export RK_BUILDROOT_DEFCONFIG=luckfox_pico_defconfig
  1. RK_BOOTARGS_CMA_SIZE:给摄像头分配的内存,如果不使用摄像头可以将其修改为 1M
  2. RK_KERNEL_DTS:指定设备树文件
  3. RK_BOOT_MEDIUM:指定目标启动介质,可以是 emmc(指的是SD卡)、spi_nor(SPI NOR Flash)或 spi_nand(SPI NAND Flash)
  4. RK_PARTITION_CMD_IN_ENV:这是用于配置分区表的信息,如果需要与 SD 卡的存储空间匹配,您可以修改 rootfs 分区。
  5. LF_TARGET_ROOTFS:指定目标的根文件系统(Root File System)
  6. LF_SUBMODULES_BY:指定子模块的来源
  7. RK_BUILDROOT_DEFCONFIG:指定 Buildroot 的配置文件
5

SDK配置文件修改

从SDK配置文件说明可以得知,Ubuntu 镜像仅支持 SD 卡启动,而 Buildroot 镜像既支持TF卡启动又支持 SPI NAND FLASH 启动。

1. 如果需要编译ubuntu系统,并且使用gitee源,请修改对应的板型mk文件中LF_SUBMODULES_BY改为gitee,如:

LF_SUBMODULES_BY=gitee

2. 如果希望编译 Buildroot 镜像,使其能够支持 TF 卡启动,请修改对应的板型 BoardConfig-EMMC-Ubuntu-xxx.mk文件中 LF_TARGET_ROOTFS 改为 buildroot,如:

export LF_TARGET_ROOTFS=buildroot
6

安装交叉编译工具链

cd {SDK_PATH}/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/
source env_install_toolchain.sh


7

全部编译镜像:

cd luckfox-pico

#编译busybox/buildroot
./build.sh lunch
./build.sh

#编译ubuntu
sudo ./build.sh lunch
sudo ./build.sh

o 注意编译ubuntu时需要注意使用sudo,否则会导致文件系统错误

o 下文就不一一区分两者指令区别,请自行根据情况选择

8

单独编译U-Boot

./build.sh clean uboot
./build.sh uboot

o 生成镜像文件: output/image/MiniLoaderAll.bin output/image/uboot.img

9

单独编译kernel

./build.sh clean kernel
./build.sh kernel

o 生成镜像文件: output/image/boot.img

10

单独编译rootfs

./build.sh clean rootfs
./build.sh rootfs

o 注:编译后需使用./build.sh firmware命令重新打包

11

单独编译media

./build.sh clean media
./build.sh media

o 生成文件的存放目录:output/out/media_out ,编译后需使用./build.sh firmware命令重新打包

12

单独编译参考应用

./build.sh clean app
./build.sh app

o 注1:app依赖media

o 注2:编译后需使用./build.sh firmware命令重新打包

13

固件打包

./build.sh firmware


14

固件清除

./build.sh clean


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载