2011-04-03 31 views
1

我成功编译并将自定义Linux内核加载到Android模拟器(Eclair)中。现在我想为真正的Android设备编译内核(Samsung Galaxy 5,Android 2.1(Eclair))。如何为真正的Android手机编译Linux内核?

似乎为模拟器编译的相同内核映像不能用于真实设备。关于如何做到这一点,没有太多明确的信息。

有人可以告诉哪些步骤需要改变,以获得真正的android手机的内核图像。

回答

2

您可能正在使用MSM内核树(用于Qualcomm MSM处理器),但三星Galaxy S具有三星蜂鸟处理器,因此需要三星内核树,找到here

我不知道内核树是否包含专门针对Galaxy S的defconfig,但您可以使用“herring_defconfig”(make herring_defconfig)。鲱鱼是Nexus S的代号,但Galaxy S非常相似。

如果您还在构建Android框架(不仅仅是内核),您可能需要从现有手机图像中提取二进制驱动程序(用于相机,蓝牙,WiFi,收音机等)并添加他们到你的系统构建。

+0

非常感谢大卫。实际上,我想在内核中启用完整的iptables(Netfilter)支持。现在我编译的模拟器工作。至少它会阻止一个URL。但是我每次启动模拟器时都需要将iptables推送到/ system/bin。我不知道相同的问题是否会在手机上持续存在。所以我希望/ system/bin通过默认包含iptables binary。 – Preetam 2011-04-04 10:27:28

+0

我复制了〜/ myandroid/out/target/product/generic/system/bin中的iptables二进制文件并将其加载到模拟器中。我已经在.config文件中编译了完整的Netfilter和iptables支持的内核。 netfilter和iptables选项与使用xtables的PC Linux相同。我也在内核配置中启用了模块加载支持。 – Preetam 2011-04-04 10:36:19

+0

但是,当我尝试iptables保存,我得到错误说iptables保存未找到。 iptables-save是一个在需要时加载的模块(我认为)。那么,我该如何启用它。看来〜/ myandroid/external/iptables中的Android.mk文件需要更改为文件iptables-save.c,iptables-restore.c它们存在于iptables文件夹中,但它们在makefile中没有条目。我应该如何在模拟器和手机上启用完整的iptables功能。 – Preetam 2011-04-04 10:45:14