首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android内核错误:对`radio_hci_smd_init的未定义引用

Android内核错误:对`radio_hci_smd_init的未定义引用
EN

Stack Overflow用户
提问于 2016-08-03 11:47:52
回答 1查看 1.1K关注 0票数 0

我正试图为摩托罗拉Moto E构建Android内核。

安卓核心信息:

名称: MSM8610

设备(预定):Moto E

硬件: MSM8610

Github:核源链路

工具链:

我在下面的工具链上尝试过同样的错误。

  1. Linaro 4.6.4
  2. Android NDK ARMEABI 4.6

My Procedure:

  1. 首先清理android内核源目录。 make clean && make mrproper
  2. 生成配置文件。 make ARCH=arm CROSS_COMPILE=/path/to/toolchain/bin/ msm8610_defconfig
  3. 构建内核。 make ARCH=arm CROSS_COMPILE=/path/to/toolchain/bin/

错误:

在最后一步,即构建内核部分时,我将得到以下错误:

代码语言:javascript
复制
  LD      init/built-in.o
  LD      .tmp_vmlinux1
drivers/built-in.o: In function `iris_fops_open':
/home/mohit/code/android_kernel_motorola_msm8610/drivers/media/radio/radio-iris.c:5100: undefined reference to `radio_hci_smd_init'
Makefile:885: recipe for target '.tmp_vmlinux1' failed
make: *** [.tmp_vmlinux1] Error 1

这能修好吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-03 14:27:56

一旦您了解了如何绕过内核源代码,只需遵循以下步骤就可以非常简单地进行调查:

  • 搜索显示radio_hci_smd_init是在radio-iris-transport.c中定义的
  • 进入Makefile,无线电虹膜传输,c是构建运输。因此,可能存在一些配置问题。
  • KConfig条目RADIO_IRIS_TRANSPORT的结果是默认情况下禁用,所以很可能是由defconfig决定的。
  • 对啰。那是假的 - RADIO_IRIS是内置的,但是RADIO_IRIS_TRANSPORT是作为一个模块构建的.模块代码是在主vmlinux映像之后单独编译的,因此无法链接。

最简单的方法可能是编辑您的.config,将CONFIG_RADIO_IRIS_TRANSPORT=m更改为CONFIG_RADIO_IRIS_TRANSPORT=y,使该驱动程序也内置,并希望能够与另一个驱动程序链接。

这就是说,给出错误甚至在我看的树枝上都没有的行。从Git日志来看,似乎有人试图通过引入一个损坏的构建时依赖项来修复一个破损的运行时依赖问题,并且至少在该分支上它再次被恢复。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38742726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档