首页> 中国专利> 一种嵌入式板上实现双操作系统启动的方法

一种嵌入式板上实现双操作系统启动的方法

摘要

本发明为了在嵌入式板卡上实现安卓与Linux双系统的启动与切换,提出了一种双操作系统启动的方法,其操作步包括:初设置步骤、系统切换步骤和还原启动步骤,具体是将Android系统的Recovery分区的急救系统移至其它空闲分区,例如backup分区当中,并写入Linux系统的内核和引导系统,通过修改MISC分区的脚本命令引导切换加载Android系统和Linux系统。本发明的方法确保了对系统的最低限度修改,解决了双系统启动模式存在的移植过程麻烦、成本高等问题,令到嵌入式板卡支持双系统并保留有安卓自有的急救模式,以便安卓系统可以进行恢复出厂设置和OTA升级等操作。

著录项

  • 公开/公告号CN105260205A

    专利类型发明专利

  • 公开/公告日2016-01-20

    原文格式PDF

  • 申请/专利权人 中山市天启电子科技有限公司;

    申请/专利号CN201510645179.0

  • 申请日2015-09-30

  • 分类号G06F9/445;

  • 代理机构中山市铭洋专利商标事务所(普通合伙);

  • 代理人邹常友

  • 地址 528400 广东省中山市东区中山四路57号宏宇大厦1座2101

  • 入库时间 2023-12-18 13:47:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-06

    授权

    授权

  • 2018-10-16

    著录事项变更 IPC(主分类):G06F9/445 变更前: 变更后: 申请日:20150930

    著录事项变更

  • 2016-02-17

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20150930

    实质审查的生效

  • 2016-01-20

    公开

    公开

说明书

技术领域

本发明涉及一种嵌入式板上实现双操作系统启动的方法。

背景技术

搭载有安卓操作系统的嵌入式板卡(以下称安卓板卡)应用十分广泛,包括作为显示屏驱动板、平板电脑、电视板、多端口测试板等,安卓系统虽然使用较为便利,界面友好,但其定制和功能扩展性却不如传统的Linux系统。传统的平板电脑仅支持单一系统的启动,即仅搭载安卓系统或Linux系统,无法兼顾两者系统的优势而为开发者和用户提供应用的便利。然而,现有的嵌入式板卡要么只是单独搭载一种操作系统,要么需要进行复杂的双系统植入操作,以实现双系启动,这类的双系统植入操作不但成本高,而且一般是以牺牲原系统中的部分功能为代价的。

对此,本专利技术方案旨于实现对原厂安卓系统的最小限度更改,令其支持双系统启动,并保留安卓自有的急救模式(RecoverySystem)。

发明内容

本发明为了在嵌入式板卡上实现安卓与Linux双系统的启动与切换,提出了一种双操作系统启动的方法,令到嵌入式板卡支持双系统,并保留有安卓自有的急救模式,以便安卓系统可以进行恢复出厂设置和OTA升级等操作。

本发明的具体技术内容如下:

一种嵌入式板上实现双操作系统启动的方法,包括

初设置步骤:

1)于嵌入式板上搭载Android系统,建立有写有Android内核和引导系统的BOOT分区,写有Android内核和急救系统的RECOVERY分区,空闲的BACKUP分区,以及对分区引导设置的MISC分区。

2)将RECOVERY分区内Android的急救系统移至BACKUP分区,并于RECOVERY分区写入Linux内核及其引导系统;

3)系统MISC分区内默认写有指向Android系统的boot命令,令嵌入式板默认加载Android系统;

系统切换步骤:

1)在Android系统下操作,将MISC分区内的boot命令改写成recovery命令,并加入引导Linux系统的标识;

2)重新加载系统,引导加载器Bootloader检查识别MISC分区内的命令:

若为有指向Android系统的boot命令,则加载Android系统;

若为recovery命令,则解压调用RECOVERY分区内引导系统,该引导系统识别该MISC分区内是否存在Linux系统的标识,若有,则启动加载Linux系统,否则加载BACKUP分区里的急救系统进行自救恢复。

进一步的,还包括还原启动步骤:在Linux系统下操作,将MISC分区内容清零,重启后该MISC分区内自动加载指向Android系统的boot命令,从而引导启动Android系统。

进一步的,所述Linux系统为Ubuntu系统。

进一步的,所述引导系统为initramfs根文件系统。

本发明与现有技术相比,其优越性体现在:利用安卓系统本身所支持的双启动模式,以对系统的最少修改实现安卓与Linux双系统的启动与切换,降低复杂性,便于用户或系统开发者进行功能定制和扩展,解决了现有方案中双系统启动模式存在的移植过程麻烦、成本高等问题;同时,还保留有安卓自有的急救模式,以便安卓系统可以进行恢复出厂设置和OTA升级等操作。

