CN105260205B - 一种嵌入式板上实现双操作系统启动的方法 - Google Patents
一种嵌入式板上实现双操作系统启动的方法 Download PDFInfo
- Publication number
- CN105260205B CN105260205B CN201510645179.0A CN201510645179A CN105260205B CN 105260205 B CN105260205 B CN 105260205B CN 201510645179 A CN201510645179 A CN 201510645179A CN 105260205 B CN105260205 B CN 105260205B
- Authority
- CN
- China
- Prior art keywords
- subregions
- android
- linux
- recovery
- misc
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明为了在嵌入式板卡上实现安卓与Linux双系统的启动与切换,提出了一种双操作系统启动的方法,其操作步包括:初设置步骤、系统切换步骤和还原启动步骤,具体是将Android系统的Recovery分区的急救系统移至其它空闲分区,例如backup分区当中,并写入Linux系统的内核和引导系统,通过修改MISC分区的脚本命令引导切换加载Android系统和Linux系统。本发明的方法确保了对系统的最低限度修改,解决了双系统启动模式存在的移植过程麻烦、成本高等问题,令到嵌入式板卡支持双系统并保留有安卓自有的急救模式,以便安卓系统可以进行恢复出厂设置和OTA升级等操作。
Description
技术领域
本发明涉及一种嵌入式板上实现双操作系统启动的方法。
背景技术
搭载有安卓操作系统的嵌入式板卡(以下称安卓板卡)应用十分广泛,包括作为显示屏驱动板、平板电脑、电视板、多端口测试板等,安卓系统虽然使用较为便利,界面友好,但其定制和功能扩展性却不如传统的Linux系统。传统的平板电脑仅支持单一系统的启动,即仅搭载安卓系统或Linux系统,无法兼顾两者系统的优势而为开发者和用户提供应用的便利。然而,现有的嵌入式板卡要么只是单独搭载一种操作系统,要么需要进行复杂的双系统植入操作,以实现双系启动,这类的双系统植入操作不但成本高,而且一般是以牺牲原系统中的部分功能为代价的。
对此,本专利技术方案旨于实现对原厂安卓系统的最小限度更改,令其支持双系统启动,并保留安卓自有的急救模式(Recovery System)。
发明内容
本发明为了在嵌入式板卡上实现安卓与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.1 uboot读取CPU寄存器,如果有recovery标志,则跳转到 3
1.2 uboot读取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按钮不接USB OTG 线,就可以加载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、执行exec chroot /root /init 命令,将 /root 目录切换成新的根目录,并执行里面的 init 程序,从而引导安卓系统本身的急救系统。操作完成。
6、走原有流程,正常加载 Linux 系统。操作完成。
采用这样的修改,用Linux系统的initramfs有选择地去加载安卓的急救系统,便可以达到要求。Linux系统的initramfs的init程序是 shell 脚本,修改和调试起来非常方便安卓系统的急救程序无需任何修改。
剩下要做的,就要修改安卓系统的切换系统菜单项,将入切换到 Linux 系统的特殊标志内容“firefly-linux”写到 misc 分区即可。如此修改,可以最大程序上兼容原有系统。
上述优选实施方式应视为本申请方案实施方式的举例说明,凡与本申请方案雷同、近似或以此为基础作出的技术推演、替换、改进等,均应视为本专利的保护范围。
Claims (2)
1.一种嵌入式板上实现双操作系统启动的方法,其特征在于,包括
初设置步骤:
1)于嵌入式板上搭载Android系统,建立有写有Android内核和引导系统的BOOT分区,写有Android内核和急救系统的RECOVERY分区,空闲的BACKUP分区,以及对分区引导设置的MISC分区;
2)将RECOVERY分区内Android的急救系统移至BACKUP分区,并于RECOVERY分区写入Linux内核及其引导系统,所述引导系统为initramfs根文件系统;
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系统。
2.根据权利要求1所述的嵌入式板上实现双操作系统启动的方法,其特征在于:所述Linux系统为Ubuntu系统。
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 CN105260205A (zh) | 2016-01-20 |
CN105260205B true 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) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528114B (zh) * | 2016-10-25 | 2022-03-29 | 北京海誉动想科技股份有限公司 | 一种安卓固件应用装置和安卓固件升级方法 |
CN107704337B (zh) * | 2017-08-22 | 2020-08-25 | 北京珠穆朗玛移动通信有限公司 | 恢复出厂设置的方法、移动终端及具有存储功能的装置 |
CN108319472A (zh) * | 2018-05-08 | 2018-07-24 | 上海彭创教育科技有限公司 | 一种双系统驱动板卡 |
CN108694051A (zh) * | 2018-05-18 | 2018-10-23 | 深圳市先河系统技术有限公司 | 基于双系统的升级方法、装置以及存储装置 |
CN109062617B (zh) * | 2018-06-26 | 2020-07-28 | 百富计算机技术(深圳)有限公司 | 一种支持多类型设备的平台的应用方法、移动终端 |
CN108924955B (zh) * | 2018-07-30 | 2021-12-14 | 山东大骋医疗科技有限公司 | 一种基于双链无线通信的ct数据传输与控制方法及装置 |
CN108845819B (zh) * | 2018-08-10 | 2019-10-18 | 百度在线网络技术(北京)有限公司 | 用于设备的程序升级方法和装置 |
CN109358871B (zh) * | 2018-09-18 | 2022-11-15 | 深圳Tcl数字技术有限公司 | 嵌入式系统设备的应用系统更换方法、装置及存储介质 |
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 | 一汽解放汽车有限公司 | 基于嵌入式处理器的一机多屏系统的实现方法 |
CN114637559B (zh) * | 2020-12-15 | 2023-11-24 | 博泰车联网科技(上海)股份有限公司 | 显示开机界面的方法、系统、设备及存储介质 |
CN112631669A (zh) * | 2020-12-30 | 2021-04-09 | 北京天融信网络安全技术有限公司 | 嵌入式系统启动的方法、装置、计算机设备和介质 |
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 |
---|
Firefly-RK328双系统启动的设计和实现;busybee;《http://developer.t-firefly.comthread-190-1-1.html》;20141023;第1-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105260205A (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260205B (zh) | 一种嵌入式板上实现双操作系统启动的方法 | |
US8291209B2 (en) | Integration model for instant-on environment | |
US10055218B2 (en) | System and method for adding and storing groups of firmware default settings | |
US20160188345A1 (en) | Method of a UEFI firmware and Computer System thereof | |
US20140033189A1 (en) | Providing virtual appliance system firmware images | |
CN104899091B (zh) | 一种智能嵌入式设备多操作系统切换方法 | |
CN102207881A (zh) | 一种基于Android的操作系统快速启动方法 | |
KR20080001268A (ko) | 다중 운영체제를 지원하는 휴대용기기 및 그 지원방법 | |
CN105138382A (zh) | 一种Android系统升级的方法及终端 | |
US20080098381A1 (en) | Systems and methods for firmware update in a data processing device | |
CN104951328A (zh) | 嵌入式设备及其启动方法 | |
CN102693144B (zh) | 一种Android移动终端的电容屏固件升级的方法 | |
KR20170057237A (ko) | 컨텐츠 변환 없는 컴퓨팅 디바이스에서의 다중 운영 체제 환경들의 지원 | |
TW201520894A (zh) | 平台系統、通用可延伸韌體介面基本輸入輸出系統之支援硬體組態之變更方法、記錄媒體及電腦程式產品 | |
CN103514015A (zh) | 一种从存储介质中启动操作系统的方法和装置 | |
WO2012071852A1 (zh) | 引导程序的升级方法和装置 | |
CN104866324A (zh) | 一种便携操作系统构建方法及便携存储器 | |
US20150113532A1 (en) | Cloudboot system, virtual machine with the cloudboot system, and method for starting up the virtual machine | |
CN109426527B (zh) | 在uefi固件及作业系统间分享蓝牙数据的电脑系统及其方法 | |
CN113961259A (zh) | 启动引导程序加载方法、装置、系统、电子设备及介质 | |
JP6092905B2 (ja) | 複数のオペレーティングシステムを動作させる方法および電子装置 | |
US20150324209A1 (en) | Operating System Switching Method and Dual-Operating System Electronic Device Using the Same | |
TWI431530B (zh) | 嵌入式系統及其程式更新方法 | |
CN105808440A (zh) | 应用程序的低内存测试方法、装置和系统 | |
CN106528114A (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 | ||
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. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |