CN118312241A - 一种无线投屏设备的快速启动方法 - Google Patents

一种无线投屏设备的快速启动方法 Download PDF

Info

Publication number
CN118312241A
CN118312241A CN202410536653.5A CN202410536653A CN118312241A CN 118312241 A CN118312241 A CN 118312241A CN 202410536653 A CN202410536653 A CN 202410536653A CN 118312241 A CN118312241 A CN 118312241A
Authority
CN
China
Prior art keywords
starting
screen
program
kernel
throwing
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.)
Pending
Application number
CN202410536653.5A
Other languages
English (en)
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.)
Shenzhen Yixiang Technology Co ltd
Original Assignee
Shenzhen Yixiang 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 Shenzhen Yixiang Technology Co ltd filed Critical Shenzhen Yixiang Technology Co ltd
Priority to CN202410536653.5A priority Critical patent/CN118312241A/zh
Publication of CN118312241A publication Critical patent/CN118312241A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种无线投屏设备的快速启动方法,该方法通过优化引导加载程序、利用多核CPU并行处理以及分层启动策略,实现了快速启动。具体包括:1.使用轻量级引导程序SPL,仅包含必要的硬件初始化和栈初始化程序;2.SPL直接从扁平化镜像树(FIT)加载Linux内核镜像到内存,绕过U‑Boot,加快启动速度;3.使用RAM磁盘启动小型Linux系统,并根据场景对内核模块和应用程序进行优先级划分,一级模块放在RAM中运行。4.在多核系统上,充分利用多核CPU的优势,利用INITRD_ASYNC和INITCALL_ASYNC实现异步初始化和并行执行,让启动链路的SPL loader、Kernel boot init能安全的在每个CPU核上并行运行,进一步提高启动速度。

Description

