开机映像android sdk 安卓快速启动映像_开机映像android sdk

Celadon是用于英特尔架构的开源Android®软件参考栈。本公众号专注于IA架构下进行Android®开发的相关技术研究,并定期分享Celadon的工程师们在工作中的心得和故事。

项目官网:https://01.org/projectceladon/

通过上一篇CaaS (Celadon as a Service) 概述介绍,相信大家对CaaS的强大功能有一定的了解了,本篇我们来进一步介绍CaaS镜像和特点,然后详细介绍裸机的快速烧写和启动方法。

1

CaaS镜像简介

Celadon作为一种服务,目标是能够无缝地支持同一个Android镜像运行在不同的英特尔x86硬件裸机(BM, Bare Metal),KVM虚拟机(VM)和Docker容器(Container)等。CaaS使得Android从针对特定平台的OS过渡到通用的OS,解决Celadon支持平台局限性的问题。CaaS允许客户灵活定制,具有可伸缩性、可扩展性和较强的平台兼容性。目前我们已经在多种不同架构的x86硬件平台上进行了开机验证,后续还会支持更多的平台。

CaaS工作流程图如下:

开机映像android sdk 安卓快速启动映像_启动盘_02

CaaS具有以下特点:

  • 支持x86裸机、KVM虚拟机、Docker容器
  • 广泛支持Intel架构处理器 (从Atom到Xeon)
  • 对不同的x86平台有更灵活强劲的性能优化
  • 注重系统安全,提供对可信执行环境Trusty的支持
  • 旗舰平台提供对Google CDD的完全兼容的参考实现
  • 拥有一个开放的社区和强大的SI/OEM生态系统

通过上面的简介,相信您已经对CaaS有了进一步的了解,接下来我们来介绍如何下载和编译源码,以及如何将编译出的镜像烧写到裸机设备上快速启动。

2

硬件准备

推荐使用的硬件

  • 编译源码开发机器:64位 Ubuntu 16.04 LTS Linux,至少150GB的硬盘剩余空间
  • 启动盘:1个至少16G的USB3.0或USB3.1的U盘。USB3.1的U盘做启动盘只需约2分钟,USB3.0的U盘做启动盘需要约15分钟
  • CaaS的安装机器:Intel® 第5、6、7或8代Core™和Celeron®处理器,服务器可以使用E3、E5 Xeon®处理器。您也可以在具有UEFI BIOS和VT-x/VT-d功能的x86硬件上进行尝试。


除此之外,如果您想将镜像安装在台式机或NUC上,您还要另外配备鼠标、键盘、显示器,用来方便安装和查看。

3

下载和编译源码


CaaS代码的下载和编译请参照“ Celadon快速上路指南Part2:编译Celadon镜像 ”。

提示:CaaS的本地编译请选择“caas-userdebug”编译目标。

4

CaaS烧写准备

如果想快速尝试U盘裸机启动CaaS,可以选择下面第一种方式制作U盘。

如果需要把镜像烧写到机器内部存储设备,请使用第二种方法。

方法1:制作快速启动U盘

开机映像android sdk 安卓快速启动映像_Core_03

在Linux主机上可以使用dd命令,将编译出的镜像刷到U盘做成启动盘:

在caas.img所在的目录执行以下命令,或是在“if=”后面加上caas.img的路径。

dd if=caas.img of=/dev/sdX bs=1M

其中,sdX是指linux上显示的硬盘号,例如sda, sdb, sdc等。需要将X换成实际U盘所在的硬盘号,您可以通过sudo fdisk -l命令查看。

例如:
$ sudo fdisk -l
Disk /dev/sdb: 29.3 GiB, 31440502784 bytes, 61407232 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x23c01152
$ sudo dd if=caas.img of=/dev/sdb bs=1M
$ sync

方法2:制作U盘安装CaaS镜像

开机映像android sdk 安卓快速启动映像_Core_03

可以使用Ubuntu,也可以使用Windows来制作。

  1. 将U盘格式化成FAT32类型
  2. 将caas-flashfiles-eng.$(USER).zip直接解压缩到U盘的根目录下
