CN112947979A - 一种基于OverlayFS的IPC设备的固件补丁加载方式 - Google Patents

一种基于OverlayFS的IPC设备的固件补丁加载方式 Download PDF

Info

Publication number
CN112947979A
CN112947979A CN202110372976.1A CN202110372976A CN112947979A CN 112947979 A CN112947979 A CN 112947979A CN 202110372976 A CN202110372976 A CN 202110372976A CN 112947979 A CN112947979 A CN 112947979A
Authority
CN
China
Prior art keywords
patch
file
directory
firmware
card
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
CN202110372976.1A
Other languages
English (en)
Other versions
CN112947979B (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.)
Shanghai Sunmi Technology Group Co Ltd
Shenzhen Michelangelo Technology Co Ltd
Original Assignee
Shanghai Sunmi Technology Group Co Ltd
Shenzhen Michelangelo Technology 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 Shanghai Sunmi Technology Group Co Ltd, Shenzhen Michelangelo Technology Co Ltd filed Critical Shanghai Sunmi Technology Group Co Ltd
Priority to CN202110372976.1A priority Critical patent/CN112947979B/zh
Publication of CN112947979A publication Critical patent/CN112947979A/zh
Application granted granted Critical
Publication of CN112947979B publication Critical patent/CN112947979B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种基于Over l ayFS的I PC设备的固件补丁加载方式,包括运行L i nux系统以及加载SD卡补丁,本发明可以在不更改设备f l ash固件的情况下,通过加载外置存储SD卡中的补丁文件,实现设备固件功能变更。该方案无固件升级风险,移除补丁也十分简单,只需要移除外置存储,或删除外置存储的补丁文件。外置补丁不占用f l ash存储空间,可用于加载临时可执行程序,例如只需要在产测时使用的文件、调试时使用的工具等。正式固件中不需要包含这些临时使用的程序,有需要时通过外置补丁加载,可减少f l ash空间占用。

Description

