0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一步步完成安路飞龙 DR1M90 Linux 系统固化:启动卡制作 + eMMC 固化

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2025-11-21 10:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前 言

本文档主要演示Linux系统启动卡制作,以及将Linux系统镜像固化至eMMC的方法,旨在帮助开发者和测试人员快速完成产品方案验证与性能评估中的系统固化环节。

开发环境

Windows开发环境:Windows10 64bit

Linux开发环境:VMware16.2.5、Ubuntu22.04.464bit

LinuxSDK:LinuxSDK-[版本号](基于SDK_2025.1)

评估板系统版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02

术语表

为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

wKgZO2kfzNWAUvPeAAAak9yS0G8465.png表 1

注意事项

(1)无特殊说明情况下,默认使用USB TO UART1接口作为调试串口,通过路由器与PC机进行网络连接。

(2)评估板出厂时可能未固化最新系统镜像至eMMC存储。为确保您体验到我司提供的最新系统功能,建议您参考本文档,按照指引将最新系统镜像固化至eMMC。

Linux系统启动卡制卡工具包说明

制卡工具包版本说明

产品资料“4-软件资料LinuxMakesdboot”目录下的mksdboot_AA_BB_CC_DD.tar.gz压缩文件是Linux系统启动卡制卡工具包,主要包含FSBL、U-Boot、Linux内核镜像文件,以及文件系统压缩包等内容。AA_BB_CC_DD为制卡工具包的版本号,具体版本说明如下:

(1)AA:FSBL发布版本。详细信息请查看“4-软件资料LinuxFSBL”目录下的特性支持说明文件。

(2)BB:U-Boot发布版本。详细信息请查看“4-软件资料LinuxU-Boot”目录下的特性支持说明文件。

(3)CC:Linux内核发布版本。详细信息请查看“4-软件资料LinuxKernel”目录下的特性支持说明文件。

(4)DD:文件系统发布版本。详细信息请查看“4-软件资料LinuxFilesystem”目录下的特性支持说明文件。

制卡工具包目录说明

打开Ubuntu,将制卡工具包拷贝至“/home/tronlong/DR1/”工作目录下,进入制卡工具包所在路径,执行如下命令将其解压至当前目录。工具包名称需根据实际情况修改。

Host# cd /home/tronlong/DR1/

Host# tar -xf mksdboot_10_10_10_10.tar.gz

wKgZPGkfzSSAcKzlAABUYtTMkw8321.png图 1

执行如下命令,查看解压后的制卡工具包具体内容。

Host# tree -L 5 mksdboot_10_10_10_10

wKgZO2kfzSyAWmRsAABwzyz_K0c381.png图 2

(1)boot目录

  • BOOT.bin文件:由FSBL和U-Boot镜像合并生成,用于初始化PS端外设和U-Boot启动。
  • README.md文件:制卡工具包、FSBL、U-Boot、Linux内核、文件系统等版本信息说明文件。

(2)filesystem目录

  • boot目录:主要存放Linux内核、基础设备树。
  • rootfs目录:主要存放文件系统压缩包。
  • tools目录:主要存放eMMC固化脚本、NOR SPI FLASH固化脚本。

(3)mksdboot.sh文件:Linux系统启动卡制作脚本文件。

Linux系统启动卡制作

评估板出厂时,默认提供一张配套的Micro SD卡,此卡为可正常使用的Linux系统启动卡。本章节主要说明Linux系统启动卡的制作方法,可使用配套的Linux系统启动卡,或者使用新的空白Micro SD卡。如下步骤使用配套的Linux系统启动卡进行操作,如使用空白Micro SD卡,步骤类似。

MicroSD卡挂载

将Micro SD卡通过读卡器连接至PC机,Ubuntu系统识别后,一般会自动挂载MicroSD卡分区,如下所示。

wKgZPGkfzTeAQBx9AAIXvQsjoBo156.png图 3

若Ubuntu系统未自动识别,请右击右下角的USB大容量存储设备图标,再点击“Connect(Disconnect from Host)”进行识别。

wKgZPGkfzT6AHU19AAAbvY78JpU950.png图 4

如无以上图标或者连接不成功,请尝试如下方法:

(1)请将MicroSD卡通过读卡器插至PC机USB2.0接口,而不是USB3.0接口,部分版本VMware可能不兼容USB3.0。

(2)请将MicroSD卡通过读卡器插至PC机USB2.0接口,然后重启Ubuntu,在Ubuntu重启过程中不要取出。Ubuntu系统重启后,存储设备图标会重新出现。

Micro SD卡设备节点名确认

执行如下命令,确认MicroSD卡在Ubuntu系统的设备节点名。

Host# sudo fdisk -l

wKgZPGkfzU-ADk5vAAEpceYYyxU481.png图 5

可看到MicroSD卡设备节点是"/dev/sdb",并且有三个分区,分别为sdb1、sdb2和sdb3分区。设备节点名字是可变的,一般插拔多次或者使用不同的卡插拔后,可能会显示sdc或者sdd。

PV工具安装

PV(Pipe Viewer)是一种基于终端的工具,用于通过管道监测数据的进度。

为了更直观地显示系统启动卡的制作进度,Linux系统启动卡制作过程中会使用PV工具。请执行如下命令通过网络安装PV工具,如未安装PV工具将会导致系统启动卡制作失败。

Host# sudo apt-get install pv

wKgZPGkfzVaACPUcAAE8ZaOIJQE819.png图 6

Linux系统启动卡制作

如下为Linux系统启动卡制作命令。命令中"/dev/sdb"为MicroSD卡设备节点,如错误输入其他存储介质设备节点,将会造成存储介质数据损坏,请确认命令中设备节点无误后,再执行命令。

进入制卡工具包目录,执行如下命令。

Host# sudo ./mksdboot.sh -d /dev/sdb

wKgZO2kfzV-ANksQAADTwKxdF74050.png图 7

根据提示按回车键,进行Linux系统启动卡制作。

wKgZPGkfzWeADGqZAADrCZjMtDM196.png图 8

耗时约2min,Linux系统启动卡制作完成。同时,系统会打印提示信息,如下所示。制作时间与Linux系统大小、MicroSD卡容量和接口性能有关。

wKgZPGkfzzaAAn5PAACpcPmNO4A859.png图 9

可看到新制作的Linux系统启动卡共有BOOT、rootfs和rootfs-backup三个分区。其中BOOT分区为FAT32格式,rootfs分区和rootfs-backup分区为EXT4格式。FAT32格式分区在Windows系统下可见,EXT4格式分区在Windows系统下不可见,三个分区在Linux系统下均可见。

wKgZO2kfzz6AU5-DAADCMXse8MA214.png图 10

(1)BOOT分区:主要存放BOOT.bin等文件,从制卡工具包boot目录拷贝而来。使用Linux系统启动卡启动系统时,将使用此目录的BO0T.bin文件启动FSBL和U-Boot。

(2)rootfs分区:存放文件系统。rootfs分区boot目录主要存放内核镜像、基础设备树文件等,从制卡工具包"filesystem/boot/"目录拷贝而来。使用Linux系统启动卡启动系统时,将使用此目录的kernel.bin、dtb.bin文件启动内核。

(3)rootfs-backup分区:存放备份的文件系统。系统固化时,将其内容固化至eMMC文件系统分区。

wKgZPGkfz0iAazqXAADiCjx1Fi0624.png图 11

从Linux系统启动卡启动系统

评估板断电,将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将启动方式选择拨码开关拨为011(1~3),此档位为Micro SD启动模式。使用Type-C线连接评估板的USB TOUART1调试串口至PC机,然后将评估板上电启动,串口调试终端会打印如下类似启动信息。

wKgZPGkewYiACg5fAABX0a51kzM195.png图 12

系统启动后会自动登陆root用户,说明使用Linux系统启动卡启动评估板成功。

wKgZO2kfz1qAUBEYAAAWQ3Op438928.png图 13

固化Linux系统至eMMC

本小节介绍Linux系统固化过程,固化过程包含固化FSBL、U-Boot、内核、设备树、文件系统至eMMC。

固化Linux系统

Linux系统启动卡制作时,已将固化系统的脚本文件mkemmcboot.sh拷贝至Linux系统启动卡文件系统的“/opt/tools/”目录下。

Target# ls /opt/tools/mkemmcboot.sh

wKgZPGkfz2OAAc4FAAAJxI74V5g165.png图 14

执行如下命令进行一键固化,用时约2min后固化Linux系统至eMMC,同时串口调试终端打印提示信息。

Target# /opt/tools/mkemmcboot.sh

wKgZPGkfz2qAD1AmAABteDlHJAA640.png图 15

脚本会进行如下操作:

(1)清除U-Boot环境变量。

(2)将eMMC格式化为BOOT、rootfs分区。

(3)将Linux系统启动卡BOOT分区中的u-boot.img、tiboot3.bin、tispl.bin固化至eMMC对应分区。

(4)将Linux系统启动卡rootfs-backup分区中的文件系统固化至eMMC的rootfs分区,包括内核镜像和基础设备树文件。

从eMMC启动系统

评估板断电,将Linux系统启动卡从评估板Micro SD卡槽中取出,根据评估底板丝印将启动方式选择拨码开关拨为111(1~3),此档位为eMMC启动模式。使用Type-C线连接评估板的USB TOUART1调试串口至PC机,然后将评估板上电启动,串口调试终端会打印如下类似启动信息。

wKgZO2kfz8qAA2mAAABYn-POeFg912.png图 16

系统启动后会自动登陆root用户,说明从eMMC启动评估板成功。

wKgZPGkfz9KAW9TKAAAWeN-eXW0199.png图 17

Linux系统启动卡和eMMC分区说明

Linux系统启动卡分区说明

评估板启动,进入评估板系统后执行如下命令,查看Linux系统启动卡挂载信息

Target# fdisk-l

wKgZPGkfz9qALYpVAADCn9AE-lM223.png图 18

wKgZPGkfz-CATij_AAAhNuCx9fk763.png表 2

eMMC分区说明

执行如下命令,查看eMMC挂载信息

Target# fdisk-l

Target# dmesg | grep boot

wKgZO2kfz-yAbJtvAAAWKauCicE067.png图 19

wKgZO2kfz-yAbJtvAAAWKauCicE067.png图 20

wKgZPGkfz_2AfYiIAAAnkGdyNgU701.png表 3

eMMC剩余空间使用说明

为了保证文件系统健壮性,一般不推荐使用rootfs分区做频繁的数据读写,建议将eMMC剩余空间重新划分分区作为日常数据储存,若无需重新划分eMMC分区可跳过此步骤。

修改固化系统的脚本文件重新划分

如需通过修改固化系统的脚本文件重新划分eMMC剩余空间使用,请从Linux系统启动卡启动系统,然后执行如下命令,备份原有固化系统的脚本文件mkemmcboot.sh,修改mkemmcboot.sh内容。

固化系统的脚本文件mkemmcboot.sh位于Linux系统启动卡文件系统的"/opt/tools/"目录下。请先备份默认的mkemmcboot.sh做卡脚本。

Target# cp /opt/tools/mkemmcboot.sh /opt/tools/mkemmcboot-bak.sh

wKgZPGkf0AiAI1FXAAAHM1sy4cs126.png图 21

执行如下命令,修改mkemmcboot.sh脚本。

Target# vi/opt/tools/mkemmcboot.sh

wKgZPGkf0A-AaUi1AAASDfJldSo791.png图 22

添加内容如下:

parted -s ${EMMC_DEVICE} unit MiB mkpart primary ext4 -- ${partition_end} -2 //在第123行添加

mkfs.ext4 -F -L rootfs ${partition_list[2]}

sleep 1 //在第144和145行添加

修改内容如下:

partition_list=(${EMMC_DEVICE}p1 ${EMMC_DEVICE}p2 ${EMMC_DEVICE}p3) //在第127行修改

wKgZPGkf2OOAHHXSAABb7hRD56M089.png图 23