$ cd /media/$(USER)/$(udisk-name)
$ unzip $(path)/caas-flashfiles-eng.$(USER).zip

5

配置BIOS

提示:以下所有对BIOS的修改,待您尝试完毕后需要再手动将其改回,以免影响您对原系统的使用。

  1. 进入BIOS配置界面在系统刚开始启动时,可以通过按一个特定的键进入BIOS配置界面。这个按键跟BIOS厂商有关,厂商不同,进入BIOS的按键也有可能不同。您可以注意在系统启动时的提示,通常是F1, F2, F10,F11, F12或DEL键。
  2. 开机映像android sdk 安卓快速启动映像_Core_05

  3. 比如上图中,按F2键可以进入BIOS设置界面,在BIOS设置界面中点击Advanced可以看到其他的菜单项。
  4. 打开VT-d和VT-x功能查找BIOS的Security configuration选项,打开VT-d和VT-x功能选项。
  5. 开机映像android sdk 安卓快速启动映像_开机映像android sdk_06

  6. 禁用Secure Boot功能有些PC的BIOS默认启用了Secure Boot的功能,在启用该功能时,如果您尝试从U盘启动,就会发生签名验证失败,从而不能启动到安卓系统,此时您可以通过禁掉Secure Boot来解决这个问题,禁掉Secure Boot的方法:BootàSecure BootàSecure Boot Config中将Secure Boot的勾选去掉,有些BIOS中是需要在Secure Boot中选Disable。注意在基于Celadon的正式产品发布时,推荐启用Secure Boot的功能,以加强系统的安全性。
  7. 在Boot菜单中查找”Internal UEFI Shell”, 确保该选项被勾选上这个步骤适用于使用U盘安装的场景查找BootàBootConfigurationàBootDevicesàInternalUEFI Shell, 将该项勾选上。
  8. 开机映像android sdk 安卓快速启动映像_安卓系统_07

  9. BIOS修改完毕后按F10键保存并退出。

6

CaaS启动

前面制作启动盘小节中有两种启动盘制作方式,那么接下来就有两种启动安卓的方式。

方式1:从U盘启动

开机映像android sdk 安卓快速启动映像_Core_03

  1. 将制作好的从U盘启动的启动盘插在准备运行安卓系统机器的USB口上
  2. 按电源键或重启电脑,在启动过程中按特定键进入Boot菜单选项界面至于特定键可以参考配置BIOS小节中提到的那几个常用键。例如:进入BIOS后,在”Boot Order”中将识别到的U盘拖到第一个,然后按F10保存并退出,这样启动时就从U盘启动了,或是在启动时按F10键进入Boot菜单,选择从U盘启动。
  3. 开机映像android sdk 安卓快速启动映像_开机映像android sdk_09

  4. 如果您选择将数据保存到这个安卓设备,而在系统启动后没有移除USB启动盘,那么数据将被保存到USB启动盘上。然后,您可以在其他计算机上使用保存的数据。
  5. 系统启动到安卓界面系统启动过程和进入系统后的界面图如下:

方式2:从U盘安装镜像启动

开机映像android sdk 安卓快速启动映像_Core_03

注意事项:这种方式的安装会将安卓系统直接安装到您的机器上,而且是完全擦除您原有的系统,无法恢复,所以用该种方式安装要谨慎。切记不要在工作机器上尝试!!!

步骤如下:

  1. 将从U盘安装的启动盘插在准备运行安卓系统机器的USB口上。
  2. 按电源键或重启电脑,在启动过程中按特定键进入Boot菜单选项界面。至于特定键可以参考配置BIOS小节中提到的那几个常用键。例如:在系统刚开始启动时按F10键进入Boot菜单,选择从”UEFI: Built-in EFI Shell”启动。
  3. 开机映像android sdk 安卓快速启动映像_安卓系统_11

  4. 在倒计时后,UEFI Shell就会自动执行startup.nsh脚本,然后进行自动安装caas镜像。
    如下图所示:
  5. 开机映像android sdk 安卓快速启动映像_开机映像android sdk_12

  6. 安装完毕后会重启进入安卓界面。该界面与从U盘启动进入安卓的界面相同。

