
本文档由创龙科技研发,专为安路飞龙 DR1M90 FPSoC 产品打造,聚焦 Linux 系统全流程开发需求。
Windows开发环境:Windows10 64bit
Linux开发环境:VMware16.2.5、Ubuntu22.04.4 64bit
LinuxSDK开发包:LinuxSDK-[版本号](基于SDK_2025.1)
交叉编译工具链:
应用开发:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
U-Boot、内核开发:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
评估板系统版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02
备注:本文基于8GByte eMMC、1GByte DDR3配置核心板进行演示。
为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

(1)进行本文档操作前,请先按照《开发环境搭建》文档,安装VMware虚拟机与Ubuntu、LinuxSDK、SecureCRT串口调试终端、TD、FD等相关软件。
(2)Linux系统相关软件包位于产品资料“4-软件资料\Linux\”目录下,具体如下表。
备注:我司推荐使用最新版本的LinuxSDK,亦可根据“4-软件资料\Linux\LinuxSDK\LinuxSDK-feature-support.pdf”的变更说明,自行替换对应模块(如device/rockchip)至旧版本LinuxSDK进行更新。

请先参考《开发环境搭建》文档正确安装LinuxSDK和依赖软件,再执行以下步骤。
进入LinuxSDK源码目录,执行如下命令,查看build.sh功能。
Host# ./build.sh --help

执行如下命令,配置LinuxSDK编译选项。芯片型号选择"1.anlogic_dr1m90",评估板型号选择"18.tldr1-evm"。
Host# source ./envsetup.sh
Host# ./build.sh lunch


进入LinuxSDK源码的toolchains目录下,运行setup.sh脚本安装交叉编译工具链。
Host# cd toolchains/
Host# chmod 777 setup.sh
Host# ./setup.sh


我司提供的设备树文件位于LinuxSDK源码"linux/arch/arm64/boot/dts/anlogic"目录,具体说明如下表。

评估板使用的设备树文件存在多级的依赖关系,具体如下表所示。表中的下一级设备树文件,被上一级设备树文件所引用。

LinuxSDK默认编译的设备树文件为tldr1-evm.dts,如需修改其他设备树,请参考如下步骤修改。
本次操作以修改为编译anlogic-dr1m90-ad101-v20.dts设备树进行演示,其他设备树修改方法同理。
进入LinuxSDK源码目录执行如下命令,修改"device/.BoardConfig.mk"文件。
Host# vim device/.BoardConfig.mk

修改内容如下:
export ANLOGIC_KERNEL_DTS=anlogic-dr1m90-ad101-v20.dts //将"tldr1-evm.dts"修改为"anlogic-dr1m90-ad101-v20.dts"
export ANLOGIC_KERNEL_DTB=device/output/anlogic_dr1m90/linux/arch/arm64/boot/dts/anlogic-dr1m90-ad101-v20.dtb //将"tldr1-evm.dtb"修改为"anlogic-dr1m90-ad101-v20.dtb"

我司默认配置的是Linux内核(推荐使用)。如需修改内核编译选项配置,请继续执行"./build.sh kernelmenuconfig"命令打开图形配置界面。如无需修改内核编译选项配置,可跳过此步骤。
menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装ncurses库。
Host# sudo apt-get install libncurses-dev

ncurses库安装完成后,执行如下命令打开图形配置界面。
Host# cd /home/tronlong/DR1/SDK_2025.1/
Host# ./build.sh kernelmenuconfig


可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。
每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到内核中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到内核中。按下M键,会将相应的选项配置编译为内核模块,菜单选项前面变为< M >。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。

配置完毕后,选中<Save>,按Enter键保存配置选项。然后选中<Exit>,按Enter键退出。

如需修改Buildroot配置,请执行如下命令打开Buildroot配置界面。若无需修改Buildroot配置,可跳过此步骤。
Host# cd /home/tronlong/DR1/SDK_2025.1/
Host# ./build.sh buildrootmenuconfig


可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。
每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到Buildroot中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到Buildroot中。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。
配置完毕后,选中<Save>,按Enter键保存配置选项。然后选中<Exit>,按Enter键退出。
请确保已参照配置编译选项章节配置LinuxSDK编译选项,然后在LinuxSDK的源码目录下执行如下命令,一键编译生成U-Boot、Kernel、Buildroot等镜像,并打包生成Linux系统镜像。
Host# ./build.sh all

预计耗时约2小时后编译完成,最终在LinuxSDK源码"device/output/anlogic_dr1m90"目录下生成U-Boot、Kernel、Buildroot等镜像如下所示。


备注:u-boot.bin需与fsbl.elf文件合成BOOT.bin使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。