嵌入式linux/鸿蒙开发板(IMX6ULL)开发流程(六)烧写整个系统或更新部分系统

简介: 嵌入式linux/鸿蒙开发板(IMX6ULL)开发流程(六)烧写整个系统或更新部分系统

1.烧写整个系统或更新部分系统


百问网开发了一款烧写软件:100ask_imx6ull_flashing_tool,它的界面如下:


1670750264418.jpg

使用这软件,只需要一条USB线连接电脑和开发板USB OTG口,只需要点击一个按钮就可以实现某项烧写功能。100ask_imx6ull_flashing_tool是一个GUI前端,它调用NXP官方的烧写工具uuu:Universal Update Utility(又名mfgtools 3.0)。


市面上的imx6ull开发板多是使用mfgtools 2.0来烧写,效率不高,脚本复杂;uuu有所改进,但是烧写效率还是不高。 我们做了很多改进,烧写更方便、效率更高。使用mfgtools烧写500M的映象文件到EMMC,耗时5分钟;而使用100ask_imx6ull_flashing_tool只需要1分钟。


本章会首先介绍100ask_imx6ull_flashing_tool的使用,后面也会介绍常规的烧写方法。


1.1 100ASK_IMX6ULL启动开关

MINI EMMC版 百问网 IMX6ULL EMMC版支持USB、EMMC、SD/TF卡三种启动方式。使用后2种启动方式之前,需要先在EMMC或SD/TF卡上烧写系统。

板子背后画有一个表格,表示这3种方式如何设置。表格如下:


1670750278889.jpg


这3种启动方式的设置示意图如下:


1670750289192.jpg


其中的USB启动模式主要用来烧写系统。 注意:设置为USB启动时,不能先插上SD/TF卡。

要在USB启动模式下烧写SD/TF卡时,需要先上电再插卡,先上电再插卡,先上电再插卡,。


1.2 在Windows使用USB烧写工具


NXP公司给IMX6ULL提供了烧写工具:mfgtools。注意nxp烧写工具不支持烧写imx6ull mini emmc版和imx6ull mini nand版,它的使用界面如下:


1670750309920.jpg


操作很简单,一键烧写整个映象文件。

但是,缺点也很多:

a. 不能单独烧写bootloader、内核、设备树 或者说,可以实现这些功能,但是需要你去修改xml配置文件,对初学者不友善,对老手也显得麻烦。

b. 烧写速度慢 烧写500M的系统,耗时5分钟(我们的工具可以在1分钟内烧完)。


基于上述缺点,我们开发了新的烧写工具100ask imx6ull flashing tool,并且完全开源。它有如下特点:

a.可以烧写整个系统,也可以分开烧写bootloader、内核、设备树

b. 可以上传用户文件到开发板系统中任意目录里

c.烧写速度是原厂工具的5倍

d.支持所有厂家的开发板烧写,注意:不只是支持100ASK_IMX6ULL,还支持其他厂家的IMX6ULL开发板。


从网盘下载工具后,在“01_Tools(工具)/100ask_imx6ull烧写工具”目录下双击运行“100ask_imx6ull_flashing_tool.exe”。

它有“基础版”、“专业版”两个页面。


1670750319060.jpg


“基础版”是专为100ASK_IMX6ULL设计的,点击一下即可完成某项烧写。

“专业版”功能更强大,特别是它可以上传文件到某个分区、某个目录。有些厂家的开发板,zImage和设备树是在第1个分区里的,而100ASK_IMX6ULL的zImage和设备树是在第2个分区里,所以这些厂家的开发板就无法使用基础版来烧写,需要使用专业版,指定分区、指定分区格式、指定路径,然后再上传文件。


注意:开发板必须设置为USB模式,如果要用SD/TF卡,必须先上电再插卡; 不能先插卡再上电,不能先插卡再上电,不能先插卡再上电!


1.2.1 烧写工具目录详解


在100ASK_IMX6ULL的配套资料中,有文件:“01_Tools (工具)/100ask_imx6ull烧写工具.tar.bz2”,把它解压后可得如下目录:


1670750334807.jpg


要留意的是files目录下的文件,各文件的作用在上图中列出来了,文件名不能改变,要更新某文件时需要覆盖旧文件。


这个烧写工具不断更新,现在是V3.0版本,增加了Nand Flash的烧写功能。上述截图中files目录下内容更丰富了,请见下表。


如果要更新某个文件,把新文件放进去覆盖同名文件即可。


1670750342947.jpg


1.2.2 连接USB OTG线


接线、设置USB启动的方式如下:

注意:USB串口线可接可不接,接上只是为了观察烧写过程。

注意:设置为USB启动时,先不要接TF卡


1670750358040.jpg


1.2.3 安装IMX6ULL的USB驱动程序


通过USB下载或是烧写程序时,需要把开发板的OTG口用USB线连接到电脑。一般都会自动安装驱动,烧写软件的绿灯不亮时,则很有可能是驱动程序没有安装好,这时再来看本节文档。


1.2.3.1 VMWARE可能会截取USB设备导致烧写失败


如果你运行了VMWARE,它会截取USB设备,可能会有如下提示:


1670750372074.jpg


要选择“连接到主机”,勾选“记住我的选择,以后不再询问”。

