5

我一直在尝试做的是将android内核中的差异修补或合并到特定板的linux内核。我在成功合并 2 时遇到了麻烦。我尝试使用这些命令合并内核以制作补丁文件: 第一个:我试图找到 vanilla linux 内核与 android 树合并的时间点。

 git log --pretty=oneline --format="%Cgreen%h %Creset%s" \
            --grep="Linux 3." -n 20 

然后我制作补丁:

git diff c16fa4f HEAD > 3.4-to-android.patch

补丁很大~200MB,但是当我应用补丁时,我得到了一长串错误。我正在关注这个网站:http: //blogs.arm.com/software-enablement/498-from-zero-to-boot-porting-android-to-your-arm-platform/

感谢您提供的任何帮助。(只是想学习一些新东西。:-))

4

1 回答 1

2

Android内核和Vanilla内核有很多区别:

http://www.linaro.org/blog/android-blog/androidization-of-linux-kernel/

CONFIG_ASHMEM=y
CONFIG_STAGING=y
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_LOGGER=y
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_LOW_MEMORY_KILLER=y

为了克服很多 IPC 问题,Android 没有任何普通 Linux 中的普通 IPC 机制(因此内核没有实现它):共享内存、命名管道、信号量等。所有这些都可以完成由 Android BINDER 代替。

这是另一个显示移植逻辑的链接:

http://community.arm.com/groups/android-community/blog/2013/09/18/from-zero-to-boot-porting-android-to-your-arm-platform

还有另一项努力是在 vanilla 内核(如 Ubuntu / Fedora 等)中构建 Android 兼容层,以便您可以在 PC 上使用 Android 应用程序:

https://lkml.org/lkml/2013/12/4/469

于 2014-07-27T01:49:47.070 回答