一种基于OverlayFS的IPC设备的固件补丁加载方式制造技术

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

【技术实现步骤摘要】
一种基于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内核挂载flashmtd分区上的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内核挂载flashmtd分区上的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空间,可用于加载产测工具、调试工具等临时使用的程序。内置固件不需要将这些程序永久存储,本文档来自技高网...

【技术保护点】
1.一种基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,包括运行Linux系统以及加载SD卡补丁。/n

【技术特征摘要】
1.一种基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,包括运行Linux系统以及加载SD卡补丁。


2.根据权利要求1所述的基于OverlayFS的IPC设备的固件补丁加载方式,其特征在于,所述Linux系统对文件系统的操作包括以下步骤:
步骤1:Linux内核挂载flashmtd分区上的squashfs文件系统,该分区被挂载为根目录,此时根目录是只读的;
步骤2:挂载内存文件系统tmpfs,挂在目录为可写的目录;
步骤3:基于前两个步骤的tmpfs和squashfs,使用OverlayFS堆叠成一个新的目录,其中lowerdir为使用squashfs的根目录,upperdir为使用tmpfs的内存目录/tmp/overlay;将堆叠成的新目录设置为Linux系统的新的根目录;
步骤4:系统的根目录支持写操作后,读取外置SD卡中的补丁数据,通过校验后,解压补丁并将补丁文件中的更新文件拷贝到堆叠的可写overlay文件系统中,对文件系统中的文件进行更新;
步骤5:设备基于修改后的文件系统,完成后续服...

【专利技术属性】
技术研发人员:陈桂鸿林喆
申请(专利权)人:上海商米科技集团股份有限公司深圳米开朗基罗科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1