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工作流程图如下:
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盘
在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镜像
可以使用Ubuntu,也可以使用Windows来制作。
- 将U盘格式化成FAT32类型
- 将caas-flashfiles-eng.$(USER).zip直接解压缩到U盘的根目录下
$ cd /media/$(USER)/$(udisk-name)
$ unzip $(path)/caas-flashfiles-eng.$(USER).zip
5
配置BIOS
提示:以下所有对BIOS的修改,待您尝试完毕后需要再手动将其改回,以免影响您对原系统的使用。
- 进入BIOS配置界面在系统刚开始启动时,可以通过按一个特定的键进入BIOS配置界面。这个按键跟BIOS厂商有关,厂商不同,进入BIOS的按键也有可能不同。您可以注意在系统启动时的提示,通常是F1, F2, F10,F11, F12或DEL键。
- 比如上图中,按F2键可以进入BIOS设置界面,在BIOS设置界面中点击Advanced可以看到其他的菜单项。
- 打开VT-d和VT-x功能查找BIOS的Security configuration选项,打开VT-d和VT-x功能选项。
- 禁用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的功能,以加强系统的安全性。
- 在Boot菜单中查找”Internal UEFI Shell”, 确保该选项被勾选上这个步骤适用于使用U盘安装的场景查找BootàBootConfigurationàBootDevicesàInternalUEFI Shell, 将该项勾选上。
- BIOS修改完毕后按F10键保存并退出。
6
CaaS启动
前面制作启动盘小节中有两种启动盘制作方式,那么接下来就有两种启动安卓的方式。
方式1:从U盘启动
- 将制作好的从U盘启动的启动盘插在准备运行安卓系统机器的USB口上
- 按电源键或重启电脑,在启动过程中按特定键进入Boot菜单选项界面至于特定键可以参考配置BIOS小节中提到的那几个常用键。例如:进入BIOS后,在”Boot Order”中将识别到的U盘拖到第一个,然后按F10保存并退出,这样启动时就从U盘启动了,或是在启动时按F10键进入Boot菜单,选择从U盘启动。
- 如果您选择将数据保存到这个安卓设备,而在系统启动后没有移除USB启动盘,那么数据将被保存到USB启动盘上。然后,您可以在其他计算机上使用保存的数据。
- 系统启动到安卓界面系统启动过程和进入系统后的界面图如下:
方式2:从U盘安装镜像启动
注意事项:这种方式的安装会将安卓系统直接安装到您的机器上,而且是完全擦除您原有的系统,无法恢复,所以用该种方式安装要谨慎。切记不要在工作机器上尝试!!!
步骤如下:
- 将从U盘安装的启动盘插在准备运行安卓系统机器的USB口上。
- 按电源键或重启电脑,在启动过程中按特定键进入Boot菜单选项界面。至于特定键可以参考配置BIOS小节中提到的那几个常用键。例如:在系统刚开始启动时按F10键进入Boot菜单,选择从”UEFI: Built-in EFI Shell”启动。
- 在倒计时后,UEFI Shell就会自动执行startup.nsh脚本,然后进行自动安装caas镜像。
如下图所示: - 安装完毕后会重启进入安卓界面。该界面与从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 |