本文首发在https://www.anysets.tech/?p=450,为帮助更多的后来者,遂转载至本站。

一、选择WSL2环境

Luckfox官方的SDK环境部署章节推荐操作系统是Ubuntu22.04,因此我们选择Ubuntu22.04 LTS作为开发环境,在微软商店搜索Ubuntu即可找到并下载,直达链接。注意要下载LTS版本!

安装完成后,进入WSL,执行以下命令以更新Ubuntu环境:

sudo apt update && sudo apt upgrade

可以考虑使用其他环境来部署,理论上只要能将所需依赖全部安装完成即可正常使用。但是需要注意在部署SDK环境的过程中会有一些侵害性操作,比如将python2软链接至/usr/bin/python,因此请尽量不要在其他生产力环境或日用环境中部署此SDK。

二、下载SDK

官方SDK下载地址在这:直达链接

下载完成后,得到如下的文件:

将该文件移动至WSL中,可以直接放在用户主目录下(/home/用户名/)。

三、部署SDK

3.1 删除Windows环境变量

由于WSL默认会将Windows的一些环境写入bashrc中,而Windows的环境路径中包含空格(如“Program Files”),会导致SDK报错,因此需要将这些环境给删除。

在WSL中输入 echo $PATH 即可查看当前环境变量。

在WSL中修改配置文件/etc/wsl.conf:

sudo vim /etc/wsl.conf

在文件中加入这两行:

[interop]
appendWindowsPath = false

然后在cmd或powershell中重启WSL:

wsl --shutdown

重新进入WSL,检查环境变量,发现已经没有Windows相关的路径了。

3.2 补全依赖

为了SDK环境可以正常使用,在这里补全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 

然后设置Python2环境变量:

sudo ln -sf /usr/bin/python2 /usr/bin/python

3.3 解压SDK

进入SDK所在目录,然后执行以下命令进行解压操作:

mkdir Luckfox-SDK && mv Luckfox_Lyra_SDK_250623.tar.gz ./Luckfox-SDK/ && cd Luckfox-SDK
tar -xzvf Luckfox_Lyra_SDK_250623.tar.gz 

然后对解压后的SDK进行解包操作:

.repo/repo/repo sync -l

3.4 编译SDK

首先选择自己开发板的配置文件:

./build.sh lunch

然后尝试编译整个SDK:

./build.sh

四、烧录镜像至开发板

4.1 将编译结果同步至Windows

在Linux中编译完镜像后,我们可以将编译结果同步到Windows中,方便在Windows中烧录镜像。

编译生成的文件存放在/SDK目录/output/firmware中,且全部为符号链接,使用ls -al可以显示具体的链接位置:

首先在Windows中新建一个文件夹,用于存放编译结果。我将该文件夹新建在文档目录下,并命名为Luckfox-Images:

然后在WSL的SDK目录下新建一个sync.sh脚本:

vim sync.sh

在脚本中将对应的文件同步到Windows中,示例如下,请根据实际路径更改:

#!/usr/bin/bash

rsync -v ./u-boot/rk3506_spl_loader_v1.04.110.bin /mnt/c/Users/用户名/Documents/Luckfox-Images/MiniLoaderAll.bin
rsync -v ./kernel-6.1/zboot.img /mnt/c/Users/用户名/Documents/Luckfox-Images/boot.img
rsync -v ./device/rockchip/.chips/rk3506/parameter-lyra-spinand.txt /mnt/c/Users/用户名/Documents/Luckfox-Images/parameter.txt
rsync -v ./buildroot/output/rockchip_rk3506_luckfox/images/rootfs.ubi /mnt/c/Users/用户名/Documents/Luckfox-Images/rootfs.img
rsync -v ./u-boot/uboot.img /mnt/c/Users/用户名/Documents/Luckfox-Images/uboot.img
rsync -v ./output/update/Image/update.img /mnt/c/Users/用户名/Documents/Luckfox-Images/update.img

保存脚本,并添加执行权限:

chmod +x ./sync.sh

执行同步脚本:

./sync.sh

等待脚本执行完毕,此时可以在Windows对应文件夹中看到这几个文件:

以后,每次编译完新镜像后,执行./sync.sh,即可在Windows中方便地访问镜像。

4.2 烧录镜像

打开RKDevTool,下载地址在此:直达链接

将按住开发板boot按键,链接到电脑,此时RKDevTool会提示有一个Loader设备连接,选择update.img,然后选择升级,即可将镜像烧录到开发板中。

Avatar photo

作者 Anysets

发表回复