SDK 镜像编译
Luckfox-Aura SDK 主要在 Ubuntu LTS 系统上进行开发和测试,主要支持 Ubuntu 22.04 版本。如果您的系统是 Ubuntu 22.04,只需安装相应的依赖编译即可。
注意
- 目前仅在 Ubuntu 22.04 x86_64 环境下提供支持,其他平台架构暂不兼容。
- 严格按照文档的步骤配置就能成功编译镜像,如果出现错误请优先检查自己的环境。
1. SDK 目录介绍
-
安装依赖环境:
sudo apt-get update && sudo apt-get install git ssh make gcc libssl-dev \liblz4-tool expect expect-dev 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 ncurses-dev \libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev \libmpc-dev bc python-is-python3 python2 curl file rsync bsdmainutils dpkg-dev \po4a gettext -
设置 Python 环境设置。
#默认情况下链接的是python3$ python --versionPython 3.10.12which python2sudo ln -sf /usr/bin/python2 /usr/bin/python -
从网盘链接下载最新的 SDK,并解压缩文件(请勿直接复制解压命令,因 SDK 名称可能会随着更新而变化)。
mkdir Aura-sdk && cd Aura-sdktar -xzvf Luckfox_Aura_SDK_251224.tar.gz -
将解压后的文件进行解包。
.repo/repo/repo sync -l- -l参数不能省略,否则会尝试从远程服务器拉取代码。
-
SDK 目录结构介绍。
├── build.sh -> project/build.sh ---- SDK编译脚本├── media --------------------------- 多媒体编解码、ISP等算法相关(可独立SDK编译)├── sysdrv -------------------------- U-Boot、kernel、rootfs目录(可独立SDK编译)├── project ------------------------- 参考应用、编译配置以及脚本目录├── output -------------------------- SDK编译后镜像文件存放目录├── docs -------------------------- 瑞芯微原厂技术文档(已独立整理,统一存放于网盘)└── tools --------------------------- 烧录镜像打包工具以及烧录工具 -
镜像存放目录介绍。
output/├── image│ ├── download.bin ---------------- 烧录工具升级通讯的设备端程序,只会下载到板子内存│ ├── env.img --------------------- 包含分区表和启动参数│ ├── uboot.img ------------------- uboot镜像│ ├── idblock.img ----------------- loader镜像│ ├── boot.img -------------------- kernel镜像│ ├── rootfs.img ------------------ 根文件系统│ └── userdata.img ---------------- userdata镜像└── out├── app_out --------------------- 参考应用编译后的文件├── media_out ------------------- media相关编译后的文件├── rootfs_xxx ------------------ 文件系统打包目录├── S20linkmount ---------------- 分区挂载脚本├── sysdrv_out ------------------ sysdrv编译后的文件└── userdata -------------------- userdata -
SDK 配置文件说明
project/cfg/BoardConfig_Aura/。BoardConfig-EMMC-RK801-Luckfox_Aura-Buildroot.mkBoardConfig-EMMC-RK801-Luckfox_Aura-Debian.mkBoardConfig-SD_CARD-RK801-Luckfox_Aura-Buildroot.mkBoardConfig-SD_CARD-RK801-Luckfox_Aura-Debian.mkoverlayrk-fastboot-post-for-projector.shrk-fastboot-post.shRK-RELEASE-NOTES-IPC.txtrk-spi_nor-post.sh -
以
BoardConfig-SD_CARD-RK801-Luckfox_Aura-Debian.mk为例,详细介绍其中关键的文件配置。# Config CMA size in environmentexport RK_BOOTARGS_CMA_SIZE="128M"# Target boot mediumexport RK_BOOT_MEDIUM=sd_cardexport RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),4M(uboot),11M(boot),1G(userdata),2G(oem),4G(rootfs)"# Target boot medium: emmc/spi_nor/spi_nand/ufsexport RK_BOOT_MEDIUM=emmc# Kernel dtsexport RK_KERNEL_DTS=rv1126b-luckfox-aura.dts# Kernel defconfigexport RK_KERNEL_DEFCONFIG=rv1126b_luckfox_defconfig# Target rootfsexport LF_TARGET_ROOTFS=buildroot# Buildroot defconfigexport RK_BUILDROOT_DEFCONFIG=luckfox_64bit_defconfig# declare overlay directoryexport RK_POST_OVERLAY="overlay-luckfox-buildroot-64bit"- RK_BOOTARGS_CMA_SIZE:给摄像头分配的内存,如果不使用摄像头可以将其修改为 1M
- RK_KERNEL_DTS:指定设备树文件
- RK_BOOT_MEDIUM:指定目标启动介质,可以是 sd_card(指的是SD卡)、spi_nand(SPI NAND Flash)和 eMMC
- RK_PARTITION_CMD_IN_ENV:这是用于配置分区表的信息,如果需要与 SD 卡的存储空间匹配,您可以修改 rootfs 分区
- LF_TARGET_ROOTFS:指定目标的根文件系统(Root File System)
- RK_BUILDROOT_DEFCONFIG:指定 Buildroot 的配置文件
- RK_POST_OVERLAY:在 overlay 文件夹下存放想要打包的文件
2. SDK 镜像编译
两种系统的编译与构建原理存在本质差异:Buildroot 是一种基于用户态的源码构建系统,所有编译与打包过程均在普通用户权限下完成;而 live-build 属于系统级镜像重构工具,其在构建过程中需要执行真实的系统挂载、chroot 切换及软件包安装等操作,因此必须以 root 权限 运行。
简而言之,后续在编译镜像时应严格区分:Buildroot 不应使用sudo ./build.sh,而 live-build 必须使用sudo ./build.sh。
2.1 Buildroot 镜像编译
提示
- 请勿在镜像编译过程中使用 sudo 命令,否则可能造成文件权限变更,导致编译过程失败。
- 建议为不同系统分别使用独立的 SDK 环境:一个 SDK 编译 Debian,另一个 SDK 编译 Buildroot,以避免相互干扰。
- 在编译完 Debian 13 镜像后,SDK 文件的权限会发生变更。此时需要使用 chown 命令将整个 SDK 目录的所有权还原为当前用户(例如 ubuntu):
sudo chown -R ubuntu:ubuntu /home/ubuntu/Luckfox/rv1126b/sdk-251224./build.sh
- 先根据开发板实际型号选择对应分支,型号信息可参考《产品介绍》。
./build.sh lunch
- 全部编译编译镜像。
./build.sh
- 执行命令输出:

- 执行命令输出:
- 其它在开发中常用编译命令:
- 单独编译内核:
./build.sh clean kernel
./build.sh kernel
- 单独编译 uboot:
./build.sh clean uboot
./build.sh uboot
- 单独编译 rootfs:
./build.sh clean rootfs
./build.sh rootfs
- 固件打包:(适用打包自定义文件)
./build.sh firmware
2.1 Debian13 镜像编译
提示
在镜像编译过程需用 sudo 命令,否则无法编译。
- 先根据开发板实际型号选择对应分支,型号信息可参考《产品介绍》。
./build.sh lunch
- 全部编译编译镜像。
sudo ./build.sh
- 其它在开发中常用编译命令:
- 单独编译内核:
sudo ./build.sh clean kernel
sudo ./build.sh kernel
- 单独编译 uboot:
sudo ./build.sh clean uboot
sudo ./build.sh uboot
- 单独编译 rootfs:
sudo ./build.sh clean rootfs
sudo ./build.sh rootfs
- 固件打包:(适用打包自定义文件)
sudo ./build.sh firmware
3. 将自定义文件打包至系统镜像
Luckfox Aura SDK 在打包前会通过 overlay 机制将指定文件添加到根文件系统中。
- 创建
overlay目录:在project/cfg/BoardConfig_Aura/overlay下新增自定义文件夹(例如overlay-luckfox-buildroot-64bit)。 - 按根文件系统结构添加文件
project/cfg/BoardConfig_Aura/overlay/overlay-luckfox-buildroot-64bit/└── etc├── samba│ ├── smb.conf│ └── smbpasswd├── shadow└── ssh└── sshd_config
- 配置板级支持文件。在
project/cfg/BoardConfig_Aura/BoardConfig.mk中添加:export RK_POST_OVERLAY="overlay-luckfox-buildroot-64bit" # 替换为实际文件夹名称` - 编译打包:
./build.sh firmware # 生成包含 overlay 的 rootfs.img`
4. 文件共享
虚拟机和 Windows 电脑之间文件传输可以使用 Samba 服务来实现文件共享,在 Windows 的网络邻居中,可以轻松访问虚拟机的文件系统,非常便捷。
4.1 Ubuntu 环境配置
-
下载和安装 Samba 。
sudo apt-get updatesudo apt-get install samba -y -
配置Samba服务。
sudo vim /etc/samba/smb.conf#在文件末尾填入以下内容[share]comment = share folderbrowseable = yespath = /home/luckfoxcreate mask = 0700directory mask = 0700valid users = luckfoxforce user = luckfoxforce group = luckfoxpublic = yesavailable = yeswritable = yes- 其中luckfox为主机名,根据自己实际主机名填写。
-
设置分享账户密码。
sudo smbpasswd -a luckfox -
查看虚拟机或主机的 IP 地址。
luckfox@luckfox:~/Aura-sdk/luckfox-aura$ ifconfigenp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.10.61 netmask 255.255.252.0 broadcast 192.168.11.255inet6 fe80::814f:a51e:5f24:f0f7 prefixlen 64 scopeid 0x20<link>ether 08:00:27:d2:60:b9 txqueuelen 1000 (Ethernet)RX packets 699559 bytes 754875799 (754.8 MB)RX errors 0 dropped 4 overruns 0 frame 0TX packets 53024 bytes 3278048 (3.2 MB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1000 (Local Loopback)RX packets 190 bytes 24144 (24.1 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 190 bytes 24144 (24.1 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
4.2 Windows 环境
- 在 Windows 地址栏输入(根据自己实际 IP 地址填写)。

- 输入虚拟机账户密码默认都是 luckfox 。

- 成功登录虚拟机或主机。

FAQ
- 使用 WSL2 编译出现环境变量的错误
Your PATH contains spaces, TABs, and/or newline (\n) characters This doesn't work. Fix yOu PATH,就需要过滤空格、制表符和换行符。
export PATH=$(echo "$PATH" | tr -d ' \t\n')