附图说明

图1为本发明实现双系统切换的流程图。

图2为本发明实现系统启动自检的流程图。

具体实施方式

如下结合附图,对本申请方案作进一步描述:

一种嵌入式板上实现双操作系统启动的方法,包括

初设置步骤:

1)于嵌入式板上搭载Android系统,建立有写有Android内核和引导系统的BOOT分区,写有Android内核和急救系统的RECOVERY分区,空闲的BACKUP分区,以及对分区引导设置的MISC分区。

2)将RECOVERY分区内Android的急救系统移至BACKUP分区,并于RECOVERY分区写入Linux内核及其引导系统;

3)系统MISC分区内默认写有指向Android系统的boot命令,令嵌入式板默认加载Android系统;

系统切换步骤:

1)在Android系统下操作,将MISC分区内的boot命令改写成recovery命令,并加入引导Linux系统的标识;

2)重新加载系统,引导加载器Bootloader检查识别MISC分区内的命令:

若为有指向Android系统的boot命令,则加载Android系统;

若为recovery命令,则解压调用RECOVERY分区内引导系统,该引导系统识别该MISC分区内是否存在Linux系统的标识,若有,则启动加载Linux系统,否则加载BACKUP分区里的急救系统进行自救恢复。

进一步的,还包括还原启动步骤:在Linux系统下操作,将MISC分区内容清零,重启后该MISC分区内自动加载指向Android系统的boot命令,从而引导启动Android系统。

进一步的,所述Linux系统为Ubuntu系统。

进一步的,所述引导系统为initramfs根文件系统,所述initramfs是固化了的小型根文件系统,内核启动后会将其解压至内存中,并执行其中的init程序进行初始化;也就是说,initramfs是第一个获得执行权的根文件系统,负责挂载真正的根文件系统。

本发明实施的具体举例:

一、Rockchip系列安卓系统的启动流程

1、uboot初始化

1.1uboot读取CPU寄存器,如果有recovery标志,则跳转到3

1.2uboot读取misc分区,如果含有recovery命令,则跳转到3

1.3正常启动模式,跳转到2

2、正常启动模式

2.1加载boot分区

2.1.1如果boot分区含有内核和initramfs,则分别加载到内存特定位置,跳转到2.3(略过kernel分区处理)

2.1.2如果boot分区仅含有initramfs,则加载到内存特定位置。

2.2加载kernel分区到内存特定位置。

2.3跳转到4

3、急救模式

3.1读出recovery分区内含的内核和initramfs,分别加载到内存特定位置,跳转到4

4初始化内核启动参数,将执行权移交内核。

在Linux系统内实现安卓急救系统的部分功能。

这样就可以实现,往misc分区写入“recovery”指令,或开机时按住设备的recovery按钮不接USBOTG线,就可以加载recovery分区存储的Linux系统的内核和initramfs,从而引导Linux系统的根文件系统分区启动,进入Linux系统。如果将misc分区清零,则可以引导kernel和/或boot分区存储的安卓系统的内核和initramfs,从而正常加载安卓系统。

二、利用安卓系统recovery分区引导Linux系统的启动流程:

保留recovery分区为Linux系统的内核和initramfs不变,将安卓系统的急救系统(即原recovery分区里的安卓系统的内核和initramfs)里的initramfs放在backup分区即所述第三分区里,然后修改Linux系统的initramfs里的初始化流程:

1、判断misc分区是否有特殊的标志内容“firefly-linux”,如果没有,则转6。

2、判断backup分区是否含有安卓急救系统的initramfs,如果没有,则转6。

3、提取backup分区的initramfs,解压至/root目录中。

4、将/proc,/sys,/dev等重要的系统目录移到/root中(mount–n–omove)。

5、执行execchroot/root/init命令,将/root目录切换成新的根目录,并执行里面的init程序,从而引导安卓系统本身的急救系统。操作完成。

6、走原有流程,正常加载Linux系统。操作完成。

采用这样的修改,用Linux系统的initramfs有选择地去加载安卓的急救系统,便可以达到要求。Linux系统的initramfs的init程序是shell脚本,修改和调试起来非常方便安卓系统的急救程序无需任何修改。

剩下要做的,就要修改安卓系统的切换系统菜单项,将入切换到Linux系统的特殊标志内容“firefly-linux”写到misc分区即可。如此修改,可以最大程序上兼容原有系统。

上述优选实施方式应视为本申请方案实施方式的举例说明,凡与本申请方案雷同、近似或以此为基础作出的技术推演、替换、改进等,均应视为本专利的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号