陈工-创龙科技 发表于 2025-11-25 14:13:09

基于安路DR1M90 FPSoC 的Linux 系统全流程开发指南(1)

前言本文档由创龙科技研发,专为安路飞龙 DR1M90 FPSoC 产品打造,聚焦 Linux 系统全流程开发需求。


开发环境Windows开发环境:Windows10 64bitLinux开发环境:VMware16.2.5、Ubuntu22.04.4 64bitLinuxSDK开发包:LinuxSDK-[版本号](基于SDK_2025.1)交叉编译工具链:应用开发:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnuU-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配置核心板进行演示。
术语表为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklRzKAYvG-AABWVSvxEjE416.png
注意事项(1)进行本文档操作前,请先按照《开发环境搭建》文档,安装VMware虚拟机与Ubuntu、LinuxSDK、SecureCRT串口调试终端、TD、FD等相关软件。(2)Linux系统相关软件包位于产品资料“4-软件资料\Linux\”目录下,具体如下表。备注:我司推荐使用最新版本的LinuxSDK,亦可根据“4-软件资料\Linux\LinuxSDK\LinuxSDK-feature-support.pdf”的变更说明,自行替换对应模块(如device/rockchip)至旧版本LinuxSDK进行更新。
https://file1.elecfans.com/web3/M00/3E/8F/wKgZO2klRzmAQY-2AACK_Cop9WE354.png
LinuxSDK配置与编译请先参考《开发环境搭建》文档正确安装LinuxSDK和依赖软件,再执行以下步骤。配置编译选项进入LinuxSDK源码目录,执行如下命令,查看build.sh功能。Host# ./build.sh --help
https://file1.elecfans.com/web3/M00/3E/90/wKgZO2klR0CAV2jUAAE3Rcqo7gQ283.png
图 1
执行如下命令,配置LinuxSDK编译选项。芯片型号选择"1.anlogic_dr1m90",评估板型号选择"18.tldr1-evm"。Host# source ./envsetup.shHost# ./build.sh lunch
https://file1.elecfans.com/web3/M00/3E/90/wKgZO2klR0yAGQckAABbGOUb2iI923.png
图 2
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR02AMsfiAAFbSUWnD2A018.png
图 3
配置交叉编译工具链进入LinuxSDK源码的toolchains目录下,运行setup.sh脚本安装交叉编译工具链。Host# cd toolchains/Host# chmod 777 setup.shHost# ./setup.sh
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR1yAReBCAADrE2lHx2o566.png
图 4
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR2OAX_DhAAEuRItTxeU759.png
图 5
配置编译设备树文件我司提供的设备树文件位于LinuxSDK源码"linux/arch/arm64/boot/dts/anlogic"目录,具体说明如下表。
https://file1.elecfans.com/web3/M00/3E/90/wKgZO2klR3mAADGfAAAKXLDZiY0380.png
评估板使用的设备树文件存在多级的依赖关系,具体如下表所示。表中的下一级设备树文件,被上一级设备树文件所引用。
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR3-APoESAAALa0oT1Ag218.png
LinuxSDK默认编译的设备树文件为tldr1-evm.dts,如需修改其他设备树,请参考如下步骤修改。本次操作以修改为编译anlogic-dr1m90-ad101-v20.dts设备树进行演示,其他设备树修改方法同理。进入LinuxSDK源码目录执行如下命令,修改"device/.BoardConfig.mk"文件。Host# vim device/.BoardConfig.mk
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR4uAECvPAAAwQSD_LTI515.png
图 6
修改内容如下:
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"
https://file1.elecfans.com/web3/M00/3E/90/wKgZO2klR5SAQxmKAAIHELYJCEs043.png
图 7
配置内核选项我司默认配置的是Linux内核(推荐使用)。如需修改内核编译选项配置,请继续执行"./build.sh kernelmenuconfig"命令打开图形配置界面。如无需修改内核编译选项配置,可跳过此步骤。menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装ncurses库。Host# sudo apt-get install libncurses-dev
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR5yANCmyAACXH1HMKMM913.png
图 8
ncurses库安装完成后,执行如下命令打开图形配置界面。Host# cd /home/tronlong/DR1/SDK_2025.1/Host# ./build.sh kernelmenuconfig
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR6WAZjbVAAEqUS87_Q0637.png
图 9
https://file1.elecfans.com/web3/M00/3E/90/wKgZO2klR6aAfXdXAAFIitbJywg524.png
图 10
可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到内核中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到内核中。按下M键,会将相应的选项配置编译为内核模块,菜单选项前面变为< M >。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR8CAcZp3AAG1dleJc0c243.png
图 11
配置完毕后,选中<Save>,按Enter键保存配置选项。然后选中<Exit>,按Enter键退出。
https://file1.elecfans.com/web3/M00/3E/90/wKgZO2klR8eAV8zKAADYomiBdQQ707.png
图 12
配置Buildroot如需修改Buildroot配置,请执行如下命令打开Buildroot配置界面。若无需修改Buildroot配置,可跳过此步骤。Host# cd /home/tronlong/DR1/SDK_2025.1/Host# ./build.sh buildrootmenuconfig
https://file1.elecfans.com/web3/M00/3E/90/wKgZO2klR9GAZqUVAAD3RZBN-Yc140.png
图 13https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR9GAEb80AADWS53X6G8421.png
图 14
可通过键盘的方向键选中对应菜单栏。在<Select>被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y键,会将相应的选项配置编译到Buildroot中,同时菜单选项前面变为< * >。按下N键,不会将相应的选项配置编译到Buildroot中。如需搜索,可按下/键打开搜索框,然后输入要搜索的内容。配置完毕后,选中<Save>,按Enter键保存配置选项。然后选中<Exit>,按Enter键退出。编译LinuxSDK请确保已参照配置编译选项章节配置LinuxSDK编译选项,然后在LinuxSDK的源码目录下执行如下命令,一键编译生成U-Boot、Kernel、Buildroot等镜像,并打包生成Linux系统镜像。Host# ./build.sh all
https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR-OADVXtAADfskEY2_I324.png
图 15
预计耗时约2小时后编译完成,最终在LinuxSDK源码"device/output/anlogic_dr1m90"目录下生成U-Boot、Kernel、Buildroot等镜像如下所示。
https://file1.elecfans.com/web3/M00/3E/90/wKgZO2klR-qABTYsAABBd36tR-8704.png
图 16
系统组件镜像说明https://file1.elecfans.com/web3/M00/3E/91/wKgZPGklR_aAQ9p-AAAspYk2yHY433.png备注:u-boot.bin需与fsbl.elf文件合成BOOT.bin使用。

页: [1]
查看完整版本: 基于安路DR1M90 FPSoC 的Linux 系统全流程开发指南(1)