编译x86_64 android 7.1及goldfish内核

本文详细介绍了如何编译x86_64架构的Android 7.1系统以及Goldfish内核。在编译过程中遇到了配置文件缺失的问题,通过不断搜索资料,最终在Android源码的prebuilts/qemu-kernel目录下找到了解决方案。编译完成后,可以在模拟器中运行自编译的内核,对于x86_64系统的模拟速度比ARM系统有显著提升。

编译Android系统的教程网上很多,之所以还要写这篇文章,是网上的教程基本都是针对arm,而且Android系统都是2.3,4.0等旧版本。本文要做到的是使用模拟器启动自己编译的x86_64架构android 7.1和goldfish。

我第一次编译的arm64的Android 7.1系统,编译完后可以直接在模拟器中运行,默认使用的内核在Android系统源码目录的prebuild/qemu-kernel中,是源码里自带的,并不是我编译出来的。如果想要进行Android内核方面的开发,需要自己编译内核。

当我准备编译goldfish内核的时候,根据网上的教程,却无法在goldfish的arch/arm64/configs目录下找到需要的goldfish_defconfig文件,有的教程说可以在Android系统启动的情况下,使用adb pull /proc/config.gz,解压得到deconfig文件,但是我启动系统之后,发现里面并没有这个压缩包。纠结之后,重新编译了Android系统源码,架构改为x86_64,但是结果还是一样,goldfish的arch/x86_64/configs里面的x86_64_defconfig完全没有效果,同样没有config.gz这个文件。

继续在网上扒资料,终于发现一篇不一样的文章:编译并测试 android goldfish kernel x86,但是文章使用的Android系统版本好像比较早,CROSS_COMPILE设置的路径我在Android7.1里面找不到,build-kernel.sh的路径同样没有。几乎就要放弃的时候,无意间在Android系统源码目录的prebuilts/qemu-kernel/目录中发现了build-kernel.sh文件。真是柳暗花明又一村啊。于是就有了下面的教程了。

一、编译Android系统

可以从Google或者中国科技大学和清华大学的镜像站下载,我是下载别人下的压缩包,里面没有.git文件夹,体积大大减小,只有4G多:http://pan.baidu.com/s/1o8PVK9O 缺点就是无法利用git切换其他版本。下载之后解压。

编译Android系统的教程网上很多,大家可以参考自己动手编译Android源码(超详细)这篇文章。

cd ~/Desktop/android-7.1.0_r1    #我存放Android系统源码的目录
source build/envsetup.sh
lunch aosp_x86_64-eng            #注意,我们编译的是x86_64的系统
make -j4
emulator

以后运行Android系统,只要使用下面的命令:

cd ~/Desktop/android-7.1.0_r1
source build/envsetup.sh
lunch aosp_x86_64-eng
emulator

二、编译goldfish内核

1、下载goldfish源码,我放在~/Desktop/goldfish中:

cd ~/Desktop
git clone git://mirrors.ustc.edu.cn/aosp/kernel/goldfish.git 

git clone 的时候会自动创建goldfish文件夹,因此不要先在桌面创建goldfish文件夹,再进入goldfish进行git clone命令。

2、运行Android系统,查看对应的内核版本

 

3.checkout相应的版本

cd ~/Desktop/goldfish
git branch -a   #查看版本
git checkout remotes/origin/android-goldfish-3.10-n-dev   #checkout

4.编译内核

cd ~/Desktop/goldfish
PATH=$PATH:/home/wuqingyi/Desktop/android-7.1.0_r1/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin
export ARCH=x86_64
export CROSS_COMPILE=x86_64-linux-android-
export REAL_CROSS_COMPILE=x86_64-linux-android-       #这个必须有,否则终端直接闪退。
/home/wuqingyi/Desktop/android-7.1.0_r1/prebuilts/qemu-kernel/build-kernel.sh --arch=x86_64

必须在goldfish内核源码的顶级目录运行上面的命令,我的为~/Desktop/goldfish。否则无法编译。

 

编译生成的内核放在/tmp/kernel-qemu/x86_64-3.10.0/kernel-qemu。运行Android系统,在emulator中加入参数,即可运行自己编译的内核了。

cd ~/Desktop/android-7.1.0_r1
source build/envsetup.sh
lunch aosp_x86_64-eng
emulator -kernel /tmp/kernel-qemu/x86_64-3.10.0/kernel-qemu

 

三、总结

本文最主要的是说明goldfish内核的编译,基本可以确定,上面编译x86_64 goldfish的步骤,同样可以用来编译arm64 goldfish,只需把相应的参数修改一下即可。但是模拟器在模拟x86_64的Android系统速度上,较arm有很大的提升。

内容概要:本文提出了一种基于改进扩散模型的高海拔地区新能源高波动出力场景生成方法,并提供了完整的Python代码实现。该方法针对高海拔地区风能、光伏等新能源出力波动剧烈、不确定性高的特点,通过优化扩散模型的结构与训练策略,有效捕捉历史据的概率分布特征与时序相关性,从而生成高质量、多样化的出力场景。文中详细阐述了模型的学推导、网络架构设计、损失函优化及采样算法改进,并通过实验证明其在拟合精度、场景多样性与稳定性方面优于传统生成模型,为电力系统在高比例新能源接入下的规划、调度与风险评估提供了可靠的场景输入支持。; 适合人群:具备一定Python编程能力和机器学习基础,从事新能源发电预测、电力系统分析、智能优化、场景生成等方向研究的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①用于高海拔地区风电、光伏出力的不确定性建模与多场景生成;②支撑含高渗透率新能源的电力系统随机优化调度、鲁棒决策与风险评估;③为相关学术研究、论文复现与算法改进提供可运行的技术方案与代码基础; 阅读建议:建议读者结合所提供的完整资源(代码、据集、说明文档)进行实践操作,重点关注扩散模型的前向加噪与反向去噪过程的设计细节,以及如何将其适配于新能源时序据的生成任务,通过参调优与对比实验深入理解模型的生成机制与性能边界。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值