CN105260205A - 一种嵌入式板上实现双操作系统启动的方法 - Google Patents
一种嵌入式板上实现双操作系统启动的方法 Download PDFInfo
- Publication number
- CN105260205A CN105260205A CN201510645179.0A CN201510645179A CN105260205A CN 105260205 A CN105260205 A CN 105260205A CN 201510645179 A CN201510645179 A CN 201510645179A CN 105260205 A CN105260205 A CN 105260205A
- Authority
- CN
- China
- Prior art keywords
- subregion
- android
- linux
- recovery
- embedded board
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明为了在嵌入式板卡上实现安卓与Linux双系统的启动与切换,提出了一种双操作系统启动的方法,其操作步包括:初设置步骤、系统切换步骤和还原启动步骤,具体是将Android系统的Recovery分区的急救系统移至其它空闲分区,例如backup分区当中,并写入Linux系统的内核和引导系统,通过修改MISC分区的脚本命令引导切换加载Android系统和Linux系统。本发明的方法确保了对系统的最低限度修改,解决了双系统启动模式存在的移植过程麻烦、成本高等问题,令到嵌入式板卡支持双系统并保留有安卓自有的急救模式,以便安卓系统可以进行恢复出厂设置和OTA升级等操作。
Description
技术领域
本发明涉及一种嵌入式板上实现双操作系统启动的方法。
背景技术
搭载有安卓操作系统的嵌入式板卡(以下称安卓板卡)应用十分广泛,包括作为显示屏驱动板、平板电脑、电视板、多端口测试板等,安卓系统虽然使用较为便利,界面友好,但其定制和功能扩展性却不如传统的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分区即可。如此修改,可以最大程序上兼容原有系统。
上述优选实施方式应视为本申请方案实施方式的举例说明,凡与本申请方案雷同、近似或以此为基础作出的技术推演、替换、改进等,均应视为本专利的保护范围。
Claims (4)
1.一种嵌入式板上实现双操作系统启动的方法,其特征在于,包括
初设置步骤:
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分区里的急救系统进行自救恢复。
2.根据权利要求1所述的嵌入式板上实现双操作系统启动的方法,其特征在于,还包括还原启动步骤:在Linux系统下操作,将MISC分区内容清零,重启后该MISC分区内自动加载指向Android系统的boot命令,从而引导启动Android系统。
3.根据权利要求1所述的嵌入式板上实现双操作系统启动的方法,其特征在于:所述Linux系统为Ubuntu系统。
4.根据权利要求1所述的嵌入式板上实现双操作系统启动的方法,其特征在于:所述引导系统为initramfs根文件系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510645179.0A CN105260205B (zh) | 2015-09-30 | 2015-09-30 | 一种嵌入式板上实现双操作系统启动的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510645179.0A CN105260205B (zh) | 2015-09-30 | 2015-09-30 | 一种嵌入式板上实现双操作系统启动的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260205A true CN105260205A (zh) | 2016-01-20 |
CN105260205B CN105260205B (zh) | 2018-11-06 |
Family
ID=55099908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510645179.0A Active CN105260205B (zh) | 2015-09-30 | 2015-09-30 | 一种嵌入式板上实现双操作系统启动的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260205B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528114A (zh) * | 2016-10-25 | 2017-03-22 | 北京海誉动想科技股份有限公司 | 安卓固件应用、安卓固件和固件升级方法 |
CN107704337A (zh) * | 2017-08-22 | 2018-02-16 | 北京珠穆朗玛移动通信有限公司 | 恢复出厂设置的方法、移动终端及具有存储功能的装置 |
CN108319472A (zh) * | 2018-05-08 | 2018-07-24 | 上海彭创教育科技有限公司 | 一种双系统驱动板卡 |
CN108694051A (zh) * | 2018-05-18 | 2018-10-23 | 深圳市先河系统技术有限公司 | 基于双系统的升级方法、装置以及存储装置 |
CN108845819A (zh) * | 2018-08-10 | 2018-11-20 | 百度在线网络技术(北京)有限公司 | 用于设备的程序升级方法和装置 |
CN108924955A (zh) * | 2018-07-30 | 2018-11-30 | 山东大骋医疗科技有限公司 | 一种基于双链无线通信的ct数据传输与控制方法及装置 |
CN109062617A (zh) * | 2018-06-26 | 2018-12-21 | 百富计算机技术(深圳)有限公司 | 一种支持多类型设备的平台的应用方法、移动终端 |
CN109358871A (zh) * | 2018-09-18 | 2019-02-19 | 深圳Tcl数字技术有限公司 | 嵌入式系统设备的应用系统更换方法、装置及存储介质 |
CN109542524A (zh) * | 2018-11-22 | 2019-03-29 | 铭软件股份有限公司 | 一种Linux与安卓相互快速切换方法 |
CN110134445A (zh) * | 2019-04-02 | 2019-08-16 | 视联动力信息技术股份有限公司 | 一种操作系统的切换方法和装置 |
CN110704116A (zh) * | 2019-09-17 | 2020-01-17 | 一汽解放汽车有限公司 | 基于嵌入式处理器的一机多屏系统的实现方法 |
CN112631669A (zh) * | 2020-12-30 | 2021-04-09 | 北京天融信网络安全技术有限公司 | 嵌入式系统启动的方法、装置、计算机设备和介质 |
CN114637559A (zh) * | 2020-12-15 | 2022-06-17 | 博泰车联网科技(上海)股份有限公司 | 显示开机界面的方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469207A (zh) * | 2010-11-19 | 2012-05-23 | 希姆通信息技术(上海)有限公司 | 多操作系统手机及其实现方法 |
CN103024547A (zh) * | 2012-12-28 | 2013-04-03 | 北京赛科世纪数码科技有限公司 | 一种启动控制方法、启动控制装置及数字电视机顶盒 |
CN103593289A (zh) * | 2013-11-12 | 2014-02-19 | 浪潮齐鲁软件产业有限公司 | 一种安卓机顶盒生产测试软件的设计方法 |
-
2015
- 2015-09-30 CN CN201510645179.0A patent/CN105260205B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469207A (zh) * | 2010-11-19 | 2012-05-23 | 希姆通信息技术(上海)有限公司 | 多操作系统手机及其实现方法 |
CN103024547A (zh) * | 2012-12-28 | 2013-04-03 | 北京赛科世纪数码科技有限公司 | 一种启动控制方法、启动控制装置及数字电视机顶盒 |
CN103593289A (zh) * | 2013-11-12 | 2014-02-19 | 浪潮齐鲁软件产业有限公司 | 一种安卓机顶盒生产测试软件的设计方法 |
Non-Patent Citations (1)
Title |
---|
BUSYBEE: "Firefly-RK328双系统启动的设计和实现", 《HTTP://DEVELOPER.T-FIREFLY.COMTHREAD-190-1-1.HTML》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528114B (zh) * | 2016-10-25 | 2022-03-29 | 北京海誉动想科技股份有限公司 | 一种安卓固件应用装置和安卓固件升级方法 |
CN106528114A (zh) * | 2016-10-25 | 2017-03-22 | 北京海誉动想科技股份有限公司 | 安卓固件应用、安卓固件和固件升级方法 |
CN107704337B (zh) * | 2017-08-22 | 2020-08-25 | 北京珠穆朗玛移动通信有限公司 | 恢复出厂设置的方法、移动终端及具有存储功能的装置 |
CN107704337A (zh) * | 2017-08-22 | 2018-02-16 | 北京珠穆朗玛移动通信有限公司 | 恢复出厂设置的方法、移动终端及具有存储功能的装置 |
CN108319472A (zh) * | 2018-05-08 | 2018-07-24 | 上海彭创教育科技有限公司 | 一种双系统驱动板卡 |
CN108694051A (zh) * | 2018-05-18 | 2018-10-23 | 深圳市先河系统技术有限公司 | 基于双系统的升级方法、装置以及存储装置 |
CN109062617A (zh) * | 2018-06-26 | 2018-12-21 | 百富计算机技术(深圳)有限公司 | 一种支持多类型设备的平台的应用方法、移动终端 |
CN108924955A (zh) * | 2018-07-30 | 2018-11-30 | 山东大骋医疗科技有限公司 | 一种基于双链无线通信的ct数据传输与控制方法及装置 |
CN108924955B (zh) * | 2018-07-30 | 2021-12-14 | 山东大骋医疗科技有限公司 | 一种基于双链无线通信的ct数据传输与控制方法及装置 |
CN108845819B (zh) * | 2018-08-10 | 2019-10-18 | 百度在线网络技术(北京)有限公司 | 用于设备的程序升级方法和装置 |
CN108845819A (zh) * | 2018-08-10 | 2018-11-20 | 百度在线网络技术(北京)有限公司 | 用于设备的程序升级方法和装置 |
CN109358871A (zh) * | 2018-09-18 | 2019-02-19 | 深圳Tcl数字技术有限公司 | 嵌入式系统设备的应用系统更换方法、装置及存储介质 |
CN109358871B (zh) * | 2018-09-18 | 2022-11-15 | 深圳Tcl数字技术有限公司 | 嵌入式系统设备的应用系统更换方法、装置及存储介质 |
CN109542524A (zh) * | 2018-11-22 | 2019-03-29 | 铭软件股份有限公司 | 一种Linux与安卓相互快速切换方法 |
CN109542524B (zh) * | 2018-11-22 | 2022-08-05 | 一铭软件股份有限公司 | 一种Linux与安卓相互快速切换方法 |
CN110134445A (zh) * | 2019-04-02 | 2019-08-16 | 视联动力信息技术股份有限公司 | 一种操作系统的切换方法和装置 |
CN110704116A (zh) * | 2019-09-17 | 2020-01-17 | 一汽解放汽车有限公司 | 基于嵌入式处理器的一机多屏系统的实现方法 |
CN114637559A (zh) * | 2020-12-15 | 2022-06-17 | 博泰车联网科技(上海)股份有限公司 | 显示开机界面的方法、系统、设备及存储介质 |
CN114637559B (zh) * | 2020-12-15 | 2023-11-24 | 博泰车联网科技(上海)股份有限公司 | 显示开机界面的方法、系统、设备及存储介质 |
CN112631669A (zh) * | 2020-12-30 | 2021-04-09 | 北京天融信网络安全技术有限公司 | 嵌入式系统启动的方法、装置、计算机设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105260205B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260205A (zh) | 一种嵌入式板上实现双操作系统启动的方法 | |
US8914785B2 (en) | Providing virtual appliance system firmware images | |
CN103826162B (zh) | 基于安卓的智能机顶盒的嵌入式系统及其recovery方法 | |
CN103106092A (zh) | 终端设备中系统软件升级方法和装置 | |
CN104360877A (zh) | 基于Bootloader自更新的ECU固件更新方法 | |
CN106933593B (zh) | 一种基于移动终端的系统切换方法和装置 | |
CN104899091B (zh) | 一种智能嵌入式设备多操作系统切换方法 | |
CN101251813A (zh) | 手机系统恢复装置及其方法 | |
CN103761088A (zh) | 一种适用于arm架构移动设备的多操作系统切换方法 | |
CN102880498A (zh) | 在安卓系统的装置上虚拟sd卡的方法 | |
KR20130142073A (ko) | 모바일 메모리 카드를 사용하여 모바일폰 운영체제를 부팅시키는 방법 및 단말 | |
CN104951328A (zh) | 嵌入式设备及其启动方法 | |
CN105677421B (zh) | 一种移动终端的桌面启动器的定制方法及系统 | |
CN109582372B (zh) | 一种系统的启动方法及装置 | |
WO2012071852A1 (zh) | 引导程序的升级方法和装置 | |
CN103077056B (zh) | 使用少量ROM资源的Bootlorder实现方法 | |
CN113672296B (zh) | 定制应用的切换方法、切换装置、电子设备和存储介质 | |
CN101169729A (zh) | 嵌入式系统及其更新应用程序的方法 | |
CN104657161A (zh) | 移动终端固件更新方法及装置 | |
CN104866324A (zh) | 一种便携操作系统构建方法及便携存储器 | |
CN104951330B (zh) | 操作多重操作系统的方法及其电子装置 | |
JP2010044574A (ja) | 携帯端末、携帯端末制御方法、及び携帯端末制御プログラム | |
CN103019833A (zh) | 终端设备以及使终端设备支持操作系统快速切换的方法 | |
CN116400938B (zh) | 操作系统的升级方法、设备及存储介质 | |
CN102169446A (zh) | 一种基于开源系统基本输入输出系统的bios系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 528400 Hongyu Building 1, 2101 Zhongshan four road, East District, Zhongshan, Guangdong, 1 Applicant after: Zhongshan Apocalypse Intelligent Technology Co., Ltd. Address before: 528400 Hongyu Building 1, 2101 Zhongshan four road, East District, Zhongshan, Guangdong, 1 Applicant before: T-CHIP ELECTRONICS TECHNOLOGY CO., LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |