hikey960编译optee+aosp

本文介绍了如何在hikey960开发板上编译和安装OPTEE+AOSP系统。首先,需要安装相关工具,然后通过git克隆项目并运行同步及编译脚本。同步过程可能需要大量时间和网络支持。完成编译后,烧录文件到开发板,并调整拨码开关。最后执行xtest测试确保安装成功。

OPTEE已经对hikey960等开发板支持了AOSP,也就是说非安全世界的操作系统可以是android操作系统。安装的方法按照流程化操作基本就可以完成,简单记录一下。
参考网站【1】OPTEE官方文档上对AOSP支持的介绍:https://optee.readthedocs.io/building/aosp/aosp.html
【2】github上编译aosp+optee清单的项目:https://github.com/linaro-swg/optee_android_manifest
先决条件:需要你的开发环境安装以下工具:
$ sudo apt-get install android-tools-adb android-tools-fastboot autoconf
automake bc bison build-essential ccache cscope curl device-tree-compiler
expect flex ftp-upload gdisk iasl libattr1-dev libc6:i386 libcap-dev
libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev
libpixman-1-dev libssl-dev libstdc++6:i386 libtool libz1:i386 make
mtools netcat python-crypto python3-pyelftools python-serial
rsync unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev
1、首先在合适的地方下载aosp+aosp清单项目:命令行运行 git clone https://github.com/linaro-swg/optee_android_manifest
这个项目只是由很多的编译脚本和编译整个项目所需要的清单组成的,本身并不大,但是由于编译的过程中会下载清单中的各个项目,所以还是需要预留足够大的空间。
2、下载完这个项目之后,在项目所在的目录下面根据你的开发板运行编译的命令,比如对于hikey960的开发板,需要运行如下命令:
$ ./sync-p-hikey960.sh
$ ./build-p-hikey960.sh
第一个命令是一个同步的命令,就是从网上各个地方下载所需要的文件,包括构建aosp所需的文件,optee开源项目,ATF,开发板所需的引导文件,编译工具等等。要执行这个命令似乎需要提前安装好repo,如果没有安装的话,这一步应该也会提示,按照错误提示安装就好了。这个步骤大约会下载80G的文件,等待的时间非常漫长,我当时曾重试过多次,还使用了vpn才完成下载。
第二个命令就是编译的命令,要在第一步没有任何错误完成的情况下执行。编译所需的工具已经在第一步下载完成了,不需要自己下载。编译也是一个漫长的过程,但是只要同步的过程正确完成了,这个步骤基本不会出什么问题。编译完成后整个项目大约会有150G的大小,如果磁盘不够的话可能会因为这个原因停止编译。
3、在整个项目都编译完成后,就可以将编译后的文件烧录进开发板。如果只是想体验一下aosp+optee,也可以使用预先编译好的文件:http://snapshots.linaro.org/android/
烧录的步骤:
首先设置开发板背后的拨码开关,使开发板重启后可以进入fastboot下面,具体怎么拨码可以参考之前博客里面烧录的部分。
接下来按照官方上的介绍执行以下命令:
$ cp -a out/target/product/hikey960/*.img device/linaro/hikey/installer/hikey960/
$ sudo ./device/linaro/hikey/installer/hikey960/flash-all.sh /dev/ttyUSBn
第一个命令将烧录所需的文件集中起来,第二个命令就是具体的烧录过程了。但是我在具体执行的时候有一些问题,我的/dev/ttyUSBn是控制台的串口,不是链接开发板的typeC口,就没有按照这个过程。可以直接打开项目目录下device/linaro/hikey/installer/hikey960/flash-all.sh文件,看一看里面具体执行了哪些命令,一条一条的执行就可以了。可以看到这个文件的最后几行是这样的:

fastboot flash ptable "${INSTALLER_DIR}"/prm_ptable.img
fastboot flash xloader "${INSTALLER_DIR}"/hisi-sec_xloader.img
fastboot flash fastboot "${INSTALLER_DIR}"/l-loader.bin
fastboot flash fip "${INSTALLER_DIR}"/fip.bin
#fastboot flash nvme "${INSTALLER_DIR}"/hisi-nvme.img
fastboot flash boot "${ANDROID_PRODUCT_OUT}"/boot.img
fastboot flash cache "${ANDROID_PRODUCT_OUT}"/cache.img
fastboot flash system "${ANDROID_PRODUCT_OUT}"/system.img
fastboot flash userdata "${ANDROID_PRODUCT_OUT}"/userdata.img
fastboot flash vendor "${ANDROID_PRODUCT_OUT}"/vendor.img

这就是具体烧录的命令了,烧录的文件在上一个命令中已经拷贝到了device/linaro/hikey/installer/hikey960/下,执行这些命令就可以烧录。
烧录完成后重新拨码到正常的启动方式下(如果不重新拨码,需要在启动的时候在控制台输入回车才能继续启动)上电开机,进入控制台下,执行xtest测试命令,就可以知道是不是安装好了。
编译的时候距离现在已经比较久远,可能还有一些其他问题,这里不能备述。在这个方面我也是个新生,可能只是接触早一点,有些坑已经跳过。如果还有其他问题可以一起讨论。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值