2016-08-03 8 views
0

に未定義の参照、私はモトローラモトE.Androidのカーネルエラー: `radio_hci_smd_init」

Androidのカーネル情報のためのAndroidのカーネル構築しようとしています:

名:AndroidのカーネルモトローラMSM8610

デバイス(対象):モトE

ハードウェア:MSM8610

のGithub:Kernel Source Link

ツールチェーン:

私は同じエラーで次のツールチェーンでこれを試してみました。

  1. Linaro 4.6.4
  2. Android NDK ARMEABI 4.6

マイ手順:

  1. 初のAndroidカーネルのソースディレクトリを掃除。

    make clean && make mrproper

  2. 設定ファイルを作ります。

    make ARCH=arm CROSS_COMPILE=/path/to/toolchain/bin/ msm8610_defconfig

  3. カーネルを構築します。カーネルの一部の建物、すなわち、私は次のエラーを取得しています最後のステップで

    、::

    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 
    

    だから、これはできる

    make ARCH=arm CROSS_COMPILE=/path/to/toolchain/bin/

エラー修正される?

ありがとうございます。あなたがカーネルソースの周りにあなたの方法を知っていたら

答えて

2

が、これはただの道以下で検討することは非常に簡単です。

  • 検索はradio_hci_smd_initはMakefileのに出てステッピングradio-iris-transport.c
  • で定義されて明らかにし、ラジオ-iris-transport.cはdependent on CONFIG_RADIO_IRIS_TRANSPORTです。したがって、おそらくいくつかの設定に問題があります。
  • RADIO_IRIS_TRANSPORTのKConfigエントリはto be disabled by defaultとなっているので、おそらくdefconfigになっているはずです。
  • ビンゴ。That defconfig is bogus - RADIO_IRISは組み込まれていますが、RADIO_IRIS_TRANSPORTはモジュールとして構築されています。モジュールコードは、メインのvmlinuxイメージの後に別々にコンパイルされているため、リンクすることはできません。 、CONFIG_RADIO_IRIS_TRANSPORT=yからCONFIG_RADIO_IRIS_TRANSPORT=mを変更するには、そのドライバも内蔵し、他のものとリンクすることができ、うまくいけばを作るために

最も簡単な方法は、おそらくあなたの.configを編集することです。

これは、あなたのエラーを与える行はisn't even there in the branch I'm looking atと述べています。 Gitのログから、誰かが壊れた実行時依存関係の問題を解決しようとしていたようで、その分岐上で少なくとも復帰したようです。

+0

ありがとうございました。あなたのトレイルのデバッグは本当に役に立ちました。 – Mohit

関連する問題