恭喜您顺利完成Celadon的安装与启动!

以下列表是我们在早期开发阶段已经验证过的英特尔x86平台,由于时间有限,我们仅做过启动验证,大家可以尝试更多的功能或者其他硬件设备,帮助反馈意见,我们后续也会继续努力,将CaaS的兼容性和性能做到更好!

Platforms

Core Architecture

KBL-NUC

(NUC7i7DNH1E)

8th  Generation Intel® Core™ i7-8650U  Intel GMA HD 650

APL-NUC

(NUC6CAYH)

Intel(R)  Celadon(R) CPU J3455, 1.5GHz, 4C/4T, Intel GMA HD 500

UP2

Apollo  Lake-I, 2C@1.1GHz

TECLAST  F6pro

Intel®  Core™ M3-7Y30 CPU@1.00G-1.61G

ThinkPad  T460

Intel®  Core™ i5-6440HQ  skylake

Xeon  E5-2600 v3 

Server

Intel(R)  Xeon(R) CPU E5-2699 v4 @ 2.20GHz 88Cores

ThinkPad  T470

Intel®  Core™ i5-7300U CPU@2.6G

Skull  Canyon NUC  NUC6i7KYK

6th  Gen. Intel Core i7 Processor  2.6 GHz Core i7 6700HQ

Dell  OptiPlex 7040

Intel(R)  Core(TM) i5-7440HQ CPU @ 2.80GHz

HP  Zbook 15 G3

Intel  Core i7-6820HQCPU@ 2.70Ghz

Dell  Optiplex 

3050MT(linux host)

Intel  Core i5-6550 CPU@ 3.20Ghz

HP  EliteBook 820 G3

Intel  Core i5-6300U CPU@ 2.4GhZ

Intel  NUC

(NUC6i5SYH)

Intel  Core i5-6300U CPU@ 2.4GhZ

DELL  Latitude 3570

Intel  Core i5-6300U CPU@ 2.4GhZ

Dell  Latitude 7280

Intel(R)  Core(TM) i5-6260U CPU @ 1.80GHz

HP  Elitebook 850 G5

Intel  Core i5-6260U CPU@ 1.80GhZ

Lenovo  ThinkPad X280

Intel  Core i5-6200U CPU@ 2.30GHz*4

HP  EliteBook 840 G3

Intel(R)  Core(TM) i5 6200U CPU @ 3.30GHz

NUC7i5BNH

Intel  Core i5-7260U CPU@ 2.30GhZ

ThinkPad  T580

Intel  Core i7-8250U CPU@ 2.30GhZ

Lenovo  ThinkPad T480

Intel  Core i5-8250U CPU@ 2.30GHz 2.29GHz

NUC6i5SYH

Intel  Core i5-6260U CPU@ 2.30GhZ

HP  Zhan 86 Pro G1 MT Business (Linux host)

Intel(R)  Core(TM) i3-7100U CPU@ 1.90GhZ

Compute  Stick  STK2M364CC

Intel(R)  Core(TM) m3-6Y30 CPU @ 0.90GHz

Acer swift 5 Laptop

Intel(R)  Core(TM) i5-8265U CPU@ 1.60GhZ

NUC8i5BEH6

Intel(R)  Core(TM) i5-8259U CPU@ 2.30GhZ

Chaco Canyon (APL)

Intel(R) Celeron(R) CPU N3350 @ 1.10GHz

HP  EliteBook 840 G2

Intel (R) Core(TM) i5-5300U @2.30GHz

ThinkPad  T440

CPU: Intel (R) Core(TM) i5-4300U @ 1.90GHz

HP  EliteDesk 800 

G1 TWR

CPU: Intel (R) Core(TM) i7-4790 CPU @ 3.60GHz