RK3576 单板机 LinuxSDK 开发与系统定制手册(一)
前言本文是创龙科技面向 RK3576 单板机推出的 Linux 系统开发手册。文档围绕 LinuxSDK 完整开发流程展开,详细讲解 UBoot、Kernel、Rootfs 的配置、编译与替换方法,覆盖镜像解包打包、分区调整、CPU/GPU/NPU/DDR 性能管理、ADB 使用及开机 LOGO 定制等核心内容。创龙科技以标准化步骤与实操案例,助力开发者快速完成嵌入式系统定制与优化,满足工业与智能设备开发需求。开发环境Windows开发环境:Windows10 64bit、Windows7 64bit
Linux开发环境:VMware16.2.5、Ubuntu22.04.5 64bitLinuxSDK:LinuxSDK-[版本号](基于rk3576_linux6.1_release_v1.1.0)系统版本:Tronlong-Desktop 22.04(类Ubuntu)、Linux-6.1.115、U-Boot-2017.09交叉编译工具链:应用开发交叉编译工具链:gcc-11-aarch64-linux-gnu_11.4.0-1ubuntu1~22.04cross1_amd64.tar.gzU-Boot开发、内核开发:gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf备注:本文基于2GByte LPDDR4X、16GByte eMMC配置单板机进行演示。术语表为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。
https://file1.elecfans.com/web3/M00/54/5E/wKgZO2nfA4-AYG-aAABC4rM6Q0Y852.png
1 LinuxSDK安装1.1 安装依赖软件请先执行如下命令,更新软件列表。Host# sudo apt-get updatehttps://file1.elecfans.com/web3/M00/54/60/wKgZPGnfA5aAD32EAACM4kzF6dU476.png
图 1
执行如下命令,安装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 bc python-is-python3 python2https://file1.elecfans.com/web3/M00/54/60/wKgZPGnfA6GADkkTABVJAl_rHNk216.png
图 2
https://file1.elecfans.com/web3/M00/20/56/wKgZO2haBwCAYiCyAAFwDh3Hi5I466.png
图 3
若安装失败,可通过更换软件源解决。点击左下角图标,再点击"Software…"进入软件源更新的图形界面。
https://file1.elecfans.com/web3/M00/54/60/wKgZPGnfA6-AMMxrAAKbaaKXG3A967.png
图 4
在"Download from"选择"Other…",出现弹窗,找到"China",即可选择软件源,推荐使用清华大学镜像软件源,以匹配我司开发文档,然后点击"Choose Server"。https://file1.elecfans.com/web3/M00/54/60/wKgZPGnfBXGAXcYYAADiYZkpDT0076.png
图 5
https://file1.elecfans.com/web3/M00/54/60/wKgZPGnfBWSAHMFjAABia4N9FWA372.png
图 6
https://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBYOAFpCNAABz04KvwQY431.png
图 7
输入登录虚拟机Ubuntu的密码,然后点击"Authenticate"。
https://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBY2ADPnvAABCnE3hb7Y639.png图 8
点击"Close",完成更换软件源。
https://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBZSARLWHAADjxyp3-rc088.png
图 9
执行如下命令,检查主机的Python版本(需安装Python 3.6及以上版本)。Host# python --version
https://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBZyAT9hoAAAlcdyjKj4513.png
图 10
1.2解压LinuxSDK打开Ubuntu,执行如下命令,创建RK3576工作目录。Host# mkdir -p /home/tronlong/RK3576
https://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBaOACOO5AABMoeLAR7k410.png
图 11
请将产品资料“4-软件资料\Linux\LinuxSDK\”目录下的LinuxSDK-[版本号].tar.gz开发包解压至Ubuntu系统的RK3576工作目录中,执行如下命令进行解压。耗时约5min后解压完成,生成rk3576_linux6.1_release文件夹,即为LinuxSDK源码目录。Host# cd /home/tronlong/RK3576/Host# tar -zxf LinuxSDK-v1.0.tar.gz备注:LinuxSDK版本号以实际情况为准。
https://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBaqAHT3kAAGyq2vhs2s714.png
图 12
执行如下命令,查看当前LinuxSDK源码目录。Host# cd rk3576_linux6.1_release/Host# ls -lhttps://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBbGAI4kyAAIkq9v7098315.png
图 13
https://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBbiAbRH7AABtG84t9YE560.png
2 LinuxSDK配置与编译请先参考“LinuxSDK安装”章节正确安装LinuxSDK和依赖软件,再执行以下步骤。2.1配置编译选项进入LinuxSDK源码目录,配置LinuxSDK编译选项。Host# ./build.sh sbc_tl3576_ubuntu_defconfig
2.1.1配置编译设备树文件我司提供的设备树文件位于LinuxSDK源码"kernel/arch/arm64/boot/dts/rockchip"目录。设备树文件根据单板机部分复用外设功能进行区分。具体说明如下表。
https://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBcKAMxhLAAAvhvhMnT4203.png
单板机使用的设备树文件存在多级的依赖关系,具体如下表所示。表中的下一级设备树文件,被上一级设备树文件所引用。
https://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBcqAV0TXAAAdowVIDXs511.png
2.1.2配置内核选项我司默认配置的是Linux内核(推荐使用)。如需修改内核编译选项配置,请继续执行"make -j8 CROSS_COMPILE=aarch64-none-linux-gnu- ARCH=arm64 menuconfig"命令打开图形配置界面。此命令通过读取当前目录的.config文件,以图形界面的方式提供内核编译配置查看和修改方法。如无需修改内核编译选项配置,可跳过此步骤。menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装ncurses库。Host# sudo apt-get install libncurses5-devhttps://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBdSAYB7QAAE45DtuxDE202.png
图 14
Host# sudo apt-get install libncursesw5-devhttps://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBdqAeMguAAE0Y0BEcqs583.png
图 15
ncurses库安装完成后,在LinuxSDK源码目录执行如下命令,打开图形配置界面。Host# ./build.sh kernel-confighttps://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBeWAP2KxAAtz2PpOeMA709.png
图 16
https://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBeWAIyj2AAF0_F5572w494.png
图 17可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到内核中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到内核中。按下M键,会将相应的选项配置编译为内核模块,菜单选项前面变为< M >。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。配置完毕后,选中<Save>,按Enter键保存配置选项。然后选中<Exit>,按Enter键退出。配置项将自动保存到"kernel/arch/arm64/configs/rockchip_linux_defconfig"。2.2拷贝根文件系统镜像在LinuxSDK源码目录,执行如下命令,创建ubuntu工作目录。Host# mkdir -p ubuntuhttps://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBfeANTLKAAA4nXEv-jw190.png
图 18
我司已提供Rootfs根文件系统镜像位于“4-软件资料\Linux\Filesystem\Tronlong-Desktop 22.04\image\Tronlong-Desktop 22.04-[版本号]-\”目录下(版本号、Git系列号请以实际情况为准),请将其拷贝至LinuxSDK源码目录的"ubuntu"目录下。https://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBgCAOxUkAAA9CGpmd6U536.png
图 192.3编译LinuxSDK请确保已参照“配置编译选项”章节正确配置LinuxSDK编译选项,然后在LinuxSDK的LinuxSDK源码目录下执行如下命令,一键编译生成U-Boot、Kernel、文件系统、Recovery等镜像,并打包生成系统镜像。Host# ./build.shhttps://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBgeAeN1LAADA0IxjNB0428.png
图 20
预计耗时约2小时后编译完成,最终在rockdev目录下生成U-Boot、Kernel、文件系统、Recovery系统等镜像如下所示。
https://file1.elecfans.com/web3/M00/54/5F/wKgZO2nfBhSAMT6PAAIktCExDpQ684.png
图 21
https://file1.elecfans.com/web3/M00/54/61/wKgZPGnfBhSAA7B6AABX7MOQVh4209.png
图 22
页:
[1]