在goldfish内核中添加类似的头文件

时间:2016-02-26 14:29:39

标签: android c kernel-module

我编写了可加载的内核模块并在手机上测试它,但现在我想在模拟器上测试它。 我使用msm kernel来构建该模块,并在msm kernel中使用一些标头,如

  

msm_smd.h

但是模拟器使用金鱼内核并且不包含该标头。 有没有办法使用msm内核并在模拟器上启动它(我问bcz我建立它但msm内核不能在模拟器上启动)? 或者如何为金鱼内核找到类似的标题? 真的需要帮助

1 个答案:

答案 0 :(得分:0)

将msm内核移植到金鱼板(即Android模拟器所基于的谷歌虚拟主板)是一种繁琐的方法,需要专家。因此,我建议您找到预先构建的金鱼内核的确切源代码,将您的模块集成到其中,重新编译并测试它。 但是,我仍然可以为您提供将msm内核 - 或任何其他内核 - 移植到金鱼板所需的所有步骤,如果真的需要

如果您使用的是金鱼内核3.4 - 它是默认SDK模拟器上的内核版本 - 那么这里是AOSP的来源: https://android.googlesource.com/kernel/goldfish/+/android-goldfish-3.4

可以使用adb实用程序将内核版本转储到屏幕:

  

adb shell cat / proc / version

要编译金鱼内核,首先需要安装arm eabi交叉编译工具链:

  

git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8

     

bin 目录添加到PATH变量中,因为它包含所需的编译器和链接器

     

导出ARCH = arm

     

导出SUBARCH = arm

     

导出CROSS_COMPILE = arm-eabi -

     

制作goldfish_armv7_defconfig

     

make -j4

编译成功后,可以在以下位置找到内核映像: $ KERNEL_SRC /拱/臂/引导/的的zImage

现在,备份你的默认SDK金鱼内核(即命名为kernel-qemu),然后使用新建的 zImage 代替它

希望这有帮助