陈工-创龙科技 发表于 2025-11-5 15:07:04

瑞芯微 RK3588 平台 Debian 系统开发案例与使用说明

前言请先按照开发环境搭建文档进行开发环境搭建,由于系统编译过程需下载相关软件工具包,因此请确保Ubuntu可正常访问互联网。本说明文档适用开发环境如下:Windows开发环境:Windows 7 64bit、Windows 10 64bit虚拟机:VMware16.2.5开发环境:Ubuntu20.04.6 64bitU-Boot:U-Boot-2017.09Kernel:Linux-5.10.160、Linux-RT-5.10.160Debian:Debian 11LinuxSDK:LinuxSDK-[版本号](基于rk3588_linux_release_v1.2.1_20230720)Debian系统相关软件包位于产品资料“4-软件资料\Debian\”目录下,具体如下表所示。其中,我司已提供U-Boot、Kernel、***ystem和Debian系统镜像文件,U-Boot、Kernel、***ystem源码位于LinuxSDK开发包内。备注:我司推荐使用最新版本的LinuxSDK,亦可根据“4-软件资料\Debian\LinuxSDK\LinuxSDK-feature-support.pdf”的变更说明,自行替换对应模块(如device/rockchip)至旧版本LinuxSDK进行使用。https://file1.elecfans.com/web3/M00/3A/22/wKgZO2kK61WAPdpiAABBIWjrwoI255.png
表 1
LinuxSDK安装安装依赖软件执行如下命令,安装LinuxSDK开发包依赖软件。备注:安装过程中,请保证Ubuntu可正常访问互联网,若提示"*** is already the newest version ***"表示该软件已安装,请忽略。Host# sudo apt-get install -y 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 libmpfr-dev
https://file1.elecfans.com/web3/M00/3A/21/wKgZPGkK7CGAAd7cAAH-ZlIarz0068.png
图 1
https://file1.elecfans.com/web3/M00/3A/22/wKgZO2kK7CGAck0dAAGJIuYyTfM717.png
图 2
执行如下命令,将Python2和Python软链接为Python3。Host# sudo ln -s /usr/bin/python3 /usr/bin/python2Host# sudo ln -s /usr/bin/python3 /usr/bin/pythonHost# ls -al /usr/bin/python*
https://file1.elecfans.com/web3/M00/3A/22/wKgZO2kK7DWAfnj8AADXigpmosY721.png
图 3
执行如下命令,查看Python版本,确认是否链接成功。备注:Python版本需3.8.0及以上。Host# python --versionHost# python2--version
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7D2AUMmGAAA8R1LbLBA908.png
图 4
请将产品资料“4-软件资料\Debian\Tools\”目录下的LZ4_old1-dev.zip压缩包拷贝至Ubuntu,执行如下命令进行解压。Host# unzip LZ4_old1-dev.zip
https://file1.elecfans.com/web3/M00/3A/22/wKgZO2kK7EaAXFw8AAIobf1huaI389.png
图 5
执行如下命令,进行安装LZ4。Host# cd LZ4_old1-dev/Host# makeHost# sudo make installHost# sudo install -m 0755 lz4 /usr/bin/lz4
https://file1.elecfans.com/web3/M00/3A/22/wKgZO2kK7E-Aehj4AACKznFr7pc137.png
图 6
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7E-AZuaDAACcu0ynXj8270.png
图 7
执行如下命令,查看LZ4版本信息。备注:LZ4版本需v1.9.3及以上。Host# lz4 -v
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7HWAE76TAAA9GR0Nriw217.png
图 8
执行如下命令,安装PPA。Host# sudo apt install software-properties-common
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7J6***XIJAAH6hj1YBQg406.png
图 9
执行如下命令,向PPA中更新Git软件源,需按回车键确认更新。Host# sudo add-apt-repository ppa:git-core/ppa
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7KeAGEgsAADBcAcdvFg750.png
图 10
执行如下命令,更新软件列表并安装Git。备注:安装时长受网络速率影响,请耐心等待。Host# sudo apt-get updateHost# sudo apt-get install git
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7LG***YVkAAHGIzO0WzA911.png
图 11
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7LGAX2WFAAHdl0FzD_c719.png
图 12
执行如下命令,查看Git版本信息。备注:建议将版本更新至2.38.0及以上,以免因版本过低导致LinuxSDK编译失败。Host# git -v
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7MCAbZGyAAAhvJqyh9I184.png
图 13
请将产品资料“4-软件资料\Debian\Tools\”目录下的live-build-master.zip压缩包拷贝至Ubuntu系统live-build目录下,执行如下命令新建live-build目录,并进行解压。Host# mkdir live-buildHost# cd live-buildHost# unzip live-build-master.zip
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7PWADF_gAAEzfDOllGE513.png
图 14
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7PWAexKGAADBkiS_Xm***67.png
图 15

执行如下命令,安装live-build-master相关文件。Host# cd live-build-masterHost# sudo apt-get remove live-buildHost# git clone https://salsa.debian.org/live-team/live-build.git --depth 1 -b debian/1%20230131
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7UyAPTKqAAHxmLmjwKE857.png
图 16
执行如下命令,编译相关配置。Host# cd live-buildHost# rm -rf manpages/po/Host# sudo make install -j8
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7VOAIVyKAAHVdqRBJcU965.png
图 17
解压LinuxSDK由我司提供的LinuxSDK-[版本号].tar.gz开发包位于产品资料“4-软件资料\Debian\LinuxSDK\”目录下,基于瑞芯微的rk3588_linux_release_v1.2.1_20230720进行开发。打开Ubuntu,执行如下命令,创建RK3588工作目录。Host# mkdir -p /home/tronlong/RK3588
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7VuAIoXqAABHsYxidWw567.png
图 18
请将LinuxSDK开发包拷贝至RK3588工作目录,执行如下命令,将LinuxSDK开发包解压至RK3588工作目录。耗时5min后解压完成,生成rk3588_linux_release_v1.2.1文件夹,即为LinuxSDK源码目录。为了减少LinuxSDK大小,通过repo进行压缩,压缩后在LinuxSDK源码目录下生成.repo的隐藏目录。备注:LinuxSDK版本号以实际情况为准。Host# cd /home/tronlong/RK3588/Host# tar -zxf LinuxSDK-v2.0.tar.gz
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7WaAeemrAACKVb5sn68901.png
图 19
执行如下命令,查看当前LinuxSDK源码目录。备注:LinuxSDK-v2.5.tar.gz及以上版本,无需从repo仓库更新LinuxSDK源码。Host# cd rk3588_linux_release_v1.2.1/Host# ls -al
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7XGARi3UAABU5D8JyfU852.png
表 2 LinuxSDK源码目录结构
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7XKAAvw5AAHtjRZ7sLw605.png
图 20
解压Debian dl压缩包请将产品资料“4-软件资料\Debian\LinuxSDK\”目录下的dl.tar.gz压缩包拷贝至"RK3588/rk3588_linux_release_v1.2.1/buildroot/"目录。dl.tar.gz压缩包用于存放从官网下载的开源软件包,LinuxSDK编译时可从该目录获取开源包,以节约下载时间,提高编译效率,且能避免因网络环境差异导致编译失败的问题。
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7YeALK1mAACRscpgGvo859.png
图 21
执行如下命令,将dl.tar.gz压缩包解压至当前目录。Host# tar -zxf dl.tar.gz
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7Y6AXpz0AACz7R8LWlg763.png
图 22
Debian系统镜像编译、生成配置编译选项进入LinuxSDK源码目录,执行如下命令配置编译选项。Host# ./build.sh device/rockchip/rk3588/tl3588_evm_defconfig
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7ZaAPu_MAADE0RWVs5I125.png
图 23
配置编译设备树文件由于部分外设功能之间存在引脚复用关系,因此需通过不同的设备树文件进行配置。我司提供的设备树文件位于LinuxSDK源码"kernel/arch/arm64/boot/dts/rockchip/"目录,具体说明如下。
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7Z6AJ93aAAAdOWvUJd4320.png
表 3
评估板使用的设备树文件存在多级的依赖关系,具体如下表所示。表中的下一级设备树文件,被上一级设备树文件所引用。
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7aWAMihRAAAaogkxGb0449.png
表 4
LinuxSDK默认编译的设备树文件为tl3588-evm.dts,如需替换为支持对应功能的其他设备树,请参考以下步骤修改。本次操作以替换为tl3588-evm-edp.dts设备树进行演示,如需使用支持其它设备树,修改方法同理。执行如下命令,修改"device/rockchip/rk3588/tl3588_evm_defconfig"文件。Host# vi device/rockchip/rk3588/tl3588_evm_defconfig
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7a2AOJYgAABGzMDwesU104.png
图 24
修改内容如下:
#RK_KERNEL_DTS_NAME="tl3588-evm" //添加注释符"#"RK_KERNEL_DTS_NAME="tl3588-evm-edp" //删除注释符"#"
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7baAaKxQAAA9SDYQGsg238.png
图 25
执行如下命令,配置编译选项。Host# ./build.sh device/rockchip/rk3588/tl3588_evm_defconfig
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7b2AGmC2AADGvPjRjYc852.png
图 26
配置内核选项我司默认配置的是Linux内核(推荐使用)。如需修改内核编译选项配置,请继续执行"make xxx menuconfig"命令打开图形配置界面。此命令通过读取当前目录的.config文件,以图形界面的方式提供内核编译配置查看和修改方法。如无需修改内核编译选项配置,可跳过此步骤。menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装ncurses库。Host# sudo apt-get install libncurses5-devHost# sudo apt-get install libncursesw5-dev
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7cWAes4VAAD8NawyoyA318.png
图 27
ncurses库安装完成后,执行如下命令打开图形配置界面。Host# ./build.sh kernel-config
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7c6AD2e_AAEpaWEspyQ859.png
图 28
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7c6AVfbkAAJbvy5fip0529.png
图 29
可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到内核中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到内核中。按下M键,会将相应的选项配置编译为内核模块,菜单选项前面变为< M >。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7d2AJO3lAAIcCOCxt78429.png
图 30