一种无线投屏设备的快速启动方法
技术领域
本发明属于无线投屏设备技术领域,具体涉及一种无线投屏设备的快速启动方法。
背景技术
现有技术中,投屏器启动引导程序复杂、启动流程串行化、网络连接时间长,通常在7秒左右完成启动,达到就绪状态。个别解决方案通过增加电池以缩短启动时间至4秒,但这提高了硬件成本,不利于最大程度实现环保和确保产品航空运输的安全性,而且对PC的功耗消耗也会有所增加。因此急需一种既能最大程度提高启动速度,同时又能降低能耗,并提升安全性和做到环保无电池的方法。
发明内容
本发明的目的在于提供一种新颖的无线投屏设备的快速启动方法,解决现有技术的不足。该方法通过优化开机流程架构,充分利用CPU多核特性,实现系统启动链路的并行处理与预加载,对网络管理应用做优先执行,使用信道记忆机制来实现快速连接WIFI,通过网络自检来决定是否要启用DHCP来租借IP地址,省去来回租借IP地址的流程和时间消耗,从而实现快速建立网络连接;对USB部分做功能拆分,实现迅速唤醒PC软件,利用预留的RAM内存获取图像,以便快速判断Type-C DP或HDMI输入信号的状态,显著缩短设备的启动时间,同时降低能耗并让产品更环保,解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种无线投屏设备的快速启动方法,该启动方法主要包含三个大模块:引导程序、引导程序加载linux系统镜像到内存、投屏相关程序;
具体包括如下步骤:
步骤一:选用引导程序SPL,删除或禁用引导加载程序不需要的功能是优化引导加载程序的首要任务,所以系统引导程序选用较小的引导程序SPL而不是完整的引导程序uboot,SPL的配置只包含内存控制器、时钟、内存等基础硬件初始化及栈初始化程序,这样使得引导加载程序尽可能最小;
步骤二:SPL从启动媒介上读取数据后加载到内存中,跳过引导传统的主程序uboot,SPL直接从FIT启动系统内核,加快内核启动速度,引导程序启动流程参照图2中实线走向引导linux内核;
步骤三:引导程序加载linux系统镜像到内存,使用RAM磁盘启动小型Linux是一种较快的启动方式,RAM磁盘中只包含关键应用程序,RAM磁盘的使用减少了物理磁盘I/O操作,大幅提高了启动速度。此外,启动过程中CPU频率运行在高速率,根据场景将内核模块和应用程序的启动等级放在不同的分区上;
步骤四:在多核系统上,启用INITRD_ASYNC让内核以异步的方式初始化RAM临时磁盘文件系统,启用INITCALL_ASYNC允许一些初始化函数在多个CPU核心上并行执行,提高启动速度;
步骤五:启动投屏相关程序,将应用端的无线WIFI、USB、Type-C DP或HDMI信号检测相关程序放在RAM磁盘中作为一级启动模块并行运行,,并利用操作系统的多线程能力实现并行初始化,从而大幅缩短了无线连接和信号处理的时间,实现了更快的启动速度;
步骤六:网卡驱动程序加载后,网络程序根据配对的网络信息,在无线环境下找到匹配的Wi-Fi访问点后,将访问点信息保存到信息存储区中,以便下次开机后直接快速找到配对的访问接入点。投屏器成功连接无线网络访问点,将动态网络配置服务获取到的网络信息保存到信息存储区,保存的信息用于在后续开机时执行网络自检程序,快速判断是否要重新执行动态配置。利用信息存储区保存的网络配置数据,极大缩短了网络连接和配置的时间;
步骤七:USB部分所涉及的功能多,特别是USB摄像头功能的枚举还涉及到应用程序端,将gadget拆分阶段来运行,避免应用程序启动的快慢还影响到PC识别USB设备的时间。例如,将USB gadget分为两个阶段:第一个阶段运行在RAM磁盘的一级启动模块中,第二个阶段运行在二级启动模块中;
步骤八:投屏程序检测到有DP或HDMI等图像信号输入,并且与投屏接收端设备已建立好网络通信连接时,使用直接对输入的图像信号数据进行编码的方式来投屏;如果没有DP或HDMI等图像信号输入,投屏器通过与用户从USB存储盘中安装的PC软件之间传输数据来实现投屏;通过全链路优化,实现从插入投屏器到电脑后,3s内达到就绪状态(可投屏),与有线直连的使用体验基本一致。
作为本发明中一种优选的技术方案,所述步骤二中的FIT为Flattened ImageTree,通常包括设备树、内核映像、ramdisk以及启动过程需要的单个启动映像。
作为本发明中一种优选的技术方案,在所述步骤二中,为内核映像选择合理的压缩技术对启动时间敏感的产品也至关重要,在读取时间和解压时间之间进行良好的权衡,如果使用的芯片带有硬件解压模块,优先选择硬件解码模块支持的压缩技术来对内核压缩,若主芯片不具备这样的能力,可使用gzip或lz4等压缩算法保持压缩比,同时不在解压任务上消耗过多时间。
作为本发明中一种优选的技术方案,所述步骤三中,分区设置为三个等级,其中:
一级是放在RAM磁盘中的关键应用程序和驱动程序模块;
二级是放在overlay.img映像中;
其余的大型静态资源文件放在oem.img映像中。
作为本发明中一种优选的技术方案,在所述步骤三中,在内核的启动参数bootarg环境中手动设置lpj(loops_per_jiffy)参数,省去内核在启动过程中执行自动测量lpj的时间。
作为本发明中一种优选的技术方案,在所述步骤四中,INITCALL_ASYNC涉及初始化顺序,可观察内核初始调用的顺序,在保证异步初始化时不会因依赖导致初始化失败,按优先级对驱动程序之间的依赖链和加载顺序进行重新排序;另外,串口的调试输出也需要时间,因此因尽可能关闭串口调试输出。
作为本发明中一种优选的技术方案,在所述步骤七中:
USB进入一阶段仅保留单个输入输出功能,PC端后台服务程序检测到USB设备插入,建立与投屏器的会话,投屏器将系统信息和二阶段会话信息通过USB传输给PC端的后台应用,完成数据交互后,PC的后台应用迅速启动投屏应用窗口,一阶段的功能简单,投屏器在插入PC后,通常可以与PC在1秒左右完成交互,实现投屏的PC界面程序快速启动;
USB进入二阶段后会复合多个功能,与PC端投屏程序读取交换系统信息,PC投屏程序判断口令是否与一阶段一致,一致就进入投屏业务交互流程,不一致就请求使用新口令建立新会话,如果用户是首次使用还未安装PC后台程序,以USB存储盘的方式提供给用户安装。
与现有技术相比,本发明的有益效果是:
1.充分利用多核CPU的优势,让启动链路的SPL loader、Kernel boot init等任务能安全的在每个cpu核上并行运行;
2.将启动过程拆分不同等级启动,一级模块放在RAM中运行,加快启动速度,同时也能做到在低存储硬件规格的产品上实现快速启动;
3.应用程序的优化,基于事件通知和进程间通信机制来优化程序内部的等待时间;
4.将USB装置的复杂功能拆分成两个阶段,让用户能即插即显示程序交互的UI界面;
5.网络管理程序的优化,通过信道记忆和自检网络配置来缩减无线网络连接时间。
附图说明
图1为本发明的实现步骤示意图;
图2为本发明的引导程序启动流程。
具体实施方式
以下结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1和图2,本发明提供一种技术方案:一种无线投屏设备的快速启动方法,该启动方法主要包含三个大模块:引导程序、引导程序加载linux系统镜像到内存、投屏相关程序;
具体包括如下步骤:
步骤一:选用引导程序SPL,删除或禁用引导加载程序不需要的功能是优化引导加载程序的首要任务,所以系统引导程序选用较小的引导程序SPL而不是完整的引导程序uboot,SPL的配置只包含内存控制器、时钟、内存等基础硬件初始化及栈初始化程序,确保引导加载程序尽可能最小;
步骤二:SPL从启动媒介上读取数据后加载到内存中,跳过引导传统的主程序uboot,SPL直接从FIT启动系统内核,加快内核启动速度,引导程序启动流程:参照图2中的实线走向引导linux内核;
步骤三:引导程序加载linux系统镜像到内存,使用RAM磁盘启动小型Linux,RAM磁盘中只包含关键应用程序,启动过程中将CPU频率设置为高速率,根据场景将内核模块和应用程序的启动等级,放置在不同的分区上;
步骤四:在多核系统上,启动INITRD_ASYNC(Linux内核配置中的一个选项,用于启用或禁用异步初始化内存盘的功能)让内核以异步的方式初始化RAM临时磁盘文件系统,使用INITCALL_ASYNC(Linux内核的一个配置选项,用于启用或禁用异步执行initcall函数的功能)允许一些初始化函数在多个CPU核心上并行执行,进一步提高启动速度;
步骤五:启用投屏相关程序,将应用端的无线WI-FI连接、USB、Type-CDP或HDMI图像信号的相关任务放在RAM磁盘中作为一级启动模块并行运行,应用端的无线WIFI的连接速度和USB的识别时间及Type-C DP或HDMI图像信号的采集是决定功能性快启的主要因素;
步骤六:网卡驱动程序加载后,网络管理程序根据已配对的网络信息,在无线环境下找到匹配的bssid(Basic Service Set Identifier,用于识别无线局域网络中的每个独立的访问点)后,将访问点信息保存到信息存储区(一种无需挂载非标准存储设备的驱动程序)中,并下次开机时直接快速找到配对的访问接入点,一旦连接成功,将动态网络配置服务获取到的网络信息保存到信息存储区,在后续开机时将保留的信息用于执行网络自检程序,快速判断是否要重新执行动态配置。使用信息存储区保存的网络配置数据,极大缩短了网络连接和配置的时间;
步骤七:USB所涉及的功能多,特别是USB摄像头功能的枚举还涉及到应用程序端,将gadget拆分成两个阶段来运行,避免应用程序启动的快慢还影响到PC识别USB设备的时间,第一个阶段运行在RAM磁盘的一级启动模块中,第二个阶段是运行在二级启动模块中;
步骤八:投屏程序检测到有DP或HDMI(视频显示信号)图像输入,并且与投屏远端设备已建立好网络通信连接时,使用直接对输入的图像信号数据进行编码的方式来投屏;如果没有DP或HDMI(视频显示信号)图像输入,投屏器通过与用户从USB光盘安装的PC软件之间传输数据来同屏;通过全链路优化,实现从插入投屏器到电脑后,3s内达到就绪状态(可投屏),与有线直连的使用体验基本一致。
本实施例中,步骤二中的FIT为Flattened Image Tree,通常包括设备树、内核映像、ramdisk以及启动过程需要的单个启动映像,其中FIT映像的大小需要尽可能地小,由于FIT通常包含了文件系统、linux系统内核和linux设备资源树文件,文件系统的类型直接影响启动时间,优化文件系统通常是引导时间优化中最重要的任务之一,本实施例使用临时文件系统如RAMFS(一种Linux内核中的虚拟文件系统,它将一个文件系统挂载在内存中)或者ROMFS(一种Linux内核中在只读存储介质上使用的文件系统)来改善启动时间。
本实施例中,在步骤二中,为内核映像选择合理的压缩技术对启动时间敏感的产品也至关重要,在读取时间和解压时间之间进行最佳权衡,本实施例使用的RV1126主控芯片带有硬件解压模块,所以选择硬件解码模块支持的压缩技术来对内核压缩。若主控芯片不具备这样的能力,可使用gzip或lz4压缩算法保持压缩比,同时不会在解压上消耗过多时间。
本实施例中,在步骤三中,分区设置为三个等级,其中:
一级是放在RAM磁盘中的关键应用程序和驱动程序模块;
二级是放在overlay.img映像中;
其余的大型静态资源文件放在oem.img映像中。
本实施例中,在步骤三中,在内核的启动参数bootarg环境中手动设置lpj(loopsper jiffy,与内核中时钟频率的设置相关)参数,省去内核在启动过程中自动测量lpj的时间。
本实施例中,在步骤四中,INITCALL_ASYNC涉及初始化顺序,通过串口输出观察内核初始调用的顺序,在保证异步初始化时不会因依赖问题导致初始化失败,按优先次序对驱动程序之间的依赖链和加载顺序进行重新排序。另外,串口的调试输出也会消耗时间,因此关闭启动环节的串口输出。
本实施例中,在步骤七中:
USB进入一阶段仅保留单个输入输出功能,PC端后台服务程序检测到USB设备插入,建立与投屏器的会话,投屏器将系统信息和二阶段会话信息通过USB传输给PC端的后台应用,完成数据交互后,PC的后台应用迅速启动投屏应用窗口,一阶段的功能简单,在插入PC后,可以与PC在1秒左右完成交互,实现投屏的界面程序快速启动;
USB进入二阶段后会复合多个功能,与PC端投屏程序读取交换系统信息,PC投屏程序判断口令是否与一阶段一致,一致就进入投屏业务交互流程,不一致就请求使用新口令建立新会话,如果用户是首次使用还未安装PC后台程序,以USB存储盘的方式提供给用户安装。
在本发明中,在基于RV1126/RV1109芯片,使用轻量级的SPL/TPL引导加载程序,避开加载uboot主引导程序,充分利用芯片的多核优势,异步并行引导系统开机流程;对功能进行合理的拆分,系统按场景优先级进行裁剪和划分;对应用层进行优化。优化完成后,产品可做到3s内投屏,并实现1s冷启动,1s唤醒电脑程序的UI界面。
尽管已经示出和描述了本发明的实施例(详见上述详尽的描述),对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (7)

1.一种无线投屏设备的快速启动方法,其特征在于:该启动方法主要包含三个大模块:引导程序、引导程序加载linux系统镜像到内存、投屏相关程序;
具体包括如下步骤:
步骤一:选择使用引导程序SPL;
步骤二:SPL从启动媒介上读取数据后加载到内存中并运行,跳过传统引导系统的主程序uboot,通过SPL直接从FIT启动系统内核,加快内核启动速度;
步骤三:引导程序加载linux系统镜像到内存,使用RAM磁盘启动小型linux系统。RAM磁盘中只包含关键应用程序,启动过程中CPU频率运行在高速率,根据场景将内核模块和应用程序的启动等级放在不同的分区上;
步骤四:在多核芯片上,通过使用INITRD_ASYNC让内核以异步的方式初始化RAM临时磁盘文件系统,用INITCALL_ASYNC允许一些任务在多个CPU核心上并行执行,提高启动速度;
步骤五:启用投屏相关程序,将应用端的无线WIFI、USB、Type-C DP信号的关键程序放在RAM磁盘中,作为一级启动模块并行运行;
步骤六:网卡驱动程序加载后,网络管理程序根据配对的网络信息,在无线环境下找到匹配的bssid后,将访问点信息保存到信息存储区中,以便下次开机时直接快速找到配对的访问接入点,一旦连接成功,将动态网络配置服务获取到的网络信息保存到信息存储区,在下次开机的时候利用保存的信息进行网络自动配置,并使用自检程序检查是否要重新执行动态配置。利用信息存储区保存的网络配置数据,极大缩短了网络连接和配置的时间;
步骤七:将USB gadget按优先级拆分成多个阶段来运行,第一个阶段运行在RAM磁盘的一级启动模块中,后续阶段运行在二级之后的启动模块中;
步骤八:投屏程序检测到有DP或HDMI图像信号输入,并且与同屏远端设备已建立好网络连接时,使用直接对输入的图像信号数据进行编码的方式来投屏;如果没有DP或HDMI图像信号输入,投屏器通过与用户从USB存储盘中安装的PC软件之间传输数据来实现投屏。
2.根据权利要求1所述的一种无线投屏设备的快速启动方法,其特征在于:所述步骤二中的FIT为Flattened Image Tree,通常包括设备树、内核映像、ramdisk以及启动过程需要的单个启动映像。
3.根据权利要求1所述的一种无线投屏设备的快速启动方法,其特征在于:在所述步骤二中,为内核映像选择硬件解码模块支持的压缩技术来对内核压缩,若主控芯片不具备这样的能力,使用gzip或lz4等压缩算法保持压缩比。
4.根据权利要求1所述的一种无线投屏设备的快速启动方法,其特征在于:所述步骤三中,分区设置为不同的启动等级,其中:
一级是放在RAM磁盘中的关键应用程序和驱动程序模块;
二级是放在overlay.img映像中;
其余的大型静态资源文件放在oem.img映像中。
5.根据权利要求1所述的一种无线投屏设备的快速启动方法,其特征在于:在所述步骤三中,在内核的启动参数bootarg环境中设置lpj(loops_per_jiffy)参数,省去内核在启动过程中自动测量lpj的时间。
6.根据权利要求1所述的一种无线投屏设备的快速启动方法,其特征在于:在所述步骤四中,INITCALL_ASYNC涉及初始化,通过串口输出观察内核初始调用的顺序,在保证异步初始化时不会因依赖导致初始化失败的前提下,对驱动程序之间的依赖链和加载顺序进行重新排序。另外,串口调试日志输出也需要时间,因此需要关闭所有窜口调试信息输出,以最大程度节省启动时间。
7.根据权利要求1所述的一种无线投屏设备的快速启动方法,其特征在于:在所述步骤七中:
USB进入一阶段仅保留单个输入输出通信功能,PC端后台服务程序检测到USB设备插入,建立与投屏器的会话,投屏器将系统信息和二阶段会话信息通过USB传输给PC端的后台应用,完成数据交互后,PC的后台应用迅速启动投屏应用窗口,由于一阶段的功能简单,在投屏器插入PC后,可与PC在1秒左右完成交互,实现投屏器PC界面程序的快速启动;
USB进入二阶段后会复合多个功能,投屏其与PC端投屏程序读取交换系统信息,PC投屏程序判断口令是否与一阶段一致,一致就进入投屏业务交互流程,不一致就请求使用新口令建立新会话,如果用户是首次使用还未安装PC后台程序,以USB存储盘的方式提供给用户安装。
CN202410536653.5A 2024-04-30 2024-04-30 一种无线投屏设备的快速启动方法 Pending CN118312241A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410536653.5A CN118312241A (zh) 2024-04-30 2024-04-30 一种无线投屏设备的快速启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410536653.5A CN118312241A (zh) 2024-04-30 2024-04-30 一种无线投屏设备的快速启动方法