wKgZO2kf2OKAcHZyAAA53kM021g741.png图 24

执行脚本制作分区。

Target# /opt/tools/mkemmcboot.sh

wKgZPGkf2PaANVZzAABPuEp0BVI226.png图 25

wKgZO2kf2PaAEpKoAAA2UMcZzSU869.png图 26

执行如下命令,查看划分结果。

Target# fdisk -l

wKgZPGkf2QeAdB3NAAA0UopRKnE517.png图 27

wKgZPGkf2QeAL9IiAABGDXHMDX0170.png图 28

如需恢复默认的mkemmcboot.sh脚本,请执行如下命令。

Target# cp /opt/tools/mkemmcboot-bak.sh /opt/tools/mkemmcboot.sh

wKgZO2kf2ReAORKGAAAHO3EZatg096.png图 29

通过分区工具重新划分

若在此前划分了空闲分区(/dev/mmcblk1p3),请执行默认的mkemmcboot.sh脚本重新制作eMMC分区。

Target# /opt/tools/mkemmcboot.sh

wKgZPGkf2R2AS0zwAACGfdyjVJM315.png图 30

执行如下命令,使用parted工具划分eMMC分区。

Target# parted /dev/mmcblk1

wKgZPGkf2SaAPBzIAAAPL2BqLkg066.png图 31

执行如下命令,查看剩余的空闲空间。

parted# print free

wKgZO2kf2S-ASZGNAAAiHH142is701.png图 32

执行如下命令,划分空闲空间,并退出parted工具。

parted# unit MB mkpart primary ext4 1354MB 7818MB

parted# quit

wKgZO2kf2TaAf4-IAAAaYuQFU50286.png图 33

新建分区后,可能会自动挂载分区,请执行如下命令取消挂载新建的分区。若未自动挂载,则忽略此步骤。

Target# umount /mnt/mmcblk1p3

wKgZO2kf2T2APINZAAAMB--9w-o621.png图 34

执行如下命令,格式化新建的分区。

Target# mkfs.ext4 -F -L data /dev/mmcblk1p3

wKgZPGkf2WuAIdhqAAAzykColRw502.png图 35

至此,eMMC剩余的空闲空间划分完成,可以手动挂载新的分区,或者重新启动评估板将会自动挂载。

重启评估板,执行如下命令,查看新建的分区信息。

Target# df -h

wKgZO2kf2ZeAMrScAAArb8JheFo516.png图 36



