Linux内核编译,启动带linux内核的模拟器。
来源:互联网 发布:淘宝怎么看确认收货 编辑:程序博客网 时间:2024/04/30 12:39
Linux内核编译,启动带linux内核的模拟器。
上一篇总结了安卓5.0源码的编译和启动其自带的模拟器。安卓源码是不包括linux内核的,而是使用的谷歌预先编译好的内核,其代码路径是在prebuilt/android-arm/kernel/kernel-qemu下。如何让安卓系统的内核变成自己的linux内核,这一篇将会总结。
前面已经提供了linux内核的下载地址,在安卓源码根目录下新建目录。
mkdir kernel
将下载好的linux内核包解压到kernel目录下。
tar -zxvf goldfish-android-goldfish-3.4.tar-gz
现在开始准备编译。
一:编译前准备工作
1.将安卓系统所带的gcc加入环境变量。
export PATH=$PATH:~/Android5.0.2/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin
2.去刚刚创建的kernel目录下打开linux内核源码的Makefile文件,需要修改一下两项:
# ARCH ?= (SUBARCH)
# CROSS_COMPILE ?=XXXXXX (这后面的内容我忘了)
ARCH ?= arm
CROSS_COMPILE ?= arm-eabi-
注意不要改变原来的格式,只需要改变后面的内容就行。注意检查arm和arm-eabi-后面是否带有空格,有的话去掉。
二:开始编译
1.安卓5.0的编译命令:
make goldfish_armv7_defconfig
make
安卓4.0之前的命令有点不一样:make goidfish_defconfig
编译成功后,会提示XXXXX is ready 然后会有successfly的提示。说明编译成功。
三:启动带有linux内核的模拟器
emulator -partition-size 1024 -kernel ./kernel/arch/arm/boot/zImge
其中,后面所带的路径就是你下载编译好的内核镜像文件的路径。
如果提示emulator命令找不到,或者一些别的错误,那么先把安卓源码的三个镜像文件和emulator的文件路径再加入一遍到环境变量。或者在安卓源码路径下 1.source ./envsetup.sh 2.lunch 一遍
如果模拟器启动黑屏,那么检查一下你的这两个环境变量是否加入成功,有没有让~/.bashrc生效(srouce ~/.bashrc)。或者编译安卓源码的时候,lunch选项又没有选错,如果选错了,那只能从来编译安卓源码了。
如果各种办法都尝试过后,模拟器还是黑屏那么你或许可以想一想最不可能发生或者最不想发生的BUG了。。
当你排除了一切的可能后,那么不可能就变成了可能!
哈哈,那估计就是安卓源码包的问题了。。。
我前几天就是这样的问题,找了半天的错误楞是没有找到,结果一咬牙,换了包从头来,一步到位!
2 0
- Linux内核编译,启动带linux内核的模拟器。
- Linux内核编译以及内核引导启动
- linux编译内核不能启动
- linux 启动顺序,内核编译
- Linux内核的编译
- Linux内核的编译
- Linux内核的编译
- linux内核的编译
- linux内核的编译
- linux内核的编译
- linux内核的编译
- Linux内核:编译内核
- linux内核版本带pae的怎么编译
- Linux内核2.6.34.7编译不带O2优化的Linux内核
- 【LINUX内核】LINUX内核编译
- linux内核配置编译以及启动概述
- Linux内核-编译与启动流程
- 02 H5 linux内核编译及启动
- IO文件管理
- Java生成随机数工具类,进制之间的转换工具类,获取指定时间,时间格式转换工具类
- linux安装eclipse出现exit code =13时的解决办法
- Java生成随机数工具类,进制之间的转换工具类,获取指定时间,时间格式转换工具类
- php之错误日志(error log)
- Linux内核编译,启动带linux内核的模拟器。
- 安装Notepad++
- java制造死锁
- leecode 解题总结:383. Ransom Note
- 可变数组 移除数据项
- spring boot
- leetCode练习(242)
- mysql-视图基础学习
- 2. Add Two Numbers