一种基于OverlayFS的IPC设备的固件补丁加载方式
技术领域
本发明涉及IPC设备技术领域,尤其涉及一种基于OverlayFS的IPC设备的固件补丁加载方式。
背景技术
出于硬件成本考虑,目前一些嵌入式设备,会使用性价较高的小容量flash存储固件,这些flash通常只有几MB到几十MB的存储容量。为尽可能减少固件存储空间占用,运行linux系统的嵌入式设备普遍采用高压缩比的只读文件系统,如squashfs、cramfs等。某些嵌入式设备也会采用只读分区和可写分区(如jffs2)相结合的方式,其中只读分区用于存储核心管理程序,可写分区用于存储配置文件和支持运行时安装和卸载的软件包。无论使用哪种方式,当设备固件功能更新时,都需要擦写flash。对flash的擦写会带来固件损坏风险,特别是无经验的普通用户在协助开发人员调试问题,升级临时固件可能出现误操作导致固件损坏。出于产测和调试的需要,一些设备的固件中会加入用户使用场景不需要的临时程序,增加了flash存储空间占用。
发明内容
本发明的目的在于提出一种降低固件损坏风险,减少FLASH空间占用的基于OverlayFS的IPC设备的固件补丁加载方式。
为达到上述目的,本发明提出一种基于OverlayFS的IPC设备的固件补丁加载方式,包括运行Linux系统以及加载SD卡补丁。
优选的,所述Linux系统对文件系统的操作包括以下步骤:
步骤1:Linux内核挂载flash mtd分区上的squashfs文件系统,该分区被挂载为根目录,此时根目录是只读的;
步骤2:挂载内存文件系统tmpfs,挂在目录为可写的目录;
步骤3:基于前两个步骤的tmpfs和squashfs,使用OverlayFS堆叠成一个新的目录,其中lowerdir为使用squashfs的根目录,upperdir为使用tmpfs的内存目录/tmp/overlay;将堆叠成的新目录设置为Linux系统的新的根目录;
步骤4:系统的根目录支持写操作后,读取外置SD卡中的补丁数据,通过校验后,解压补丁并将补丁文件中的更新文件拷贝到堆叠的可写overlay文件系统中,对文件系统中的文件进行更新;
步骤5:设备基于修改后的文件系统,完成后续服务进程初始化。
优选的,在步骤3中,执行overlay挂载操作后,新的根目录变为可写,对文件系统的修改会记录在upperdir的tmpfs目录中;操作系统对根目录的读取结果是上下两层文件系统堆叠的结果。
优选的,所述加载SD卡包括以下步骤:
步骤1:系统启动后,加载mmc驱动,用于SD卡的识别;
步骤2:挂载SD卡,实现SD卡目录文件的读取;
步骤3:检查SD卡指定目录,查找补丁文件;
步骤4;校验补丁文件的签名是否合法,忽略签名非法的文件;
步骤5:检查补丁文件的机型是否和当前机型匹配,检测补丁文件的生效版本是否与当前固件版本匹配,忽略机型和版本不匹配的补丁文件;
将补丁文件解压到系统的可写内存目录,执行补丁脚本,将补丁文件更新到overlay文件系统的指定位置;补丁脚本可以对系统文件系统的文件进行增加、删除和更新替换操作。
与现有技术相比,本发明的优势之处在于:本发明可以在不更改设备flash固件的情况下,通过加载外置存储SD卡中的补丁文件,实现设备固件功能变更。该方案无固件升级风险,移除补丁也十分简单,只需要移除外置存储,或删除外置存储的补丁文件。外置补丁不占用flash存储空间,可用于加载临时可执行程序,例如只需要在产测时使用的文件、调试时使用的工具等。正式固件中不需要包含这些临时使用的程序,有需要时通过外置补丁加载,可减少flash空间占用。
附图说明
图1为本发明实施例中Linux系统对文件系统的操作流程示意图;
图2为本发明实施例中设备加载SD卡的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案作进一步地说明。
本发明提出一种基于OverlayFS的IPC设备的固件补丁加载方式,包括运行Linux系统以及加载SD卡补丁。
一个运行Linux的嵌入式设备,其文件系统使用高压缩比的只读文件系统squashfs,设备运行所需要的动态库、可执行文件、动态库等文件都存储在该文件系统上。本方案通过堆叠文件系统OverlayFS,构造一个可读写的文件系统,再通过读取外置存储上的补丁文件,对文件系统的内容进行更新,最后启动后续的服务进程,实现对系统功能的变更。
支持本方案的Linux系统对文件系统的操作如下:
(1)Linux内核挂载flash mtd分区上的squashfs文件系统,该分区被挂载为根目录,此时根目录是只读的;
(2)挂载内存文件系统tmpfs,例如目录为/tmp/overlay,该目录是可写的;
(3)基于前两个步骤的tmpfs和squashfs,使用OverlayFS堆叠成一个新的目录,其中lowerdir为使用squashfs的根目录/,upperdir为使用tmpfs的内存目录/tmp/overlay;将堆叠成的新目录设置为Linux系统的新的根目录;
执行overlay挂载操作后,新的根目录变为可写,对文件系统的修改会记录在upperdir的tmpfs目录中;操作系统对根目录的读取结果是上下两层文件系统堆叠的结果。
(4)系统的根目录支持写操作后,读取外置存储中的补丁数据,通过校验后,解压补丁并将补丁文件中的更新文件拷贝到堆叠的可写overlay文件系统中,对文件系统中的文件进行更新。
(5)设备基于修改后的文件系统,完成后续服务进程初始化。
如图2所示,IPC设备加载SD卡补丁的操作如下:
(1)系统启动后,加载mmc驱动,用于SD卡的识别;
(2)挂载SD卡,实现SD卡目录文件的读取;
(3)检查SD卡指定目录,如/patchs,查找补丁文件;
(4)校验补丁文件的签名是否合法,忽略签名非法的文件;
(5)检查补丁文件的机型是否和当前机型匹配,检测补丁文件的生效版本是否与当前固件版本匹配,忽略机型和版本不匹配的补丁文件;
将补丁文件解压到系统的可写内存目录,如/tmp,执行补丁脚本,将补丁文件更新到overlay文件系统的指定位置。补丁脚本可以对系统文件系统的文件进行增加、删除和更新替换操作。
本发明提出一种基于OverlayFS的IPC设备的固件补丁加载方式,将内存tmpfs和只读文件系统squashfs堆叠成可写文件系统,系统启动后读取并加载外置存储的补丁文件,更新文件系统,实现对固件的功能变更。
使用该方案,不会擦写设备内置flash;移除补丁只需要移除外置存储,操作简单。通过插SD卡,拔SD卡这样的简单物理操作,就实现了补丁的加载和移除。
外置存储的补丁提供的文件不占用内置flash空间,可用于加载产测工具、调试工具等临时使用的程序。内置固件不需要将这些程序永久存储,减少了flash空间占用。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。

Claims (4)

1.一种基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,包括运行Linux系统以及加载SD卡补丁。
2.根据权利要求1所述的基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,所述Linux系统对文件系统的操作包括以下步骤:
步骤1:Linux内核挂载flash mtd分区上的squashfs文件系统,该分区被挂载为根目录,此时根目录是只读的;
步骤2:挂载内存文件系统tmpfs,挂在目录为可写的目录;
步骤3:基于前两个步骤的tmpfs和squashfs,使用OverlayFS堆叠成一个新的目录,其中lowerdir为使用squashfs的根目录,upperdir为使用tmpfs的内存目录/tmp/overlay;将堆叠成的新目录设置为Linux系统的新的根目录;
步骤4:系统的根目录支持写操作后,读取外置SD卡中的补丁数据,通过校验后,解压补丁并将补丁文件中的更新文件拷贝到堆叠的可写overlay文件系统中,对文件系统中的文件进行更新;
步骤5:设备基于修改后的文件系统,完成后续服务进程初始化。
3.根据权利要求2所述的基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,在步骤3中,执行overlay挂载操作后,新的根目录变为可写,对文件系统的修改会记录在upperdir的tmpfs目录中;操作系统对根目录的读取结果是上下两层文件系统堆叠的结果。
4.根据权利要求1所述的基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,所述加载SD卡包括以下步骤:
步骤1:系统启动后,加载mmc驱动,用于SD卡的识别;
步骤2:挂载SD卡,实现SD卡目录文件的读取;
步骤3:检查SD卡指定目录,查找补丁文件;
步骤4;校验补丁文件的签名是否合法,忽略签名非法的文件;
步骤5:检查补丁文件的机型是否和当前机型匹配,检测补丁文件的生效版本是否与当前固件版本匹配,忽略机型和版本不匹配的补丁文件;
将补丁文件解压到系统的可写内存目录,执行补丁脚本,将补丁文件更新到overlay文件系统的指定位置;补丁脚本可以对系统文件系统的文件进行增加、删除和更新替换操作。
CN202110372976.1A 2021-04-07 2021-04-07 一种基于OverlayFS的IPC设备的固件补丁加载方式 Active CN112947979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110372976.1A CN112947979B (zh) 2021-04-07 2021-04-07 一种基于OverlayFS的IPC设备的固件补丁加载方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110372976.1A CN112947979B (zh) 2021-04-07 2021-04-07 一种基于OverlayFS的IPC设备的固件补丁加载方式

Publications (2)

Publication Number Publication Date
CN112947979A true CN112947979A (zh) 2021-06-11
CN112947979B CN112947979B (zh) 2024-04-02

Family

ID=76230897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110372976.1A Active CN112947979B (zh) 2021-04-07 2021-04-07 一种基于OverlayFS的IPC设备的固件补丁加载方式

Country Status (1)