审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11821

    浏览量

    219582
  • 嵌入式开发
    +关注

    关注

    18

    文章

    1176

    浏览量

    50233
  • emmc
    +关注

    关注

    7

    文章

    276

    浏览量

    56299
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    本手册由创龙科技研发,针对安路飞龙 DR1M90,详述 Linux 系统开发流程:LinuxSDK 配置编译、BOOT.bin(FSBL+U-Boot)开发、Kernel 与 Root
    的头像 发表于 11-30 15:46 2331次阅读
    基于安路<b class='flag-5'>DR1M90</b> FPSoC的<b class='flag-5'>Linux</b><b class='flag-5'>系统</b>全流程开发指南(4)

    RK3568-Linux系统启动制作系统固化

    RK3568-Linux系统启动制作系统固化
    的头像 发表于 01-22 11:06 3143次阅读
    RK3568-<b class='flag-5'>Linux</b><b class='flag-5'>系统启动</b><b class='flag-5'>卡</b><b class='flag-5'>制作</b>及<b class='flag-5'>系统</b><b class='flag-5'>固化</b>

    TLT507-Linux系统启动制作系统固化

    TLT507-Linux系统启动制作系统固化
    的头像 发表于 01-26 16:54 3606次阅读
    TLT507-<b class='flag-5'>Linux</b><b class='flag-5'>系统启动</b><b class='flag-5'>卡</b><b class='flag-5'>制作</b>及<b class='flag-5'>系统</b><b class='flag-5'>固化</b>

    【迅为电子】一步步教你完成iTOP-RK3568 EDP屏幕适配

    【迅为电子】一步步教你完成iTOP-RK3568 EDP屏幕适配
    的头像 发表于 04-23 15:08 2288次阅读
    【迅为电子】<b class='flag-5'>一步步</b>教你<b class='flag-5'>完成</b>iTOP-RK3568 EDP屏幕适配

    米尔国产FPGA SoC芯选择,安路飞龙DR1M90核心板重磅发布

    和8GB eMMC大容量存储,满足用户数据处理日益增长需求。 MYC-YM90X 核心板——小尺寸,大功能 安路飞龙DR1M90:高性能与丰富接口赋能边缘计算
    发表于 01-10 14:32

    Linux系统启动制作系统固化

    :ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05评估板支持通过Linux系统启动eMMC
    发表于 09-17 16:16

    Linux系统启动制作系统固化

    。本文档主要演示Linux系统启动制作,以及将Linux系统
    发表于 06-08 14:51

    ARM嵌入式系统如何入门?怎样一步步的去学习

    ARM嵌入式系统的学习步骤对于很多新手来说,不知道ARM嵌入式系统如何入门?怎样一步步的去学习?接下来信盈达教育嵌入式培训网就详解的为大家介绍:关于ARM嵌入式系统学习步骤:
    发表于 02-16 06:33

    一步步写嵌入式操作系统

    一步步写嵌入式操作系统_ARM编程的方法与实践
    发表于 07-14 11:32 0次下载

    3562-Linux系统启动制作系统固化

    ](基于 RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220) 评估板支持通过 Linux 系统启动(下文称为“SD
    的头像 发表于 03-05 15:58 1048次阅读
    3562-<b class='flag-5'>Linux</b><b class='flag-5'>系统启动</b><b class='flag-5'>卡</b><b class='flag-5'>制作</b>及<b class='flag-5'>系统</b><b class='flag-5'>固化</b>

    米尔-安路飞龙DR1M90 -国产FPGA核心板开发板

    MYC-YM90X核心板及开发板安路飞龙DR1M90 ,国产FPGA芯选择最新代FPSOC工业级64位MPU,2xCortex-A35@1
    发表于 01-15 14:57 4次下载

    安路DR1M90评估板:从基础外设到通信模块测试指南

    本手册由创龙科技研发,针对安路飞龙 DR1M90 评估板,详述 Linux 系统下功能测试流程。含系统启动验证,LED、按键、DDR 等基础
    的头像 发表于 11-20 15:26 1691次阅读
    安路<b class='flag-5'>DR1M90</b>评估板:从基础外设到通信模块测试指南

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

    本手册由创龙科技研发,针对安路飞龙 DR1M90,详述 Linux 系统开发流程:LinuxSDK 配置编译、BOOT.bin(FSBL+U-Boot)开发、Kernel 与 Root
    的头像 发表于 11-25 14:09 488次阅读
    基于安路<b class='flag-5'>DR1M90</b> FPSoC 的<b class='flag-5'>Linux</b> <b class='flag-5'>系统</b>全流程开发指南(<b class='flag-5'>1</b>)

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

    本手册由创龙科技研发,针对安路飞龙 DR1M90,详述 Linux 系统开发流程:LinuxSDK 配置编译、BOOT.bin(FSBL+U-Boot)开发、Kernel 与 Root
    的头像 发表于 11-26 17:01 453次阅读
    基于安路<b class='flag-5'>DR1M90</b> FPSoC 的<b class='flag-5'>Linux</b> <b class='flag-5'>系统</b>全流程开发指南(3)

    基于 DR1M90Linux-RT 内核开发:从编译配置到 GPIO / 按键应用实现(1

    ,及 rt_gpio_ctrl、rt_input 应用案例。含实操命令与测试方法,适配指定硬件,帮助开发者完成 Linux-RT 系统开发与优化,满足 DR1M90 产品实时性应用需求
    的头像 发表于 12-02 10:38 1316次阅读
    基于 <b class='flag-5'>DR1M90</b> 的 <b class='flag-5'>Linux</b>-RT 内核开发:从编译配置到 GPIO / 按键应用实现(<b class='flag-5'>1</b>)