SDK官方只支持在Linux系统上进行编译,因此,需要一台装有Linux系统的电脑,一般使用Ubuntu系统,这样可以进行可视化编程,同时可以使用强大的开发工具:vscode。
1. 启动一台装有Ubuntu的电脑(或虚拟机),SDK需要用到python,因此使用命令which python查看当前python存不存在,Ubuntu默认安装了python3,因此which python可能查不到python,可以使用sudo apt-get install python-is-python3使得默认调用python时,就是python3。
which python3
/usr/bin/python3
sudo apt-get install python-is-python3
2. 安装git,并设置git变量
sudo apt update && sudo apt-get install git
git config --global user.name "ysz"
git config --global user.email "xxx@xx.com"
3. 很多时候,我们无法直接从Rockchip官网获取SDK,可以从供应商那里拿到全套SDK,它包含有SDK开发手册,已经适配的Linux源代码,以及bootloader(U-Boot)的源码,各种交叉编译工具等。将SDK下载到用户的家目录下,由于SDK软件包通常很大,压缩成分包传输,因此,需要先将包合并,然后解压:
cat RK356X_LINUX5.10_SDK.tar.gz* >> RK356X_LINUX5.10_SDK.tar.gz
tar -xvzf RK356X_LINUX5.10_SDK.tar.gz
4. 解压后,进入到SDK目录下,通过命令ls可以查看SDK包里面的文件或文件夹:
5. SDK可能需要更新至官网最新版本,通过以下命令进行更新,但由于没有权限访问Rockchip官方源码服务器,因此这个命令实际是失效的
.repo/repo/repo sync -c
6.安装其它开发工具以及库:
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
注意,ubuntu 23以上的apt源不支持python2安装,因此需要在/etc/apt/sources.list中加入以下内容,再执行上面命令:
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
如果新的ubuntu不支持gpgv2,则安装gnupg,使用gpg --verify代替gpgv2验证
sudo apt install gnupg
7.用以编译U-Boot和Kernel的工具链
内核5.1及以上在:SDK/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu
内核4.4在:SDK/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu
至此,开发环境搭建结束!