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

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

Info

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
Application number
CN201510645179.0A
Other languages
English (en)
Other versions
CN105260205A (zh
Inventor
黄其勇
何俊
潘雨玮
杜靖武
彭新杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongshan Apocalypse Intelligent Technology Co Ltd
Original Assignee
Zhongshan Apocalypse Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongshan Apocalypse Intelligent Technology Co Ltd filed Critical Zhongshan Apocalypse Intelligent Technology Co Ltd
Priority to CN201510645179.0A priority Critical patent/CN105260205B/zh
Publication of CN105260205A publication Critical patent/CN105260205A/zh
Application granted granted Critical
Publication of CN105260205B publication Critical patent/CN105260205B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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系统。
CN201510645179.0A 2015-09-30 2015-09-30 一种嵌入式板上实现双操作系统启动的方法 Active CN105260205B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 浪潮齐鲁软件产业有限公司 一种安卓机顶盒生产测试软件的设计方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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