CN112947979B - 一种基于OverlayFS的IPC设备的固件补丁加载方式 - Google Patents
一种基于OverlayFS的IPC设备的固件补丁加载方式 Download PDFInfo
- Publication number
- CN112947979B CN112947979B CN202110372976.1A CN202110372976A CN112947979B CN 112947979 B CN112947979 B CN 112947979B CN 202110372976 A CN202110372976 A CN 202110372976A CN 112947979 B CN112947979 B CN 112947979B
- Authority
- CN
- China
- Prior art keywords
- patch
- file
- overlay
- directory
- 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.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 25
- 238000005192 partition Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本发明提出一种基于OverlayFS的IPC设备的固件补丁加载方式,包括运行Linux系统以及加载SD卡补丁,本发明可以在不更改设备flash固件的情况下,通过加载外置存储SD卡中的补丁文件,实现设备固件功能变更。该方案无固件升级风险,移除补丁也十分简单,只需要移除外置存储,或删除外置存储的补丁文件。外置补丁不占用flash存储空间,可用于加载临时可执行程序,例如只需要在产测时使用的文件、调试时使用的工具等。正式固件中不需要包含这些临时使用的程序,有需要时通过外置补丁加载,可减少flash空间占用。
Description
技术领域
本发明涉及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 (2)
1.一种基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,包括运行Linux系统以及加载SD卡补丁;
所述Linux系统对文件系统的操作包括以下步骤:
步骤1:Linux内核挂载flash mtd分区上的squashfs文件系统,该分区被挂载为根目录,此时根目录是只读的;
步骤2:挂载内存文件系统tmpfs,目录为/tmp/Overlay,挂载目录为可写的目录;
步骤3:基于前两个步骤的tmpfs和squashfs,使用OverlayFS堆叠成一个新目录,其中lowerdir为使用squashfs的根目录,upperdir为使用tmpfs的内存目录/tmp/Overlay;将堆叠成的新目录设置为Linux系统的新的根目录;
步骤4:系统的根目录支持写操作后,读取外置SD卡中的补丁数据,通过校验后,解压补丁并将补丁文件中的更新文件拷贝到堆叠的可写OverlayFS文件系统中,对OverlayFS文件系统中的文件进行更新;
步骤5:设备基于修改后的文件系统,完成后续服务进程初始化;
在步骤3中,执行OverlayFS挂载操作后,新的根目录变为可写,对文件系统的修改会记录在upperdir的tmpfs目录中;操作系统对根目录的读取结果是上下两层文件系统堆叠的结果。
2.根据权利要求1所述的基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,所述加载SD卡包括以下步骤:
步骤1:系统启动后,加载mmc驱动,用于SD卡的识别;
步骤2:挂载SD卡,实现SD卡目录文件的读取;
步骤3:检查SD卡指定目录,查找补丁文件;
步骤4;校验补丁文件的签名是否合法,忽略签名非法的文件;
步骤5:检查补丁文件的机型是否和当前机型匹配,检测补丁文件的生效版本是否与当前固件版本匹配,忽略机型和版本不匹配的补丁文件;
将补丁文件解压到系统的可写内存目录,执行补丁脚本,将补丁文件更新到OverlayFS文件系统的指定位置;补丁脚本可以对系统文件系统的文件进行增加、删除和更新替换操作。
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 CN112947979A (zh) | 2021-06-11 |
CN112947979B true 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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344854A (zh) * | 2008-08-22 | 2009-01-14 | 四川长虹电器股份有限公司 | 通过SD卡对嵌入式Linux设备进行升级的方法 |
CN104834547A (zh) * | 2015-05-14 | 2015-08-12 | 烽火通信科技股份有限公司 | 一种Squashfs只读根文件系统的远程升级方法及系统 |
CN109213504A (zh) * | 2018-08-17 | 2019-01-15 | 烽火通信科技股份有限公司 | 一种堆叠式文件系统及其加载方法和升级方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009244962A (ja) * | 2008-03-28 | 2009-10-22 | Toshiba Corp | メモリシステム |
US10528733B2 (en) * | 2017-08-31 | 2020-01-07 | 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 |
-
2021
- 2021-04-07 CN CN202110372976.1A patent/CN112947979B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101344854A (zh) * | 2008-08-22 | 2009-01-14 | 四川长虹电器股份有限公司 | 通过SD卡对嵌入式Linux设备进行升级的方法 |
CN104834547A (zh) * | 2015-05-14 | 2015-08-12 | 烽火通信科技股份有限公司 | 一种Squashfs只读根文件系统的远程升级方法及系统 |
CN109213504A (zh) * | 2018-08-17 | 2019-01-15 | 烽火通信科技股份有限公司 | 一种堆叠式文件系统及其加载方法和升级方法 |
Non-Patent Citations (4)
Title |
---|
"Overlay cognitive radio using MIMO reconfigurable filtenna";Yashaswini P 等;《 2016 International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET)》;第2017-2021页 * |
"公共建筑能耗数据采集器基本性能的研究与改进";"公共建筑能耗数据采集器基本性能的研究与改进";《中国优秀硕士学位论文全文数据库(信息科技辑)》;全文 * |
"单板中继堆叠功能测试的设计与实现";赵文君;《中国优秀硕士学位论文全文数据库(信息科技辑)》;全文 * |
CNKI,(同一句:SD、补丁);唐剑寅;《中国优秀硕士学位论文全文数据库(信息科技辑)》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112947979A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8423991B2 (en) | Embedded network device and firmware upgrading method | |
JP5113700B2 (ja) | ファームウェア更新装置及び方法 | |
US20170308369A1 (en) | Data processing method and device of preset application after upgrading | |
US20070055969A1 (en) | System and method for updating firmware | |
CN103970557B (zh) | 存储设备启动系统的方法及存储设备 | |
CN102141923B (zh) | 内存文件系统加载方法及装置 | |
CN107247603A (zh) | 支持固件自动恢复功能的远程升级方法与系统 | |
KR100689742B1 (ko) | 메모리 덤프 프로그램의 부팅 방법, 기구 및 프로그램을기록한 컴퓨터로 판독 가능한 기록 매체 | |
US20100058314A1 (en) | Computer System and Related Method of Logging BIOS Update Operation | |
US20090094447A1 (en) | Universal serial bus flash drive for booting computer and method for loading programs to the flash drive | |
CN102334100A (zh) | 程序更新设备、程序更新方法以及信息处理设备 | |
CN101188516B (zh) | 一种网络设备软件系统高可靠性自适应远程更新的方法 | |
US20230393840A1 (en) | File update method and apparatus, device and storage medium | |
US20170052779A1 (en) | Method and Device for Running Version File | |
CN111258666A (zh) | 计算机文件的读取方法、装置、计算机系统及存储介质 | |
CN102043652B (zh) | 嵌入式设备根文件系统的处理系统和处理方法 | |
CN106909351B (zh) | 一种基于uefi固件的ext文件系统的实现方法 | |
US6523103B2 (en) | Disablement of a write filter stored on a write-protected partition | |
CN112947979B (zh) | 一种基于OverlayFS的IPC设备的固件补丁加载方式 | |
CN106933604B (zh) | 一种系统升级方法及装置 | |
US20150089486A1 (en) | Method of Firmware Upgrade | |
CN115718612A (zh) | 一种cf卡操作系统的更新方法 | |
GB2403303A (en) | Software patch registry | |
EP1710697A1 (en) | Method and apparatus for executing application in system having NAND flash memory | |
CN113190244A (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 |