CN103079108A - 启动机顶盒的方法及机顶盒 - Google Patents
启动机顶盒的方法及机顶盒 Download PDFInfo
- Publication number
- CN103079108A CN103079108A CN 201310010933 CN201310010933A CN103079108A CN 103079108 A CN103079108 A CN 103079108A CN 201310010933 CN201310010933 CN 201310010933 CN 201310010933 A CN201310010933 A CN 201310010933A CN 103079108 A CN103079108 A CN 103079108A
- Authority
- CN
- China
- Prior art keywords
- startup
- content
- chain
- subregion
- top box
- 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
Links
Images
Abstract
本发明公开了一种启动机顶盒的方法及机顶盒,预先设置主分区标识以及备份分区标识,在主分区以及备份分区中,分别存储用于机顶盒启动的启动内容;根据主分区以及备份分区存储的启动内容,构建包含分区标识映射的启动内容的启动链;根据设置的启动链,依序加载启动链中分区标识映射的启动内容,启动机顶盒;检测到启动内容需要升级,在非当前正在运行的启动内容所在的分区中,升级所述启动内容;监测到所述启动内容升级成功,更新设置的启动链中启动内容映射的分区标识。应用本发明,可以降低机顶盒启动时间,提升机顶盒的启动成功率。
Description
技术领域
本发明涉及数字电视技术,尤其涉及一种启动机顶盒的方法及机顶盒。
背景技术
随着国家三网融合的发展,电视市场逐渐成熟,越来越多的企业开始发展智能电视(DTV,Definition Television)。智能电视是指具备开放式操作系统与芯片,拥有开放式应用平台,可实现双向人机交互功能,能通过自主安装应用程序实现新功能或增值服务,并可借助三网接入、3C融合等满足多样化和个性化需求的终端应用平台。
交互式网络电视(IPTV,Internet protocol Television)是DTV的一种,采用宽带有线电视网,集互联网技术、多媒体技术、通讯技术等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务。受益于三网融合政策和宽带升级的契机,2012年是IPTV快速发展和用户增长的最佳时期。据赛迪顾问的预测数据,2012年,中国的IPTV用户数规模有望达到2110.2万户,较2011年增长751.7万户,增长率达55.3%;至2014年,中国的IPTV用户数有望达4042.4万户,相比2011年,有近2倍的增长。
现有技术中,基于Linux的嵌入式系统,启动过程是从引导区(boot)启动到操作系统内核(Kernel),Kernel加载根文件系统(root file system),然后,在根文件系统中配置所要启动的应用程序,从而完成从开机到用户应用的启动过程。
为了保障机顶盒的正常启动,现有技术中,一般采用双备份的启动方法,即将机顶盒启动内容作为主备份,分别存储在主分区以及备份分区中,在触发机顶盒启动时,启动主分区中的内容,如果主分区中的内容被破坏不能正常启动,则触发将备份分区中的内容拷贝到主分区中,然后再启动主分区中的内容,从而实现机顶盒的启动。
机顶盒作为IPTV的用户终端,随着IPTV的迅速发展,其市场占有量也在迅速增加。同时,机顶盒作为网络产品,为了适应新的数字电视技术发展,需要不断对机顶盒系统和应用程序软件进行升级,目前IPTV网络机顶盒的在线升级,主要通过IP方式完成,而纷繁复杂的网络环境,例如,网络环境的不确定性,导致机顶盒升级失败的比率较高,从而降低了用户对数字电视的体验。
在对机顶盒进行升级后,由于机顶盒中Kernel、根文件系统以及应用程序等软件都存在升级成功以及升级失败两种情形,而采用启动主分区中内容的启动方式,在主分区中的内容被破坏不能正常启动后,需要将备份分区中的内容拷贝到主分区中,使得机顶盒启动时间较长;进一步地,在对每一软件进行升级处理后,都需要同步更新主分区以及备份分区,而升级失败的软件,又容易导致主分区中的内容启动失败,使得机顶盒启动成功率较低。
发明内容
本发明的实施例提供一种启动机顶盒的方法,降低机顶盒启动时间,提升机顶盒的启动成功率。
本发明的实施例还提供一种机顶盒,降低机顶盒启动时间,提升机顶盒的启动成功率。
为达到上述目的,本发明实施例提供的一种启动机顶盒的方法,该方法包括:
预先设置主分区标识以及备份分区标识,在主分区以及备份分区中,分别存储用于机顶盒启动的启动内容;
根据主分区以及备份分区存储的启动内容,构建包含分区标识映射的启动内容的启动链;
根据设置的启动链,依序加载启动链中分区标识映射的启动内容,启动机顶盒;
检测到启动内容需要升级,在非当前正在运行的启动内容所在的分区中,升级所述启动内容;
监测到所述启动内容升级成功,更新设置的启动链中启动内容映射的分区标识。
其中,所述启动内容包括:内核、根文件系统和应用程序。
其中,所述构建包含分区标识映射的启动内容的启动链包括:
设置至少三位的无符号二进制数表示启动链,低3位二进制数分别依序表示内核启动项、根文件系统启动项和应用程序启动项;
设置每一位二进制数取值为0时,表示主分区标识映射的启动内容,二进制数取值为1时,表示备份分区标识映射的启动内容;
选取需要启动的主分区启动内容以及备份分区启动内容,依序设置启动链中低3位二进制数的值,获取包含分区标识映射的启动内容的启动链。
其中,所述主分区启动内容包括:主分区内核、主分区根文件系统和主分区应用程序;所述备份分区启动内容包括:备份分区内核、备份分区根文件系统和备份分区应用程序。
其中,所述启动链存储在闪存中。
其中,所述方法进一步包括:
在启动链中,设置启动内容的配置信息。
其中,所述启动内容为内核和根文件系统,所述配置信息包括:主分区启动内容所在分区信息以及备份分区启动内容所在分区信息。
其中,所述在非当前正在运行的启动内容所在的分区中,升级所述启动内容包括:
如果当前运行的为主分区中的启动内容,则在备份分区中,对该启动内容进行升级;
如果当前运行的为备份分区中的启动内容,则在主分区中,对该启动内容进行升级。
其中,所述方法进一步包括:
监测到所述启动内容未升级成功,维持启动链中启动内容映射的分区标识不变。
一种机顶盒,该机顶盒包括:启动内容存储模块、启动链构建模块、启动模块、启动内容升级模块以及启动链更新模块,其中,
启动内容存储模块,用于预先设置主分区标识以及备份分区标识,在主分区以及备份分区中,分别存储用于机顶盒启动的启动内容;
启动链构建模块,用于根据主分区以及备份分区存储的启动内容,构建包含分区标识映射的启动内容的启动链;
启动模块,用于根据启动链构建模块中设置的启动链,依序加载启动链中分区标识映射的启动内容,启动机顶盒;
启动内容升级模块,用于检测到启动内容需要升级,在启动内容存储模块中非当前正在运行的启动内容所在的分区中,升级所述启动内容;
启动链更新模块,用于监测到所述启动内容升级成功,更新启动链构建模块中设置的启动链中启动内容映射的分区标识。
较佳地,所述启动链构建模块进一步用于在构建的启动链中,设置启动内容的配置信息。
较佳地,所述启动链更新模块进一步用于在监测到所述启动内容未升级成功,维持启动链中启动内容映射的分区标识不变。
由上述技术方案可见,本发明实施例提供的一种启动机顶盒的方法及机顶盒,预先设置主分区标识以及备份分区标识,在主分区以及备份分区中,分别存储用于机顶盒启动的启动内容;根据主分区以及备份分区存储的启动内容,构建包含分区标识映射的启动内容的启动链;根据设置的启动链,依序加载启动链中分区标识映射的启动内容,启动机顶盒;检测到启动内容需要升级,在非当前正在运行的启动内容所在的分区中,升级所述启动内容;监测到所述启动内容升级成功,更新设置的启动链中启动内容映射的分区标识。这样,通过设置包含分区标识映射的启动内容的启动链,在运行某一分区中的启动内容时,可以通过另一分区,对该启动内容进行升级,并在升级成功后,更新启动链中的分区标识,使之指向升级成功的分区中的启动内容,从而在机顶盒启动时,无需将备份分区中的内容拷贝到主分区中进行机顶盒启动,有效降低了机顶盒的启动时间;同时,可以避免升级不成功的软件对启动分区中启动内容的影响,从而提升了机顶盒的启动成功率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,以下将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,还可以根据这些附图所示实施例得到其它的实施例及其附图。
图1为本发明实施例启动机顶盒的方法流程示意图。
图2为本发明实施例启动机顶盒的方法具体流程示意图。
图3为本发明实施例的机顶盒结构示意图。
具体实施方式
以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
现有启动机顶盒的方法,启动主分区中的内容,在主分区中的内容被破坏不能正常启动后,将备份分区中的内容拷贝到主分区中进行再次启动,使得机顶盒启动时间较长;进一步地,在对软件的升级失败后,容易导致主分区中的内容启动失败,使得机顶盒启动成功率较低,即对于机顶盒升级成功以及机顶盒升级不成功的情形,没有对启动项选择的技术问题提出有效可行的解决方案。
本发明实施例中,考虑机顶盒升级成功以及机顶盒升级不成功的情形,设置软件升级成功对应的启动项以及未升级软件对应的启动项,即不采用启动主分区中内容的启动方式,在对软件进行升级时,只针对主分区或备份分区的软件进行升级,如果机顶盒主分区或备份分区中的软件升级成功,则机顶盒采用该升级成功的软件对应的启动项进行启动,从而运行新升级的软件,为用户提供数字电视服务,如果机顶盒主分区或备份分区中的软件升级失败,则机顶盒采用原有软件对应的启动项进行启动,运行原软件,并通过原有软件继续为用户提供数字电视服务,通过主备份分区的切换启动,从而无需将备份分区中的内容拷贝到主分区中进行机顶盒启动,有效降低了机顶盒的启动时间;同时,可以避免升级不成功的软件对启动分区内容的影响,从而提升了机顶盒的启动成功率。这样,针对Linux系统的机顶盒,本发明实施例提供了如何选择操作系统内核(Kernel)、根文件系统(root file system)、应用程序以启动机顶盒的方法。
图1为本发明实施例启动机顶盒的方法流程示意图。参见图1,该流程包括:
步骤101,预先设置主分区标识以及备份分区标识,在主分区以及备份分区中,分别存储用于机顶盒启动的启动内容;
本步骤中,设置主分区标识为0,备份分区标识为1。当然,实际应用中,也可以以其它方式设置主分区标识以及备份分区标识,例如,以A表示主分区标识,以B表示备份分区标识。
启动内容包括:Kernel、root file system和应用程序。
本发明实施例中,启动内容是指存储至主分区以及备份分区中的Kernel、root file system和应用程序,在主分区以及备份分区初始存储的启动内容中,主分区以及备份分区中的启动内容相同,即在主分区以及备份分区中,包含有相同的Kernel、root file system和应用程序。
本发明实施例中,设置分区标识(主分区标识以及备份分区标识)是为了后续的启动链设置。
步骤102,根据主分区以及备份分区存储的启动内容,构建包含分区标识映射的启动内容的启动链;
本步骤中,分区标识映射的启动内容称为分区启动项,例如,主分区标识所属主分区中的启动内容为主分区启动项,备份分区标识所属备份分区中的启动内容为备份分区启动项。
如前所述,主分区以及备份分区存储的启动内容包括:Kernel、root filesystem和应用程序,即分区启动内容包括:主分区启动内容以及备份分区启动内容,其中,主分区启动内容包括:主分区Kernel、主分区root file system和主分区应用程序,备份分区启动内容包括:备份分区Kernel、备份分区root file system和备份分区应用程序,每一分区启动项对应一分区启动内容,相应地,分区启动项包括:主分区启动项以及备份分区启动项,其中,
主分区启动项包括:Kernel主启动项、root file system主启动项和应用程序主启动项。
备份分区启动项包括:Kernel备份启动项、root file system备份启动项和应用程序备份启动项。
实际应用中,Kernel启动项、root file system启动项和应用程序启动项的启动具有确定的先后顺序,因而,在构建启动链时,只需根据确定的先后顺序,设置启动项映射的分区,这样,通过顺序读取分区启动项,即可实现机顶盒的启动,使得启动机顶盒所需的时间较少。
由于每一二进制数可以表示两种状态,因而,本发明实施例中,较佳地,采用32位的无符号二进制数表示启动链(unBootChain),其中,采用低3位二进制数分别表示Kernel启动项、根文件系统启动项和应用程序启动项,当二进制数取值为0(分区标识为0)时,表示选取主分区的主分区启动项,当二进制数取值为1(分区标识为1)时,表示选取备份分区的备份分区启动项。其它位的二进制数作为预留扩展使用。当然,实际应用中,也可以仅仅采用3位的无符号二进制数表示启动链。
这样,构建包含分区标识映射的启动内容的启动链包括:
设置至少三位的无符号二进制数表示启动链,低3位二进制数分别依序表示Kernel启动项、根文件系统启动项和应用程序启动项;
设置每一位二进制数取值为0时,表示主分区标识映射的启动内容,二进制数取值为1时,表示备份分区标识映射的启动内容;
选取需要启动的主分区以及备份分区的启动内容,依序设置启动链中低3位二进制数的值,获取包含分区标识映射的启动内容的启动链。
本步骤中,如果选取的启动内容依序为Kernel主启动项、root file system备份启动项和应用程序主启动项,则依序设置的启动链中低3位二进制数的值分别为0、1、0,最后构建的启动链为(0,1,0)。
较佳地,启动链存储在闪存(Flash)中。
这样,本发明实施例的启动链的设置方式包括:
(0,0,0),表示依序启动Kernel主启动项、root file system主启动项和应用程序主启动项;
(0,0,1),表示依序启动Kernel主启动项、root file system主启动项和应用程序备份启动项;
(0,1,0),表示依序启动Kernel主启动项、root file system备份启动项和应用程序主启动项;
(0,1,1),表示依序启动Kernel主启动项、root file system备份启动项和应用程序备份启动项;
(1,0,0),表示依序启动Kernel备份启动项、root file system主启动项和应用程序主启动项;
(1,0,1),表示依序启动Kernel备份启动项、root file system主启动项和应用程序备份启动项;
(1,1,0),表示依序启动Kernel备份启动项、root file system备份启动项和应用程序主启动项;
(1,1,1),表示依序启动Kernel备份启动项、root file system备份启动项和应用程序备份启动项。
实际应用中,对于主分区以及备份分区存储的初始启动内容,即在机顶盒进行出厂设置时,可以设置初始的启动链为(0,0,0)。
所应说明的是,步骤101和步骤102在机顶盒的多次启动过程中,只需执行一次,而无需在机顶盒每次启动时,都需要执行。
当然,实际应用中,为了在机顶盒启动时能够正确查找到启动项,本发明实施例中,除了构建包含分区标识映射的启动内容的启动链外,还可以设置各启动项(启动内容)的配置信息,从而配合启动链完成机顶盒的启动。例如,对于Kernel和根文件系统,配置信息包括:主分区启动项所在分区信息、备份分区启动项(启动内容)所在分区信息,对于应用程序,配置信息可以是单独设置的分区信息,包括应用程序分区名称信息、所在的Flash分区信息、应用程序所在的该Flash分区的起始和结束地址信息。也可以是在文件系统中,以不同的应用程序名称进行识别。这样,在机顶盒软件升级后,根据启动要求重新设置启动链,从而调整为软件更新后的启动顺序。
实际应用中,配置信息是在机顶盒出厂时,预置到配置信息分区中。关于Kernel、根文件系统以及应用程序的配置信息的设置,具体可参见相关技术文献,在此不再赘述。
步骤103,根据设置的启动链,依序加载启动链中分区标识映射的启动内容,启动机顶盒;
本步骤中,例如,启动链的设置方式为(0,0,0),则从主分区中,依序加载Kernel、root file system和应用程序,从而启动机顶盒。
步骤104,检测到启动内容需要升级,在非当前正在运行的启动内容所在的分区中,升级所述启动内容;
本步骤中,如果机顶盒在服务器端检测到闪存中的启动内容具有更新版本,则在非当前正在运行的启动内容所在的分区中,升级该启动内容,例如,对于应用程序来说,如果当前运行的为主分区中的应用程序主启动项,则在对该应用程序升级时,升级备份分区的应用程序。这样,应用程序升级与当前运行的应用程序相互独立,因而,可以避免需要同步主分区和备份分区中的启动内容,有效降低了机顶盒的启动时间;进一步地,还可以避免升级失败的软件导致的启动内容失败,提升了机顶盒的启动成功率。
步骤105,监测到所述启动内容升级成功,更新设置的启动链中启动内容映射的分区标识。
本步骤中,通过设置主启动项和备份启动项,在当前运行的启动项为主启动项的情况下,需要对该启动项所属的启动内容进行升级时,升级该启动内容对应的备份启动项,并在备份分区的该启动内容升级成功后,修改启动链,使之指向备份启动项,如果备份分区的该启动内容升级失败,则维持启动链不变,使得机顶盒下次启动时,仍然从启动链指向的主启动项启动;反之,在当前运行的启动项为备份启动项的情况下,需要对该启动项所属的启动内容进行升级时,升级该启动内容对应的主启动项,并在主分区的该启动内容升级成功后,修改启动链,使之指向主启动项,如果主分区的该启动内容升级失败,则维持启动链不变,使得机顶盒下次启动时,仍然从启动链指向的备份启动项启动。
由上述可见,本发明实施例启动机顶盒的方法,为了满足IPTV网络机顶盒升级的稳定性和可靠性,针对启动项如何选择的技术问题,提出了基于启动链方式来选择启动项的软件实现方法,从而对启动项选择提出有效可行的解决方案,使得采用双备份升级方式的机顶盒能在实际中得到应用。具体来说,基于启动链的升级方式,在基于Linux的机顶盒中,启动项至少包括Kernel、root file system和应用程序的启动三部分,每部分设置有两种启动项选择,设定32位无符号二进制数用于表示启动链,并使用32位无符号整数中的前三位二进制数依序表示Kernel、root file system和应用程序三组启动项,对每一二进制值,分别设定为0和1,即每一位二进制数值对应于Kernel、root file system和应用程序三组启动项的选择标志,其中,0对应主启动项,1对应备份启动项。这样,该基于启动链的机顶盒启动方法,不仅有效解决了双备份机顶盒的启动项选择问题,降低了机顶盒的启动时间,提升了机顶盒的启动成功率,而且,在使用过程中不增加额外开销,便于理解和错误排查,增加了产品的可靠性和稳定性;进一步地,由于该机顶盒启动方法实现了网络机顶盒启动项选择,为网络机顶盒在线升级提供了一种有效的解决方法,从而实现机顶盒的双备份升级,该方法可以大量使用于网络机顶盒中,并且随着网络机顶盒的大力推广,可以获得更为广泛的应用。目前,该机顶盒启动方法已经成功应用于几款实际产品之中,并已经批量使用。
以下以Kernel、根文件系统和应用程序三组启动项为例,详细介绍本发明实施例的启动机顶盒的方法。
图2为本发明实施例启动机顶盒的方法具体流程示意图。该方法基于启动链,参见图2,该流程包括:
步骤201,从Flash中读取预先设置的启动链(unBootChain)的值;
本步骤中,预先设置启动链,启动链贯穿于boot、kernel、根文件系统和应用程序之中,起到启动选择的作用,采用32位的无符号整数表示unBootChain,并采用前三位二进制数依序表示Kernel、根文件系统和应用程序三组启动项,设置每一位二进制数值对应于Kernel、root file system和应用程序三组启动项的选择标志,其中,0对应主启动项,1对应备份启动项。这样,基于启动链启动机顶盒,只需要保存一个32位的无符号整数和少量配置信息,额外的存储开销较少;同时,在启动过程中,只需要进行位与判断,不需要进行复杂的计算,不会增加时间开销;而且,可以方便维护和排错。
启动链保存在Flash中。
表1为启动链示例表。
表1
比特位(Bit) | 含义 | 启动项设置 |
0 | Kernel | 0表示主启动项,1表示备份启动项 |
1 | 根文件系统 | 0表示主启动项,1表示备份启动项 |
2 | 应用程序 | 0表示主启动项,1表示备份启动项 |
表1中,采用三位比特位分别表示Kernel、根文件系统和应用程序,其中,第一比特位(比特位为0)表示Kernel,当第一比特位取值为0时,表示选择Kernel主启动项,当第一比特位取值为1时,表示选择Kernel备份启动项;第二比特位(比特位为1)表示根文件系统,当第二比特位取值为0时,表示选择根文件系统主启动项,当第二比特位取值为1时,表示选择根文件系统备份启动项;第三比特位(比特位为2)表示应用程序,当第三比特位取值为0时,表示选择应用程序主启动项,当第三比特位取值为1时,表示选择应用程序备份启动项。
本发明实施例中,如果正在使用的是主启动项,升级时就升级备份启动项,升级成功后修改启动链指向备份启动项,如果升级失败,则启动链不变,下次仍然从主启动项启动。反之,如果正在使用的是备份启动项,那么升级时升级主启动项,升级成功后,修改启动链指向主启动项,如果升级失败,则启动链不变,下次仍然从备份启动项启动。
实际应用中,三位比特位的值都可以设置为0,则启动过程表示从boot->kernel主启动项-〉根文件系统主启动项-〉应用程序主启动项。
启动判断方法如下:
unBootChain&0x01:Kernel启动项;
unBootChain&0x02:根文件系统启动项;
unBootChain&0x04:应用程序启动项。
步骤202,判断第一比特位的值,如果为0,执行步骤203,如果为1,执行步骤204;
本步骤中,unBootChain中的第一比特位表示Kernel,即unBootChain &0x01,如果第一比特位的值为0,表示启动Kernel主启动项。
步骤203,读取Kernel主启动项的配置信息;
本步骤中,为了能够正确查找启动项,除了设置启动链外,还可以设置各启动项的配置信息,从而配合启动链完成机顶盒的启动。例如,对于Kernel和根文件系统,记录主启动项、备份启动项所在分区信息,对于应用程序,可以单独设置分区,配置信息可以包括:应用程序分区名称、所在的Flash分区和该分区的起始和结束地址,出厂时将配置信息预置到配置信息分区。也可以在文件系统中,以不同的名字进行识别。这样,在机顶盒软件升级后,根据启动要求重新设置启动链,从而调整为软件更新后的启动顺序。
步骤204,读取Kernel备份启动项的配置信息;
步骤205,设置启动命令(bootcmd)信息;
本步骤中,启动链和启动项的配置信息可以保存在闪存(Flash)中,机顶盒启动过程为:在boot启动之后,从Flash中查找启动链的值,根据查找得到的启动链的值,判断启动项,然后,根据启动项去查找该启动项对应的配置信息,在boot中设置bootcmd确定启动到的Kernel,同时,将启动链的值作为bootargs传入Kernel和根文件系统中,根文件系统和应用程序启动项的选择与Kernel启动项的选择相类似。其中,
bootcmd是boot中的命令,表示如何启动kernel,根据启动链的值不同,可能启动主分区kernel,也可能启动备份分区kernel。主分区kernel与备份分区kernel在Flash中位于不同的分区,根据启动链的值确定了kernel分区后,就确定了bootcmd的值。
步骤206,判断第二比特位的值,如果为0,执行步骤207,如果为1,执行步骤208;
本步骤中,unBootChain中的第二比特位表示根文件系统,即unBootChain&0x02。
步骤207,读取根文件系统主启动项的配置信息;
步骤208,读取根文件系统备份启动项的配置信息;
步骤209,设置启动命令参数信息;
本步骤中,启动命令参数信息是指Linux中的bootargs,通过该值,可以确定启动哪一个根文件系统。也就是说,通过设置启动链的值,可以获取启动的分区信息(主分区还是备份分区),但如何启动,需要根据启动链的值设置bootcmd信息和启动命令参数信息,机顶盒根据设置的bootcmd信息和启动命令参数信息,选择相应分区的kernel和根文件系统,从而启动机顶盒。
步骤210,记录unBootChain的值;
步骤211,启动Kernel;
步骤212,启动根文件系统;
步骤213,判断第三比特位的值,如果为0,执行步骤214,如果为1,执行步骤215;
本步骤中,unBootChain中的第三比特位表示应用程序,即unBootChain&0x03。
步骤214,启动应用程序主启动项;
步骤215,启动应用程序备份启动项。
本步骤中,应用程序备份启动项是指备份应用程序。
图3为本发明实施例的机顶盒结构示意图。参见图3,该机顶盒包括:启动内容存储模块、启动链构建模块、启动模块、启动内容升级模块以及启动链更新模块,其中,
启动内容存储模块,用于预先设置主分区标识以及备份分区标识,在主分区以及备份分区中,分别存储用于机顶盒启动的启动内容;
本发明实施例中,用于机顶盒启动的启动内容包括:主分区启动内容以及备份分区启动内容,其中,主分区启动内容包括:主分区Kernel、主分区root file system和主分区应用程序,备份分区启动内容包括:备份分区Kernel、备份分区root file system和备份分区应用程序。
启动链构建模块,用于根据主分区以及备份分区存储的启动内容,构建包含分区标识映射的启动内容的启动链;
本发明实施例中,采用32位的无符号二进制数表示启动链,其中,采用低3位二进制数分别表示Kernel、根文件系统和应用程序,当二进制数取值为0时,表示选取主分区的启动内容,当二进制数取值为1时,表示选取备份分区的启动内容。
启动模块,用于根据启动链构建模块中设置的启动链,依序加载启动链中分区标识映射的启动内容,启动机顶盒;
本发明实施例中,如果启动链中设置的分区标识映射的启动内容对应的二进制数的值分别为0、1、0,则依序启动主分区Kernel、备份分区rootfile system和主分区应用程序。
启动内容升级模块,用于检测到启动内容需要升级,在启动内容存储模块中非当前正在运行的启动内容所在的分区中,升级所述启动内容;
本发明实施例中,如果当前运行的为主分区中的启动内容,则在备份分区中,对该启动内容进行升级;如果当前运行的为备份分区中的启动内容,则在主分区中,对该启动内容进行升级。
启动链更新模块,用于监测到所述启动内容升级成功,更新启动链构建模块中设置的启动链中启动内容映射的分区标识。
较佳地,启动链构建模块进一步用于在构建的启动链中,设置启动内容的配置信息。
本发明实施例中,当启动内容为Kernel和根文件系统时,配置信息包括:主分区启动内容所在分区信息以及备份分区启动内容所在分区信息。
较佳地,启动链更新模块进一步用于在监测到所述启动内容未升级成功,维持启动链中启动内容映射的分区标识不变。
显然,本领域技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也包含这些改动和变型在内。
Claims (10)
1.一种启动机顶盒的方法,该方法包括:
预先设置主分区标识以及备份分区标识,在主分区以及备份分区中,分别存储用于机顶盒启动的启动内容;
根据主分区以及备份分区存储的启动内容,构建包含分区标识映射的启动内容的启动链;
根据设置的启动链,依序加载启动链中分区标识映射的启动内容,启动机顶盒;
检测到启动内容需要升级,在非当前正在运行的启动内容所在的分区中,升级所述启动内容;
监测到所述启动内容升级成功,更新设置的启动链中启动内容映射的分区标识。
2.根据权利要求1所述的方法,其中,所述启动内容包括:内核、根文件系统和应用程序。
3.根据权利要求2所述的方法,其中,所述构建包含分区标识映射的启动内容的启动链包括:
设置至少三位的无符号二进制数表示启动链,低3位二进制数分别依序表示内核启动项、根文件系统启动项和应用程序启动项;
设置每一位二进制数取值为0时,表示主分区标识映射的启动内容,二进制数取值为1时,表示备份分区标识映射的启动内容;
选取需要启动的主分区启动内容以及备份分区启动内容,依序设置启动链中低3位二进制数的值,获取包含分区标识映射的启动内容的启动链。
4.根据权利要求3所述的方法,其中,所述主分区启动内容包括:主分区内核、主分区根文件系统和主分区应用程序;所述备份分区启动内容包括:备份分区内核、备份分区根文件系统和备份分区应用程序。
5.根据权利要求4所述的方法,其中,所述启动链存储在闪存中。
6.根据权利要求1至5任一项所述的方法,其中,所述方法进一步包括:
在启动链中,设置启动内容的配置信息。
7.根据权利要求6所述的方法,其中,所述启动内容为内核和根文件系统,所述配置信息包括:主分区启动内容所在分区信息以及备份分区启动内容所在分区信息。
8.一种机顶盒,其特征在于,该机顶盒包括:启动内容存储模块、启动链构建模块、启动模块、启动内容升级模块以及启动链更新模块,其中,
启动内容存储模块,用于预先设置主分区标识以及备份分区标识,在主分区以及备份分区中,分别存储用于机顶盒启动的启动内容;
启动链构建模块,用于根据主分区以及备份分区存储的启动内容,构建包含分区标识映射的启动内容的启动链;
启动模块,用于根据启动链构建模块中设置的启动链,依序加载启动链中分区标识映射的启动内容,启动机顶盒;
启动内容升级模块,用于检测到启动内容需要升级,在启动内容存储模块中非当前正在运行的启动内容所在的分区中,升级所述启动内容;
启动链更新模块,用于监测到所述启动内容升级成功,更新启动链构建模块中设置的启动链中启动内容映射的分区标识。
9.根据权利要求8所述的机顶盒,其特征在于,所述启动链构建模块进一步用于在构建的启动链中,设置启动内容的配置信息。
10.根据权利要求8或9所述的机顶盒,其特征在于,所述启动链更新模块进一步用于在监测到所述启动内容未升级成功,维持启动链中启动内容映射的分区标识不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310010933.4A CN103079108B (zh) | 2013-01-11 | 2013-01-11 | 启动机顶盒的方法及机顶盒 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310010933.4A CN103079108B (zh) | 2013-01-11 | 2013-01-11 | 启动机顶盒的方法及机顶盒 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103079108A true CN103079108A (zh) | 2013-05-01 |
CN103079108B CN103079108B (zh) | 2016-06-29 |
Family
ID=48155496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310010933.4A Active CN103079108B (zh) | 2013-01-11 | 2013-01-11 | 启动机顶盒的方法及机顶盒 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103079108B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103686366A (zh) * | 2013-12-13 | 2014-03-26 | 青岛海信电器股份有限公司 | 进程的处理方法和装置 |
CN103702194A (zh) * | 2013-12-20 | 2014-04-02 | 乐视致新电子科技(天津)有限公司 | 一种独立模块的升级方法和装置 |
CN107291488A (zh) * | 2016-04-11 | 2017-10-24 | 博世株式会社 | 车辆的控制系统和控制方法 |
CN111061514A (zh) * | 2019-10-30 | 2020-04-24 | 翱捷智能科技(上海)有限公司 | Flash器件、集成电路及Flash器件启动方法 |
CN112004155A (zh) * | 2020-08-24 | 2020-11-27 | 深圳创维-Rgb电子有限公司 | Oad升级方法、装置、智能电视和可读存储介质 |
CN113296850A (zh) * | 2021-07-26 | 2021-08-24 | 湖南博匠信息科技有限公司 | 嵌入式板卡操作系统备份启动方法及嵌入式系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026684A (zh) * | 2007-03-30 | 2007-08-29 | 广东有线广播电视网络股份有限公司 | 一种数字电视机顶盒软件更新系统中的条件判定方法 |
CN101520734A (zh) * | 2008-12-17 | 2009-09-02 | 康佳集团股份有限公司 | 一种升级闪存中数据的方法及其网络电视和交互式机顶盒 |
CN102110000A (zh) * | 2009-12-25 | 2011-06-29 | 康佳集团股份有限公司 | 一种软件自动升级控制方法、装置及设备 |
CN101923478A (zh) * | 2010-08-11 | 2010-12-22 | 福建新大陆通信科技股份有限公司 | 一种基于数字电视机顶盒软件的代码校验及版本存储方法 |
-
2013
- 2013-01-11 CN CN201310010933.4A patent/CN103079108B/zh active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103686366A (zh) * | 2013-12-13 | 2014-03-26 | 青岛海信电器股份有限公司 | 进程的处理方法和装置 |
CN103702194A (zh) * | 2013-12-20 | 2014-04-02 | 乐视致新电子科技(天津)有限公司 | 一种独立模块的升级方法和装置 |
CN103702194B (zh) * | 2013-12-20 | 2018-02-13 | 乐视致新电子科技(天津)有限公司 | 一种独立模块的升级方法和装置 |
CN107291488A (zh) * | 2016-04-11 | 2017-10-24 | 博世株式会社 | 车辆的控制系统和控制方法 |
CN107291488B (zh) * | 2016-04-11 | 2021-12-21 | 博世株式会社 | 车辆的控制系统和控制方法 |
CN111061514A (zh) * | 2019-10-30 | 2020-04-24 | 翱捷智能科技(上海)有限公司 | Flash器件、集成电路及Flash器件启动方法 |
CN112004155A (zh) * | 2020-08-24 | 2020-11-27 | 深圳创维-Rgb电子有限公司 | Oad升级方法、装置、智能电视和可读存储介质 |
CN113296850A (zh) * | 2021-07-26 | 2021-08-24 | 湖南博匠信息科技有限公司 | 嵌入式板卡操作系统备份启动方法及嵌入式系统 |
CN113296850B (zh) * | 2021-07-26 | 2021-12-03 | 湖南博匠信息科技有限公司 | 嵌入式板卡操作系统备份启动方法及嵌入式系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103079108B (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106843828B (zh) | 界面显示、加载方法及装置 | |
CN103079108A (zh) | 启动机顶盒的方法及机顶盒 | |
CN106484858B (zh) | 热点内容推送方法和装置 | |
CN105487980B (zh) | 修复应用程序运行异常的方法及装置 | |
CN106681766B (zh) | 远程固件升级控制方法及系统 | |
CN107391736B (zh) | 一种页面显示方法及装置 | |
CN105138700A (zh) | 背景图片显示方法及装置 | |
CN104836843A (zh) | 客户端应用程序更新的方法及装置 | |
CN102591573B (zh) | 一种应用提示的方法、装置 | |
CN105320527A (zh) | 基于zookeeper分布式搜索引擎的配置文件更新方法、装置及系统 | |
CN109063149B (zh) | 一种个性化推送屏保图片的方法 | |
CN108170820B (zh) | 一种容器处理方法、控制服务器及分布式集群 | |
CN102289382B (zh) | 电视软件更新方法、装置及系统 | |
CN103428264A (zh) | 数据同步的方法、设备及系统 | |
CN104077131A (zh) | 一种组件部署系统及方法 | |
CN103559065A (zh) | 一种ota升级的方法和系统 | |
CN102541595A (zh) | 智能设备的升级方法、装置及智能设备 | |
CN104580267A (zh) | 一种资源下载方法、装置、服务器和相应的系统 | |
US10019345B2 (en) | Executing multi-version tests against a multi-version application | |
CN102902579A (zh) | 一种功能组件的处理系统 | |
CN113315817A (zh) | 一种基于云端资源包来更新车机端界面的方法 | |
CN106789236B (zh) | 一种融合WiFiP2P的FOTA远程在线升级的方法 | |
CN104581695A (zh) | 移动终端配置方法和系统 | |
CN109617950B (zh) | 一种数据更新方法、装置、设备及可读存储介质 | |
CN109429100B (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 |