CN101344854B - 通过SD卡对嵌入式Linux设备进行升级的方法 - Google Patents
通过SD卡对嵌入式Linux设备进行升级的方法 Download PDFInfo
- Publication number
- CN101344854B CN101344854B CN200810304146XA CN200810304146A CN101344854B CN 101344854 B CN101344854 B CN 101344854B CN 200810304146X A CN200810304146X A CN 200810304146XA CN 200810304146 A CN200810304146 A CN 200810304146A CN 101344854 B CN101344854 B CN 101344854B
- Authority
- CN
- China
- Prior art keywords
- card
- refresh routine
- linux
- upgrading
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式设备技术,解决了嵌入式Linux手持移动终端设备软件升级需要外接一个RS232串行调试接口的缺点,提供了一种通过SD卡对嵌入式Linux设备进行升级的方法,其技术方案概括为:通过SD卡对嵌入式Linux设备进行升级的方法,其特征在于,包括以下步骤:a.交叉编译得到更新命令,并存储在可作为设备启动根文件系统的SD卡上;b.在SD卡上创建根文件更新列表及更新源程序模块;c.将SD卡插入设备并通过特定操作启动更新程序;d.进行升级;e.升级完成。其有益效果是,可通过SD卡对嵌入式Linux设备进行简单、快捷、安全的软件升级,适用于基于MTD分区的嵌入式Linux手持移动终端设备。
Description
技术领域
本发明涉及嵌入式设备技术,特别涉及嵌入式Linux设备升级的技术。
背景技术
在计算机嵌入式应用技术领域,Linux内核凭借其出色性能和开源路线,使得基于Linux的嵌入式手持移动终端设备日益增多,而在此类嵌入式产品研发过程中,如何采用可靠且简便的方法进行系统软件和应用软件的实时升级是一个十分关键和重要的环节,这直接关系着产品的生命周期、维护成本、功能完善以及售后服务等诸多方面,目前基于Linux的嵌入式产品研发过程中通常采用串口环境进行调试和软件升级,故需要产品外接一个RS232串行调试接口,而成品样机则往往无此类串行调试接口,现有基于MTD(Memory Technology Devices)分区的嵌入式Linux设备系统中,一股包括YAMON、Linux内核、根文件系统几个模块,应用程序存放在根文件系统中,其中YAMON和Linux内核位于NOR-Flash中,对于这二者的更新必须使用flash_eraseall和flashcp命令,根文件系统则可放在Nandflash上。
发明内容
本发明所要解决的技术问题,就是为了解决上述基于Linux的嵌入式手持移动终端设备软件升级需要外接一个RS232串行调试接口的缺点,提供一种通过SD卡(Secure DigitalMemory Card)对嵌入式Linux设备进行升级的方法。
本发明解决其技术问题,采用的技术方案是,通过SD卡对嵌入式Linux设备进行升级的方法,其特征在于,包括以下步骤:
a.在具有符合该嵌入式Linux设备架构的开源GCC工具的本地操作系统环境中,交叉编译开源工具包mtd-utils,得到flash_eraseall和flashcp这两个Linux的MTD分区更新命令,并存储在可作为设备启动根文件系统的SD卡上;
b.在SD卡上创建根文件更新列表及作为更新源的程序模块;
c.将SD卡插入设备并通过终端触摸屏的特定操作启动更新程序,特定操作是指在开发过程中确定的通过触摸屏操作的升级触发方式;
d.根据更新程序进行升级;
e.升级完成;
进一步的,步骤c所述更新程序包括设备产品硬件中的更新程序和SD卡的更新程序;
具体的,步骤b所述在SD卡上创建根文件更新列表及作为更新源的程序模块包括创建应用程序或Linux内核或根文件系统或YAMON启动程序的更新指导信息及其作为更新源的程序模块;
再进一步的,步骤d包括以下步骤:
d1.更新程序根据SD卡上的更新列表判断更新模式,若仅需要更新应用程序则进入f1步骤,若需要更新内核或YAMON则进入g1步骤,若需要修改以只读模式挂载的MTD分区内容则进入h1步骤;
f1.更新程序调用linux的标准killall命令停止当前应用程序的执行;
f2.更新程序调用cp命令将SD卡上的新应用程序复制到合适的位置;
f3.更新程序重新创建一个新的进程运行更新后的主应用程序,并进入e步骤;
g1.更新程序使用SD卡上的flash_eraseall和flashcp命令将SD卡上的新内核文件或新YAMON文件覆盖至NOR-Flash中Linux内核或YAMON文件对应的MTD分区;
g2.重启系统并进入e步骤;
h1.更新程序调用SD卡上的flash_eraseall和flashcp命令进行设备的YAMON和内核的更新;
h2.更新程序在SD卡上特定位置创建重启时的更新信息标志,并调用reboot命令重启系统;
h3.在设备以SD卡为根文件系统重启后,SD卡上的更新程序部分会根据SD卡上的更新信息标志,对在正常使用时使用mount-o ro参数命令进行挂载的MTD分区进行mount-o rw参数的挂载,并对其中的相应内容进行更新;
h4.SD卡中的更新程序部分再次调用flash_eraseall和flashcp命令将设备系统恢复到正常执行时的YAMON和Linux内核设置;
h5.更新程序再次调用reboot命令重启完成了所有更新后的设备系统并进入e步骤。
本发明的有益效果是,通过以上步骤可以使得支持SD卡并基于MTD分区的基于Linux的嵌入式手持移动终端设备在不需要外接RS232串行调试接口的前提下,可以通过SD卡进行简单、快捷、安全的软件升级,升级过程中无需人为控制。
附图说明
图1为实施例的系统流程图。
具体实施方式
下面结合附图及实施例,详细描述本发明的技术方案。
本发明提供了一种通过SD卡对基于MTD分区的嵌入式Linux手持移动终端设备进行升级的方法,首先在具有符合该嵌入式Linux设备架构的开源GCC工具的本地操作系统环境中,交叉编译开源工具包mtd-utils,得到flash_eraseall和flashcp这两个Linux的MTD分区更新命令,并存储在可作为设备启动根文件系统的SD卡上,再在SD卡上创建更新程序的指导信息及作为更新源的程序模块,最后将SD卡插入设备并通过终端触摸屏的特定操作启动更新程序进行升级。
实施例
本例提供一种通过SD卡对基于MTD分区的嵌入式Linux手持移动终端设备进行升级的方法,包括应用程序或Linux内核或根文件系统或YAMON启动程序等众多软件模块的自动安全更新升级,其系统流程图如图1。
首先,对于嵌入式Linux手持移动终端设备而言,更新程序由设备产品的硬件中的更新程序和SD卡中的更新程序两部分组成,由在开发过程中与应用程序开发人员协商所确定的通过触摸屏操作的升级触发方式来触发和启动,然后在一张拥有足够空间的具有linux ext3文件系统格式的SD卡上创建设备的Linux根文件系统,从而使得该SD卡能够成功引导系统启动,然后下载flash_eraseall.c和flashcp.c开源代码,在具有符合该嵌入式Linux设备架构的开源GCC工具的本地操作系统环境中,交叉编译开源工具包mtd-utils,得到flash_eraseall和flashcp这两个Linux的MTD分区更新命令,并将其拷贝到SD卡上,为了在使用SD卡进行软件升级时安全可靠,避免无意操作导致更新程序被触发,需要在升级使用的SD卡文件系统中预留特定的标志信息,即使该SD卡成为升级专用SD卡,同时需要在SD卡上创建需要进行软件更新的模块列表及标志信息,然后在设备系统正常运行的时候插入该SD卡,并通过触摸屏操作的升级触发方式启动硬件中的更新程序,更新程序首先通过SD卡中的更新模块列表判断系统是否需要更新YAMON并以SD卡作为根文件系统重新启动,如果SD卡上的更新模块列表中只有主应用程序则不需要重新启动设备,更新程序首先调用linux的标准killall命令停止当前应用程序的执行,再调用cp命令将SD卡上的新应用程序复制到合适的位置,然后更新程序重新创建一个新的进程运行更新后的主应用程序即可让设备在极短时间内恢复正常运行;如果SD卡上的更新模块列表中包含Linux内核或YAMON,更新程序直接使用SD卡上的flash_eraseall和flashcp命令将SD卡上的新内核文件或新YAMON文件覆盖至NOR-Flash中Linux内核或YAMON对应的MTD分区即可,其形式如下:
flash_eraseall/dev/mtdX,flashcp new_file/dev/mtdX;
因为Linux内核在系统启动后就一直常驻内存,所以内核更新后需要重新启动系统,而YAMON作为引导加载根文件系统的模块被更新后也只会在重启系统后生效;如果需要修改被以只读模式进行挂载的MTD分区中的内容时,则需要在SD卡中首先存放使用SD卡作为引导程序的YAMON程序,以及mmc直接编译进内核的内核程序,当硬件中的更新程序被触发后,其首先调用SD卡上的flash_eraseall和flashcp命令进行设备的YAMON和内核的更新,使得系统重启时会以SD卡作为根文件系统,并具有mmc直接编入的Linux内核,随后更新程序在SD卡上特定位置创建重启时的更新信息标志,然后调用reboot命令重启系统,在设备以SD卡为根文件系统重启后,SD卡上的更新程序部分会根据SD卡上的更新信息标志,对在正常使用时使用mount-o ro参数命令进行挂载的MTD分区进行mount-o rw参数的挂载,并对其中的相应内容进行更新,完成后SD卡中的更新程序部分会再次调用flash_eraseall和flashcp命令将设备系统恢复到正常执行时的YAMON和Linux内核设置,最后更新程序再次调用reboot命令重启完成了所有更新后的设备系统。
在更新程序运行的开始处必须首先确保在插入的SD卡中同时拥有flash_eraseall和flashcp命令,并且整个过程中使用flash_eraseall必须和flashcp成对先后出现,在执行flash_erseall擦除命令之前必须先确保SD卡上具有最新的作为更新源的程序模块,为了防止更新源的程序模块错误和无效,需要对更新源的程序模块的时效使用Linux的test命令进行检查,为了防止flash_eraseall和flashcp命令在设备正常的根文件系统也存在,避免在执行了flash_eraseall命令之后无法再执行flashcp命令而导致系统崩溃无法自动恢复的情况,更新程序在使用这两条命令时应该使用SD卡上这两条命令的绝对路径。
Claims (4)
1.通过SD卡对嵌入式Linux设备进行升级的方法,其特征在于,包括以下步骤:
a.在具有符合该嵌入式Linux设备架构的开源GCC工具的本地操作系统环境中,交叉编译开源工具包mtd-utils,得到flash_eraseall和flashcp这两个Linux的MTD分区更新命令,并存储在可作为设备启动根文件系统的SD卡上;
b.在SD卡上创建根文件更新列表及作为更新源的程序模块;
c.将SD卡插入设备并通过终端触摸屏的特定操作启动更新程序,特定操作是指在开发过程中确定的通过触摸屏操作的升级触发方式;
d.根据更新程序进行升级;
e.升级完成。
2.根据权利要求1所述通过SD卡对嵌入式Linux设备进行升级的方法,其特征在于,步骤c所述更新程序包括设备产品硬件中的更新程序和SD卡的更新程序。
3.根据权利要求1所述通过SD卡对嵌入式Linux设备进行升级的方法,其特征在于,步骤b所述在SD卡上创建根文件更新列表及作为更新源的程序模块包括创建应用程序或Linux内核或根文件系统或YAMON启动程序的更新指导信息及其作为更新源的程序模块。
4.根据权利要求1、2或3所述通过SD卡对嵌入式Linux设备进行升级的方法,其特征在于,步骤d包括以下步骤:
d1.更新程序根据SD卡上的更新列表判断更新模式,若仅需要更新应用程序则进入f1步骤,若需要更新内核或YAMON则进入g1步骤,若需要修改以只读模式挂载的MTD分区内容则进入h1步骤;
f1.更新程序调用linux的标准killall命令停止当前应用程序的执行;
f2.更新程序调用cp命令将SD卡上的新应用程序复制到合适的位置;
f3.更新程序重新创建一个新的进程运行更新后的主应用程序,并进入e步骤;
g1.更新程序使用SD卡上的flash_eraseall和flashcp命令将SD卡上的新内核文件或新YAMON文件覆盖至NOR-Flash中Linux内核或YAMON文件对应的MTD分区;
g2.重启系统并进入e步骤;
h1.更新程序调用SD卡上的flash_eraseall和flashcp命令进行设备的YAMON和内核的更新;
h2.更新程序在SD卡上特定位置创建重启时的更新信息标志,并调用reboot命令重启系统;
h3.在设备以SD卡为根文件系统重启后,SD卡上的更新程序部分会根据SD卡上的更新信息标志,对在正常使用时使用mount-o ro参数命令进行挂载的MTD分区进行mount-o rw参数的挂载,并对其中的相应内容进行更新;
h4.SD卡中的更新程序部分再次调用flash_eraseall和flashcp命令将设备系统恢复到正常执行时的YAMON和Linux内核设置;
h5.更新程序再次调用reboot命令重启完成了所有更新后的设备系统并进入e步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810304146XA CN101344854B (zh) | 2008-08-22 | 2008-08-22 | 通过SD卡对嵌入式Linux设备进行升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810304146XA CN101344854B (zh) | 2008-08-22 | 2008-08-22 | 通过SD卡对嵌入式Linux设备进行升级的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101344854A CN101344854A (zh) | 2009-01-14 |
CN101344854B true CN101344854B (zh) | 2011-01-19 |
Family
ID=40246864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810304146XA Expired - Fee Related CN101344854B (zh) | 2008-08-22 | 2008-08-22 | 通过SD卡对嵌入式Linux设备进行升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101344854B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777982A (zh) * | 2014-01-15 | 2014-05-07 | 宇龙计算机通信科技(深圳)有限公司 | 开放root权限更新系统的方法及其移动终端 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694621B (zh) * | 2009-10-22 | 2015-12-16 | 中兴通讯股份有限公司 | 一种升级移动终端软件的方法和移动终端 |
CN101986269A (zh) * | 2010-10-22 | 2011-03-16 | 福建鑫诺通讯技术有限公司 | 一种在Android平台下实现通过网络刷机的方法 |
CN102043652B (zh) * | 2010-12-08 | 2014-04-30 | 苏州捷泰科信息技术有限公司 | 嵌入式设备根文件系统的处理系统和处理方法 |
CN102520981A (zh) * | 2011-11-24 | 2012-06-27 | 深圳市路畅科技有限公司 | 一种基于inand/nand的多分区存储设备的生产方法 |
CN102629206B (zh) * | 2012-02-29 | 2018-02-06 | 深圳市赛格导航科技股份有限公司 | 一种嵌入式系统软件升级方法及系统 |
CN102937907B (zh) * | 2012-11-05 | 2016-05-11 | 无敌科技(西安)有限公司 | 利用sd卡片进行授权软体安装更新使用的方法 |
CN103853496B (zh) * | 2012-11-28 | 2017-02-22 | 华为技术有限公司 | 实现同一内存技术设备分区挂接多种设备的方法和装置 |
CN103309709B (zh) | 2013-06-08 | 2018-10-09 | 华为终端有限公司 | 一种固件升级方法、装置及通信设备 |
CN105468425B (zh) * | 2016-01-07 | 2018-10-23 | 云南民族大学 | 一种嵌入式Linux操作系统启动SD卡的制作方法 |
CN106293916A (zh) * | 2016-08-09 | 2017-01-04 | 中国地质大学(武汉) | 一种用于多核嵌入式平台的相机驱动移植方法及系统 |
CN107707467A (zh) * | 2017-10-23 | 2018-02-16 | 华东交通大学 | 基于sd卡升级的智能网关设备及其固件升级方法 |
CN108572836A (zh) * | 2018-06-01 | 2018-09-25 | 珠海格力电器股份有限公司 | 基于嵌入式的更新方法及装置 |
CN109213510A (zh) * | 2018-09-21 | 2019-01-15 | 深圳市鼎阳科技有限公司 | 一种用于嵌入式设备的应用程序升级方法及存储介质 |
CN112799698A (zh) * | 2021-01-14 | 2021-05-14 | 陕西建工安装集团(河南)有限公司 | 一种U-boot下基于SD卡自动升级方法 |
CN112947979B (zh) * | 2021-04-07 | 2024-04-02 | 上海商米科技集团股份有限公司 | 一种基于OverlayFS的IPC设备的固件补丁加载方式 |
-
2008
- 2008-08-22 CN CN200810304146XA patent/CN101344854B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777982A (zh) * | 2014-01-15 | 2014-05-07 | 宇龙计算机通信科技(深圳)有限公司 | 开放root权限更新系统的方法及其移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN101344854A (zh) | 2009-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101344854B (zh) | 通过SD卡对嵌入式Linux设备进行升级的方法 | |
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN101876940B (zh) | 一种自动化测试方法和装置 | |
CN101826027A (zh) | 一种嵌入式系统及其升级方法 | |
CN102902556A (zh) | 一种嵌入式设备的多级引导加载方法 | |
CN109933348A (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
US20110302572A1 (en) | Embedded network device and firmware upgrading method | |
US20140201726A1 (en) | Updating firmware compatibility data | |
EP3879399B1 (en) | Method and apparatus for upgrading vehicle-mounted tbox, device, and storage medium | |
CN104360877A (zh) | 基于Bootloader自更新的ECU固件更新方法 | |
CN103577201A (zh) | 嵌入式双系统的更新方法及系统 | |
CN103761088A (zh) | 一种适用于arm架构移动设备的多操作系统切换方法 | |
CN106020861A (zh) | 一种智能手表的fota升级方法及系统 | |
WO2012071852A1 (zh) | 引导程序的升级方法和装置 | |
CN105739961A (zh) | 一种嵌入式系统的启动方法和装置 | |
CN113821235A (zh) | 操作系统数据更新方法、设备、存储介质及程序产品 | |
CN102609290B (zh) | 电子产品的软件升级方法 | |
CN111782246A (zh) | 基于总线的多节点设备嵌入式程序升级方法 | |
CN103853557A (zh) | 一种用Uboot网络启动WinCE的方法 | |
CN105468420B (zh) | 操作系统升级方法和装置 | |
CN107332589A (zh) | 一种基于蓝牙的固件升级装置 | |
CN111552498A (zh) | 一种实现显示屏的屏参升级的方法及系统 | |
CN114996717A (zh) | 一种防止误擦除的升级程序设计方法 | |
CN116954674A (zh) | eMMC固件升级方法、固件升级设备和存储装置 | |
CN110659052B (zh) | 网络设备中系统软件的更新方法、系统及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110119 Termination date: 20210822 |