Any OS (exclusing BSDs). I have done this only on Windows but everything would be the same on Linux minus the WSL-specific steps.
Clone Luckfox’ repository from https://github.com/LuckfoxTECH/luckfox-pico.git . If you are on Linux, everything is a whole lot simpler, and you can disregard any of the steps pertaining to WSL.
From inside WSL, move (mv) the cloned repository to your WSL instance, e.g. mv /path/to/luckfox/ ~/luckfox-pico .
The most reliable way to build the images required for Buildroot on the Rockchip RV1103 is to use Ubuntu 22.04 to do so. If you are on any distribution of Linux, you can run Ubuntu 22.04 inside a docker container with the command:
> docker run -it --rm -v ~/luckfox-pico:/luckfox -w /luckfox ubuntu:22.04
Once inside the container, update the system and install the required packages:
> apt-get update
> apt-get install -y git ssh make gcc g++ gcc-multilib g++-multilib gawk texinfo libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler libncurses-dev pkg-config bc python3 file cpio rsync vim unzip sudo wget
Next, a change to the board config is required in order to add a media partition which takes up the rest of the space on the SD card. For some reason this isn’t done by default, and the SD card images provided by Luckfox don’t partition this extra space. From within the root luckfox directory, open the file to edit:
> vim project/cfg/BoardConfig_IPC/BoardConfig-SD_CARD-Buildroot-RV1103_Luckfox_Pico_Mini-IPC.mk
Find the lines that export the environment variables RK_PARTITION_CMD_IN_ENV and RK_PARTITION_FS_TYPE_CFG (you can do this by pressing / and beginning to write an env var’s name, press <Enter> once the relevant env var is highlighted to exit the search). Change the lines to the following:
export RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),256K(uboot),32M(boot),512M(oem),256M(userdata),6G(rootfs),-(media)"
export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@ext4,userdata@/userdata@ext4,oem@/oem@ext4,media@/media@ext4
-(media) tells the imager to use the rest of the available space for the media partition.
Next, we need to add a media.img build step to project/build.sh . Find the lines where the rootfs, userdata, and oem dir env vars are exported. You can search for RK_PROJECT_PACKAGE_USERDATA_DIR in vim. As of 2026-07-12, these are between lines 2815-2817 in the file (navigate to a specific line with :NNNN in vim. Add the following line in this section:
export RK_PROJECT_PACKAGE_MEDIA_DIR=$RK_PROJECT_OUTPUT/media
Next, find the location that the userdata image is built. You can search for mkdir -p $RK_PROJECT_PACKAGE_USERDATA_DIR in the file. As of 2026-07-12, it’s located at line 2574 in the file. Right after the build_mkimg line for userdata , add the following block of code:
if echo "$GLOBAL_PARTITIONS" | grep -qE '(media)(\)|,)'; then
mkdir -p $RK_PROJECT_PACKAGE_MEDIA_DIR
build_mkimg media $RK_PROJECT_PACKAGE_MEDIA_DIR
fi