Country Link
CN (1) CN112947979B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344854A (zh) * 2008-08-22 2009-01-14 四川长虹电器股份有限公司 通过SD卡对嵌入式Linux设备进行升级的方法
US20090248963A1 (en) * 2008-03-28 2009-10-01 Takafumi Ito Memory controller and memory system including the same
CN104834547A (zh) * 2015-05-14 2015-08-12 烽火通信科技股份有限公司 一种Squashfs只读根文件系统的远程升级方法及系统
CN109213504A (zh) * 2018-08-17 2019-01-15 烽火通信科技股份有限公司 一种堆叠式文件系统及其加载方法和升级方法
US20190065745A1 (en) * 2017-08-31 2019-02-28 International Business Machines Corporation Integrity, theft protection and cyber deception using a deception-based filesystem
US20200356358A1 (en) * 2019-05-07 2020-11-12 Dell Products L.P. Systems and methods for incrementally and dynamically updating firmware

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090248963A1 (en) * 2008-03-28 2009-10-01 Takafumi Ito Memory controller and memory system including the same
CN101344854A (zh) * 2008-08-22 2009-01-14 四川长虹电器股份有限公司 通过SD卡对嵌入式Linux设备进行升级的方法
CN104834547A (zh) * 2015-05-14 2015-08-12 烽火通信科技股份有限公司 一种Squashfs只读根文件系统的远程升级方法及系统
US20190065745A1 (en) * 2017-08-31 2019-02-28 International Business Machines Corporation Integrity, theft protection and cyber deception using a deception-based filesystem
CN109213504A (zh) * 2018-08-17 2019-01-15 烽火通信科技股份有限公司 一种堆叠式文件系统及其加载方法和升级方法
US20200356358A1 (en) * 2019-05-07 2020-11-12 Dell Products L.P. Systems and methods for incrementally and dynamically updating firmware

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"公共建筑能耗数据采集器基本性能的研究与改进": ""公共建筑能耗数据采集器基本性能的研究与改进"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 *
YASHASWINI P 等: ""Overlay cognitive radio using MIMO reconfigurable filtenna"", 《 2016 INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATIONS, SIGNAL PROCESSING AND NETWORKING (WISPNET)》, pages 2017 - 2021 *
唐剑寅: "CNKI,(同一句:SD、补丁)", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 *
赵文君: ""单板中继堆叠功能测试的设计与实现"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 *

Also Published As

Publication number Publication date
CN112947979B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
US20040103340A1 (en) Upgrading of firmware with tolerance to failures
US20070055969A1 (en) System and method for updating firmware
US20100058314A1 (en) Computer System and Related Method of Logging BIOS Update Operation
CN102141923B (zh) 内存文件系统加载方法及装置
CN104123153A (zh) 用于使用usb升级固件的装置与方法
CN104239082A (zh) 嵌入式系统的热补丁实现方法
US20070050675A1 (en) [method for restoring a booted system]
CN103970557A (zh) 存储设备启动系统的方法及存储设备
CN111562934B (zh) 一种基于热补丁的软件系统升级方法、终端及存储介质
US20080270685A1 (en) Information processing apparatus and firmware updating method
US20030226006A1 (en) Method and system of locating a firmware image in non-volatile memory
CN102043652B (zh) 嵌入式设备根文件系统的处理系统和处理方法
US6523103B2 (en) Disablement of a write filter stored on a write-protected partition
CN113641390B (zh) 一种系统升级方法、装置、设备及存储介质
KR100954603B1 (ko) 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
CN111338650B (zh) 一种便携式的Livecd中web应用部署方法
US7490321B2 (en) Method for updating firmware via determining program code
CN112947979A (zh) 一种基于OverlayFS的IPC设备的固件补丁加载方式
CN116954674A (zh) eMMC固件升级方法、固件升级设备和存储装置
KR100853941B1 (ko) 멀티미디어 저장장치와 데이터 복구방법
CN111290765B (zh) 一种固件快速烧录方法、系统及存储介质
JP4735765B2 (ja) Linuxプログラム起動システム
CN107908441B (zh) 一种数据库的升级方法及升级装置
CN112130868B (zh) 一种系统的灌装方法、系统、设备以及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant