我编写了可加载的内核模块并在手机上测试它,但现在我想在模拟器上测试它。
我使用msm kernel
来构建该模块,并在msm kernel
中使用一些标头,如
msm_smd.h
但是模拟器使用金鱼内核并且不包含该标头。 有没有办法使用msm内核并在模拟器上启动它(我问bcz我建立它但msm内核不能在模拟器上启动)? 或者如何为金鱼内核找到类似的标题? 真的需要帮助
答案 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 代替它
希望这有帮助