Publications (1)

Publication Number Publication Date
CN118312241A true CN118312241A (zh) 2024-07-09

Family

ID=91724345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410536653.5A Pending CN118312241A (zh) 2024-04-30 2024-04-30 一种无线投屏设备的快速启动方法

Country Status (1)

Country Link
CN (1) CN118312241A (zh)

Similar Documents

Publication Publication Date Title
KR101505209B1 (ko) 미디어 장치에서의 다중 운영 체제의 지원
CN109542744B (zh) 检测终端开机异常问题的方法、装置、存储介质及终端
EP1983432A1 (en) Booting system, boot program, and method therefor
US8458524B2 (en) Firmware recovery system and method
CN110134446B (zh) 启动pcie设备扫描的方法
CN104750510A (zh) 一种芯片启动方法及多核处理器芯片
US20090089572A1 (en) Booting system, image forming apparatus having the system and control method thereof
CN109408122B (zh) 一种设备启动方法、电子设备和计算机存储介质
CN101533355A (zh) 一种启动多操作系统的方法和装置
CN113176493A (zh) 芯片测试主板、测试系统以及测试方法
CN111338698A (zh) 一种bios准确引导服务器启动的方法及系统
CN117632570B (zh) 基于多核异构soc的多操作系统诊断方法、装置和系统
CN108829442B (zh) 程序启动方法及装置
CN101957762A (zh) 加速启动装置、具有该装置的计算机系统及其启动方法
CN111753309A (zh) 一种显卡切换方法及服务器、存储介质
CN118312241A (zh) 一种无线投屏设备的快速启动方法
CN112948315B (zh) 存储区域共享方法、存储介质及电子设备
US8373707B1 (en) System and method for selecting the boot VGA adapter in a multi-graphics processing unit computing system
CN114780166A (zh) 引脚配置的方法、相关装置、设备以及可读存储介质
CN113950044A (zh) 用户识别卡的识别方法、装置、终端设备及存储介质
CN114339970A (zh) 低功耗WiFi联网传输方法、装置以及存储介质
CN113472611A (zh) 获取WiFi信号强度的方法、装置及可读存储介质
CN103473081A (zh) 终端进行系统升级后生效的方法及该终端
CN117311890B (zh) 服务器启动过程中的画面显示方法及装置
CN115562697B (zh) 升级方法、设备及存储介质

Legal Events

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