我一直在尝试做的是将 android 内核中的差异修补或 merge 到特定板的 linux 内核中。不过,我在成功 merge 2 时遇到了麻烦。我尝试使用这些命令 merge 内核以制作补丁文件: 第 1:我试图找到 vanilla linux 内核与 android 树 merge 的时间点。
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/
非常感谢您提供的任何帮助。 (只是想学习一些新东西。:-))
最佳答案
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 完成。
这是显示移植逻辑的另一个链接:
还有一项工作是在 vanilla 内核(如 Ubuntu/Fedora 等)中构建 Android 兼容层,以便您可以在 PC 上使用 Android 应用程序:
关于android - android内核和vanilla linux内核之间的补丁差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10670498/