专利名称:家庭网关及其软件升级方法
技术领域:
本发明涉及一种家庭网关及其升级方法。
背景技术:
随着电信运营商对家庭业务的重视,家庭网关作为一种能够承载各种家庭业务的设备被大力推广。对家庭网关的管理和升级工作是电信运营商面临的一个挑战。现有家庭网关设备在加电后,通过bootloader启动操作系统。Bootloader是硬件系统复位后,应用程序主程序运行前执行的初始化程序。Bootloader通常具有硬件初始化、软件重映射、从主机下载并更新应用程序的功能。现有家庭网关只有一个固定的Bootloader模块,整个系统要由Bootloader来引导启动。一旦Bootloader I旲块被破坏,系统将不能正常启动。系统在升级过程中有可能由于断电或者断网等原因,导致bootloader被破坏,从而导致系统无法正常启动。本发明改进了目前家庭网关的升级模块,提出了一种具有新型Bootloader模块架构的家庭网关,同时结合这种架构,提出了一种新的家庭网关软件升级方法。
发明内容
本发明的一个目的是提供一种家庭网关及其升级方法,将现有网关中的bootloader模块分为boot模块和loader模块两个部分,并且loader模块中至少包括主loader单元和备份loader单元,从而避免在网关升级过程中由于断电等原因导致升级失败引起的家庭网关不可用。根据本发明的目的,首先提供了一种家庭网关,包括boot模块和loader模块,其中,boot模块用于引导系统,它是固化在家庭网关的存储装置中的;loader模块用于软件升级,它存储在家庭网关的存储装置中,可以读写。而loader模块又包括主loader单元和备份loader单元,所述主loader单元或备份loader单元用于从主机下载升级程序、引导系统启动。采用这种新的结构设计,可以防止在升级loader程序时,一旦发生断电或者断网等意外,导致升级过程失败,从而导致主loader单元内程序不完整,boot程序还能够引导备份loader继续加载其他程序,继续正常工作。作为对本发明的进一步改进,在更优化的实施例中,还可以在loader模块中增加一个手动升级单元,所述手动升级单元用于通过外接存储器的方式导入升级文件、引导系统启动。该方案能够在主loader单元和备份loader单元都遭到破坏的情况下,引导用户通过外插U盘或者SD卡对loader模块进行升级与恢复。根据本发明的目的,同时还提供了一种家庭网关软件升级方法,包括以下步骤:启动boot引导程序;检查系统升级成功字段;如果该字段值为否,则校验备份loader单元是否正确;如果备份loader单元正确,则将备份loader单元的内容拷贝到主loader单元;启动主loader单元。上述方法将boot程序和loader程序分开执行,当遇到系统升级失败从而导致主loader破坏的情况时,从备份loader单元中存储的程序恢复并启动主loader单元,能够在一定程度上提高系统升级的可靠性。作为对本发明的进一步改进,在更优化的实施例中,启动boot引导程序后,首先检查自动升级字段的值,如果该字段值为是,则说明主loader单元和备份loader单元中至少有一个可用,因此可以继续检查系统升级是否成功;如果该字段值为否,说明主loader单元和备份loader单元均已遭到破坏,则需要启动手动升级单元进行手动升级。这样,多设置了一个手动升级步骤,是在原方案的基础上多了一重保障。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1是本发明家庭网关实施例之一的结构;图2是本发明家庭网关软件升级方法实施例之一的流程图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。本发明根据硬件的读写属性将Bootloader分为两个部分,一部分是最基本的Boot模块,用于引导程序启动,此部分只可读不可写;另一部分是用于升级的Loader模块,这部分既可以读也可以写。由于Boot模块本身是不可写的,这一部分不会损坏,而Loader模块可能会因为原功能不能满足要求,需要不断的升级或者改进而产生变动,一旦该模块下载升级文件的过程中损坏或者新下载的Loader模块有问题,就会造成系统不能升级,这可能会造成该系统无法继续使用。本发明提供了一种更为安全可靠的Bootloader方法,本发明中的家庭网关设计为三Loader (也可以是双loader),当主Loader被破坏的时候可以从备份Loader恢复。如果系统出现严重异常,导致主备loader都损坏,则boot程序会引导启动手动升级界面。此时,用户可以通过外接U盘或SD卡的方式完成升级任务。以下将分别通过家庭网关的结构实施例和软件升级方法实施例来对本发明进行更详细的描述。如图1所示,为家庭网关的最佳实施例之一,其包括boot模块,即公知的引导系统模块,用于引导系统,固化在所述家庭网关的存储装置中。由于其只读属性,这部分不会在软件升级中遭到破坏。而用于软件升级的loader模块则分为三个部分(图1中的中间层部分):主loader单元、备份loader单元和手动升级单元。loader模块存储在所述家庭网关的存储装置中,例如常见的flash存储器。其中,主loader单元或备份loader单元都可以从主机下载升级程序、引导系统启动。而手动升级单元则用于通过外接存储器(例如U盘货SD卡等)的方式导入升级文件、引导系统启动。在中间层的loader模块之上,则存储系统的应用程序。
在上述实施例中,所述家庭网关在flash的不同存储空间,存放两部分相同的loader程序,以及一个手动的升级单元,可以确保家庭网关在发生意外升级失败后仍可重新升级并加载系统。在本发明的其他实施例中,也可以不设置手动升级单元,仍能基本实现本发明的目的。如图2所示,为本发明家庭网关软件升级方法的最佳实施例之一,其包括以下步骤:10)启动boot引导程序;当系统启动后,首先要启动boot引导程序。20)检查自动升级字段;自动升级字段在系统中可以定义为Upgrade-Auto,该字段若设置为true则表示该字段值为是;若设置为false则表示该字段值为否。如果该字段值为是(true),则表示系统正常,可进行自动升级,转入步骤30);如果该字段值为否(false),则表示系统主loader和备份loader单元均不正常,因此要启动手动升级单元进行手动升级。30)检查系统升级成功字段;系统升级成功字段在系统中可定义为Upgrade_Success,该字段若设置为true,即该字段值为是,则表示系统上一次升级成功;若设置为false,即该字段值为否,则表示系统上一次升级失败。40)如果该字段值为否,则校验备份loader单元是否正确;该字段值为否,说明上一次升级失败,主loader单元无法启动,因此需要校验备份loader单元是否可用。50)如果备份loader单元正确,则将备份loader单元的内容拷贝到主loader单元;在主loader单元遭到破坏而备份loader单元仍可用的情况下,可以通过备份loader单元恢复主loader单元,从而使主loader单元能够正常启动。51)如果备份loader单元发生错误,则设置自动升级字段为否,并重新启动系统;如果连备份loader单元也发生错误,则说明系统已无法实现自动升级,因此需要重新启动系统,同时将自动升级字段设置为否,以使系统重新启动之后能够通过该字段判断是否需要启动手动升级单元。60)启动主 loader 单元;通过步骤50),主loader单元得以恢复正常,则可以照常启动。70)检查系统升级字段;系统升级字段在系统中可定义为NeecLUpgrade,该字段值为是(true)时,表示系统需要升级,该字段值为否(false)则表示系统不需要升级。80)如果该字段值为是,则执行升级程序,同时将升级成功字段值设置为否;如果系统升级字段值为true,贝U立即执行升级程序,同时将Upgrade_Success字段值设置为false,这样一旦系统升级失败则可以保留记录。90)如果系统升级成功,则将主loader单元的内容拷贝到备份loader单元,并将系统升级字段(NeecLUpgrade)的值设置为否(false),同时将升级成功字段(Upgrade_Success)的值设置为是(true)。如果系统升级失败,则需要重新启动系统。
81)如果系统升级字段值为否,则引导应用程序启动。如果该字段为false,则表示系统暂时不需要升级,可以正常启动应用程序。91)实时监测系统升级信息,直至当检测到系统需要升级时,设置系统升级字段的值为是。系统正常启动后,可以采用循环算法不断地监测来自网络的系统升级信息,一旦检测到系统需要升级,则将NeecLUpgrade字段设置为true,以便系统下一次启动时进行软件升级。以上结合附图描述了本发明家庭网关软件升级方法的最佳实施例。其中,步骤10)、以及30)至60可以单独组成一个实施例,也能够基本实现本发明的目的,即当主loader由于升级失败不可用时,可以通过备份loader恢复并正常启动。家庭网关软件升级方法的另一实施例可以包括步骤10)至60),其能够进一步地在主loader和备份loader均遭到破坏的情况下,通过手动升级单元实现系统升级,进一步提高了系统升级的可靠性。除此之外,本领域技术人员应能理解,步骤70)值91)作为家庭网关软件升级方法的可选步骤,在本发明的其他实施例中可以和其他实施例进行组合,从而产生多种技术方案,在此就不再一一赘述。最后应当说明的是,本发明所称的家庭网关可以是现有技术中的任一种家庭网关,尤其是机顶盒。
权利要求
1.一种家庭网关,其特征在于,包括: 用于引导系统的boot模块,固化在所述家庭网关的存储装置中; 用于软件升级的loader模块,以可读写的方式存储在所述家庭网关的存储装置中,其中,所述loader模块包括主loader单元和备份loader单元,所述主loader单元或备份loader单元用于从主机下载升级程序、引导系统启动。
2.如权利要求1所述的家庭网关,其特征在于,所述loader模块还包括手动升级单元,所述手动升级单元用于通过外接存储器的方式导入升级文件、弓I导系统启动。
3.如权利要求1所述的家庭网关,其特征在于,所述存储装置为flash存储器。
4.如权利要求1 3中任一项所述的家庭网关,其特征在于,所述家庭网关为机顶盒。
5.一种家庭网关软件升级方法,其特征在于,包括以下步骤: 10)启动boot引导程序; 30)检查系统升级成功字段; 40)如果该字段值为否,则校验备份loader单元是否正确; 50)如果备份loader单元正确,则将备份loader单元的内容拷贝到主loader单元; 60)启动主loader单元。
6.如权利要求5所述的方法,其特征在于,在步骤10)之后还包括以下步骤: 20)检查自动升级字段,如果该字段值为是,则转入步骤30);如果该字段值为否,则启动手动升级单元进行手动升级。
7.如权利要6所述的方法,其特征在于,步骤40)之后还包括以下步骤: 51)如果备份loader单元发生错误,则设置自动升级字段为否,并重新启动系统。
8.如权利要求5所述的方法,其特征在于,还包括以下步骤: 70)检查系统升级字段; 80)如果该字段值为是,则执行升级程序,并将升级成功字段值设置为否; 90)如果系统升级失败则重新启动系统;如果升级成功,则将主loader单元的内容拷贝到备份loader单元,并将系统升级字段的值设置为否,同时将升级成功字段的值设置为是。
9.如权利要求8所述的方法,其特征在于,步骤70)之后还包括以下步骤: 81)如果系统升级字段值为否,则引导应用程序启动。
10.如权利要求9所述的方法,其特征在于,步骤81)之后还包括以下步骤: 91)实时监测系统升级信息,当检测到系统需要升级时,设置系统升级字段值为是。
11.如权利要求5 10任一项所述的方法,其特征在于,所述家庭网关为机顶盒。
全文摘要
本发明提供了一种家庭网关及其升级方法,将现有网关中的bootloader模块分为boot模块和loader模块两个部分,并且loader模块中至少包括主loader单元和备份loader单元,从而避免在网关升级过程中由于断电等原因导致升级失败引起的家庭网关不可用。
文档编号H04L12/66GK103186390SQ20111045194
公开日2013年7月3日 申请日期2011年12月29日 优先权日2011年12月29日
发明者金鑫 申请人:中国移动通信集团公司