也许你不慎点错了“连接到虚拟机”,那也没关系,在VMWARE的菜单中把“Freescale SE Blank 6ULL”或“Netchip USB download gadget”断开连接,如下图所示:


1670750392186.jpg


1.2.3.2 USB驱动没有自动安装


通过USB下载或是烧写程序时,需要把开发板的OTG口用USB线连接到电脑。IMX6ULL开发板会通过这一个OTG口,模拟出2个USB设备(先后模拟,不是同时):“Freescale SE Blank 6ULL”、“USB download gadget”。


一般会自动安装好驱动程序,如果驱动程序没安装好,你可以去下载“zadig”来安装驱动。

安装第1个驱动:只要开发板设为USB启动(不要插SD/TF卡)并上电,电脑就会识别出“Freescale SE Blank 6ULL”设备,一般都会自动给它安装驱动程序。


如果没有自动安装好驱动程序(“设备已连接”绿灯没亮),要使用zadig安装libusb-win32驱动。

先去请点击-官网下载zadig并运行,然后参考下图安装驱动程序:


1670750416102.jpg


安装第2个驱动:当烧写工具的“设备已连接”绿灯亮起,就可以在“专业版”点击“运行”按钮,这时电脑会识别出“USB download gadget”设备,一般都会自动给它安装驱动程序,如下图:


1670750423444.jpg


如果没有自动安装好驱动程序(“固件已运行”绿灯没亮),先去https://zadig.akeo.ie/下载zadig并运行,然后参考下图安装驱动程序:


1670750432186.jpg


如果一切正常,烧写工具的2个绿灯都会亮,如下:


1670750439574.jpg


这就表示所有驱动都安装好了,可以重启开发板,使用后面2节的方法来烧写。


1.2.4 基础版烧写方法


要更新某个文件,就把它复制到烧写工具的files目录,比如zImage、100ask_imx6ull-14x14.dtb。

举例:要更新内核,先把新的zImage覆盖files目录下的zImage,然后接线,上电,选择设备,点击“更新内核”即可。 板子复位或重新上电后,在APP里操作即可,一个图就可以列清楚所有步骤:


1670750453883.jpg


当开发板设为USB模式,上图的烧写工具中“设备已连接”的绿灯亮起,就可以通过按钮一键烧写了,各按钮作用如下:


1670750461478.jpg


1.2.5 专业版烧写方法


专业版的强大在于烧写文件时可以选择任意文件,上传文件时可以指定分区、分区格式、目标路径。用法也很简单,一图足以说明:


1670750488481.jpg


有些开发板厂家把内核zImage、设备树放在第1个分区里,它通常是FAT分区。那么可以使用专业版来更新内核、更新设备树。 比如:


1670750497163.jpg


几乎所有的开发板的第2个分区都是EXT4格式,我们可以上传文件到它的任意目录下,比如:


1670750503991.jpg


1.3 老方法:使用win32diskimage通过读卡器烧写SD/TF卡


安装映象烧写工具win32diskimager后,插卡到电脑上,直接烧写即可。


安装软件 在“网盘的配套的资料\01_Tools (开发工具含ubuntu镜像等)

【Windows】SD卡IMG系统镜像烧写工具”中解压得到win32diskimager-1.0.0-install.exe软件,以后运行它时要“以管理员身份运行”。

把SD/TF卡接入读卡器,读卡器插到电脑上 3) 烧写映像文件

“以管理员身份运行”win32diskimager,如下图选择SD卡、选择映像文件sdcard.img,然后点击“写入”,操作步骤如下图所示:


1670750517543.jpg


上图中各序号含义为:


选择SD卡

选择映象文件,比如sdcard_20200211.img

点击“写入”

确定要写入。

烧写成功后,弹出对话框“写入成功”,如下图:


1670750527900.jpg


此时点击OK,拔下SD卡,将启动开关拨到SD卡处,上电启动开发板。

相关文章
|
14天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
55 3
|
14天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
45 2
|
24天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
42 5
linux系统服务二!
|
9天前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
14 3
|
14天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
50 3
|
17天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
36 6
|
17天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
50 6
|
18天前
|
机器学习/深度学习 自然语言处理 Linux
Linux 中的机器学习:Whisper——自动语音识别系统
本文介绍了先进的自动语音识别系统 Whisper 在 Linux 环境中的应用。Whisper 基于深度学习和神经网络技术,支持多语言识别,具有高准确性和实时处理能力。文章详细讲解了在 Linux 中安装、配置和使用 Whisper 的步骤,以及其在语音助手、语音识别软件等领域的应用场景。
50 5
|
18天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
41 3
|
18天前
|
监控 网络协议 算法
Linux内核优化:提升系统性能与稳定性的策略####
本文深入探讨了Linux操作系统内核的优化策略,旨在通过一系列技术手段和最佳实践,显著提升系统的性能、响应速度及稳定性。文章首先概述了Linux内核的核心组件及其在系统中的作用,随后详细阐述了内存管理、进程调度、文件系统优化、网络栈调整及并发控制等关键领域的优化方法。通过实际案例分析,展示了这些优化措施如何有效减少延迟、提高吞吐量,并增强系统的整体健壮性。最终,文章强调了持续监控、定期更新及合理配置对于维持Linux系统长期高效运行的重要性。 ####