当前位置:   article > 正文

编译Android 的 linux内核,并用emulator命令启动编译好的linux内核

emulator命令

准备工作

使用上一篇文章,编译Android源码,并用模拟器启动编译好的镜像,可以在终端输入 “emulator ” 命令启动模拟器。

查看emulator 命令默认使用的linux内核文件。

输入命令“emulator -verbose | grep kernel”,如下图:

可以看出,linux内核是ranchu版本的。(我也不知道ranchu是什么意思)

查看Android模拟器使用的linux版本

输入“adb shell”进入模拟器的终端;

可见,linux的内核版本是4.4。

编译linux内核

(1)下载android 版本的 linux 内核。

  1. mkdir kernel
  2. cd kernel
  3. git clone http://android.googlesource.com/kernel/goldfish.git

说明一下,为什么是“goldfish”呢? 谷歌针对Android系统提供了好几个版本,其中goldfish表示适用于模拟器平台。其中还有“msm”、“samsung”和“omap”等几个版本。(具体可以百度)。

(2)切换指定分支。

我当时使用的是“android-goldfish-4.4-dev”分支,与上面准备工作中查看的版本4.4一致。下面是切换以后的分支。

  1. gs@aigo:~/nvme_1T/android9.0.0_35/kernel/goldfish$ git branch -a
  2. * (HEAD detached at origin/android-goldfish-4.4-dev)
  3. master
  4. remotes/origin/HEAD -> origin/master
  5. remotes/origin/android-3.18
  6. remotes/origin/android-4.14-q
  7. remotes/origin/android-goldfish-2.6.29
  8. remotes/origin/android-goldfish-3.10
  9. remotes/origin/android-goldfish-3.10-k-dev
  10. remotes/origin/android-goldfish-3.10-l-mr1-dev
  11. remotes/origin/android-goldfish-3.10-m-dev
  12. remotes/origin/android-goldfish-3.10-n-dev
  13. remotes/origin/android-goldfish-3.18
  14. remotes/origin/android-goldfish-3.18-dev
  15. remotes/origin/android-goldfish-3.4
  16. remotes/origin/android-goldfish-3.4-l-mr1-dev
  17. remotes/origin/android-goldfish-4.14-dev
  18. remotes/origin/android-goldfish-4.14-dev.120914098
  19. remotes/origin/android-goldfish-4.14-dev.143174688
  20. remotes/origin/android-goldfish-4.14-dev.150
  21. remotes/origin/android-goldfish-4.14-dev.20190417
  22. remotes/origin/android-goldfish-4.14-dev.backup
  23. remotes/origin/android-goldfish-4.14-gchips
  24. remotes/origin/android-goldfish-4.4-dev
  25. remotes/origin/android-goldfish-4.9-dev
  26. remotes/origin/android-goldfish-5.4-dev
  27. remotes/origin/heads/for/android-goldfish-3.18-dev
  28. remotes/origin/linux-goldfish-3.0-wip
  29. remotes/origin/master
  30. gs@aigo:~/nvme_1T/android9.0.0_35/kernel/goldfish$

查看readme

最重要的一句话是:

即输入 “make help”,可以查看当前支持的 config,如下图:

这里我们选择“x86_64_ranchu_defconfig”,为什么是x86_64,是因为上一篇文章使用的也是x86_64。而为什么是“ranchu”,因为准备工作中查看默认的linux内核也是ranchu,(虽然我还是不清楚ranchu是啥意思)。

编译linux内核

  1. make clean
  2. make mrproper
  3. make x86_64_ranchu_defconfig
  4. make -j$(nproc --all)

编译成功后,会输出如下:

说明一下,kernel在x86_64目录下也有,只是x86_64目录下的内核镜像是个软链接,链接在x86目录下的。

emulator命令启动编译好的linux内核镜像

输入命令“emulator -kernel kernel/goldfish/arch/x86_64/boot/bzImage -show-kernel”,如下:

说明一下,“-show-kernel”表示:在终端窗口中显示内核调试消息。

此时,模拟器正常启动了。

 

参考

emulator命令详解

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/327204
推荐阅读
相关标签
  

闽ICP备14008679号