在图形配置界面中,进入"General setup -> Preemption Model (Voluntary Kernel Preemption (Desktop)) ---> "路径,选中"Fully Preemptible Kernel (Real-Time)"选项,即可配置为Linux-RT内核,此时菜单选项前面变为( X )。反之,则配置为Linux内核。
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7eaAHVKLAAB27sf9FuM116.png
图 31
配置完毕后,可双击Esc键自动保存退出。
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7e6Af41nAADDFyVkrag155.png
图 32
编译LinuxSDK在LinuxSDK安装目录下执行如下命令,一键编译生成U-Boot、Kernel、Debian、Recovery等镜像,并打包生成Debian系统镜像。Host# ./build.sh
https://file1.elecfans.com/web3/M00/3A/22/wKgZPGkK7fSAeu9-AAFktfW6bv8561.png
图 33
由于当前模式为非root用户,因此在编译过程中若遇到如下提示,请输入用户密码,本次输入Tronlong。
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7fyAYFHmAAFlmlshFu0470.png
图 34
预计耗时约2小时后编译完成,最终在rockdev目录下生成U-Boot、Kernel、Debian、Recovery等镜像和Debian系统镜像,如下图所示。
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7g6ABKACAAG-oKOp9dU246.png
图 35
https://file1.elecfans.com/web3/M00/3A/23/wKgZPGkK7g6AclPHAAFhiV-mwUw632.png
图 36
https://file1.elecfans.com/web3/M00/3A/23/wKgZO2kK7huAenFwAAA-Hl3itC4553.png
表 5 镜像文件说明
请参考《系统启动卡制作及系统固化》文档,将Debian系统镜像文件固化至Micro SD卡或eMMC。备注:由于每次执行命令"./build.sh"编译LinuxSDK都会备份output目录下的镜像至"output/TL3588-EVM/DEBIAN/20231221_164609/IMAGES/"目录下,将会占用较多的存储空间,因此请根据实际情况删除无需保留的镜像文件,释放储存空间。
https://file1.elecfans.com/web3/M00/3A/23/wKgZPGkK7iSAc5jFAABpBP2pBcQ106.png
图 37
由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!

页: [1]
查看完整版本: 瑞芯微 RK3588 平台 Debian 系统开发案例与使用说明