CN101344854A - 通过SD卡对嵌入式Linux设备进行升级的方法 - Google Patents

通过SD卡对嵌入式Linux设备进行升级的方法 Download PDF

Info

Publication number
CN101344854A
CN101344854A CNA200810304146XA CN200810304146A CN101344854A CN 101344854 A CN101344854 A CN 101344854A CN A200810304146X A CNA200810304146X A CN A200810304146XA CN 200810304146 A CN200810304146 A CN 200810304146A CN 101344854 A CN101344854 A CN 101344854A
Authority
CN
China
Prior art keywords
card
refresh routine
linux
equipment
upgrading
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.)
Granted
Application number
CNA200810304146XA
Other languages
English (en)
Other versions
CN101344854B (zh
Inventor
周晓
程远兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN200810304146XA priority Critical patent/CN101344854B/zh
Publication of CN101344854A publication Critical patent/CN101344854A/zh
Application granted granted Critical
Publication of CN101344854B publication Critical patent/CN101344854B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

通过SD卡对嵌入式Linux设备进行升级的方法
技术领域
本发明涉及嵌入式设备技术,特别涉及嵌入式Linux设备升级的技术。
背景技术
在计算机嵌入式应用技术领域,Linux内核凭借其出色性能和开源路线,使得基于Linux的嵌入式手持移动终端设备日益增多,而在此类嵌入式产品研发过程中,如何采用可靠且简便的方法进行系统软件和应用软件的实时升级是一个十分关键和重要的环节,这直接关系着产品的生命周期、维护成本、功能完善以及售后服务等诸多方面,目前基于Linux的嵌入式产品研发过程中通常采用串口环境进行调试和软件升级,故需要产品外接一个RS232串行调试接口,而成品样机则往往无此类串行调试接口,现有基于MTD(Memory TechnologyDevices)分区的嵌入式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步骤。
CN200810304146XA 2008-08-22 2008-08-22 通过SD卡对嵌入式Linux设备进行升级的方法 Expired - Fee Related CN101344854B (zh)

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 true CN101344854A (zh) 2009-01-14
CN101344854B 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 (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101694621A (zh) * 2009-10-22 2010-04-14 中兴通讯股份有限公司 一种升级移动终端软件的方法和移动终端
CN101986269A (zh) * 2010-10-22 2011-03-16 福建鑫诺通讯技术有限公司 一种在Android平台下实现通过网络刷机的方法
CN102043652A (zh) * 2010-12-08 2011-05-04 苏州捷泰科信息技术有限公司 嵌入式设备根文件系统的处理系统和处理方法
CN102520981A (zh) * 2011-11-24 2012-06-27 深圳市路畅科技有限公司 一种基于inand/nand的多分区存储设备的生产方法
CN102629206A (zh) * 2012-02-29 2012-08-08 深圳市赛格导航科技股份有限公司 一种嵌入式系统软件升级方法及系统
CN102937907A (zh) * 2012-11-05 2013-02-20 无敌科技(西安)有限公司 利用sd卡片进行授权软体安装更新使用的方法
CN105468425A (zh) * 2016-01-07 2016-04-06 云南民族大学 一种嵌入式Linux操作系统启动SD卡的制作方法
CN106293916A (zh) * 2016-08-09 2017-01-04 中国地质大学(武汉) 一种用于多核嵌入式平台的相机驱动移植方法及系统
CN103853496B (zh) * 2012-11-28 2017-02-22 华为技术有限公司 实现同一内存技术设备分区挂接多种设备的方法和装置
US9804832B2 (en) 2013-06-08 2017-10-31 Huawei Device Co., Ltd Method, apparatus, and communication device for updating firmware
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卡自动升级方法
CN112947979A (zh) * 2021-04-07 2021-06-11 上海商米科技集团股份有限公司 一种基于OverlayFS的IPC设备的固件补丁加载方式

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103777982B (zh) * 2014-01-15 2016-09-21 宇龙计算机通信科技(深圳)有限公司 开放root权限更新系统的方法及其移动终端

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101694621A (zh) * 2009-10-22 2010-04-14 中兴通讯股份有限公司 一种升级移动终端软件的方法和移动终端
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 苏州捷泰科信息技术有限公司 嵌入式设备根文件系统的处理系统和处理方法
CN102043652A (zh) * 2010-12-08 2011-05-04 苏州捷泰科信息技术有限公司 嵌入式设备根文件系统的处理系统和处理方法
CN102520981A (zh) * 2011-11-24 2012-06-27 深圳市路畅科技有限公司 一种基于inand/nand的多分区存储设备的生产方法
CN102629206A (zh) * 2012-02-29 2012-08-08 深圳市赛格导航科技股份有限公司 一种嵌入式系统软件升级方法及系统
CN102629206B (zh) * 2012-02-29 2018-02-06 深圳市赛格导航科技股份有限公司 一种嵌入式系统软件升级方法及系统
CN102937907A (zh) * 2012-11-05 2013-02-20 无敌科技(西安)有限公司 利用sd卡片进行授权软体安装更新使用的方法
CN102937907B (zh) * 2012-11-05 2016-05-11 无敌科技(西安)有限公司 利用sd卡片进行授权软体安装更新使用的方法
CN103853496B (zh) * 2012-11-28 2017-02-22 华为技术有限公司 实现同一内存技术设备分区挂接多种设备的方法和装置
US9804832B2 (en) 2013-06-08 2017-10-31 Huawei Device Co., Ltd Method, apparatus, and communication device for updating firmware
CN105468425A (zh) * 2016-01-07 2016-04-06 云南民族大学 一种嵌入式Linux操作系统启动SD卡的制作方法
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卡自动升级方法
CN112947979A (zh) * 2021-04-07 2021-06-11 上海商米科技集团股份有限公司 一种基于OverlayFS的IPC设备的固件补丁加载方式
CN112947979B (zh) * 2021-04-07 2024-04-02 上海商米科技集团股份有限公司 一种基于OverlayFS的IPC设备的固件补丁加载方式

Also Published As

Publication number Publication date
CN101344854B (zh) 2011-01-19

Similar Documents

Publication Publication Date Title
CN101344854B (zh) 通过SD卡对嵌入式Linux设备进行升级的方法
CN106095620B (zh) 一种嵌入式Linux存储分区的开发方法
CN101876940B (zh) 一种自动化测试方法和装置
CN101826027A (zh) 一种嵌入式系统及其升级方法
CN102902556A (zh) 一种嵌入式设备的多级引导加载方法
CN109933348A (zh) 一种电子控制单元中Bootloader的更新方法和装置
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) 一种嵌入式系统的启动方法和装置
CN104657161A (zh) 移动终端固件更新方法及装置
CN113821235A (zh) 操作系统数据更新方法、设备、存储介质及程序产品
CN102609290B (zh) 电子产品的软件升级方法
CN111782246A (zh) 基于总线的多节点设备嵌入式程序升级方法
CN103853557A (zh) 一种用Uboot网络启动WinCE的方法
CN105468420B (zh) 操作系统升级方法和装置
CN107332589A (zh) 一种基于蓝牙的固件升级装置
CN111552498A (zh) 一种实现显示屏的屏参升级的方法及系统
CN114996717A (zh) 一种防止误擦除的升级程序设计方法
CN110659052B (zh) 网络设备中系统软件的更新方法、系统及可读存储介质
CN101727333A (zh) 微处理器中固件更新的方法及固件更新系统
CN102460386B (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

Granted publication date: 20110119

Termination date: 20210822

CF01 Termination of patent right due to non-payment of annual fee