2016-12-29 11 views
0

最近、私はxiaomi mi4cのアンドロイドカーネルをクロスコンパイルしようとしました。その後、私はエラーを持っているアンドロイド3.10カーネルソースをコンパイル中にエラーが発生しました

make clean && make mrproper 
make ARCH=arm64 resurrection_libra_defconfig 
make ARCH=arm64 CROSS_COMPILE=$CROSS_COMPILE -j3 

:その後、私はここからカーネルソースをクローン化し

git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 -b marshmallow-release toolchain64 
export ARCH=arm64 
export SUBARCH=arm64 
export CROSS_COMPILE=`pwd`/toolchain64/bin/aarch64-linux-android- 

https://github.com/AndropaX/android_kernel_xiaomi_msm8992

とこれを行う私はこのようなツールチェーンをダウンロードして設定している。これを行うために

In file included from include/linux/kernel.h:14:0, 
       from include/linux/sched.h:15, 
       from /home/owner/android_kernel_xiaomi_msm8992/arch/arm64/include/asm/compat.h:25, 
       from /home/owner/android_kernel_xiaomi_msm8992/arch/arm64/include/asm/stat.h:23, 
       from include/linux/stat.h:5, 
       from include/linux/module.h:10, 
       from drivers/tspdrv/tspdrv.c:26: 
drivers/tspdrv/ImmVibeSPI_ISA1000.c: In function 'ImmVibeSPI_ForceOut_SetSamples': 
include/linux/dynamic_debug.h:64:16: error: implicit declaration of function 'KBUILD_STR' [-Werror=implicit-function-declaration] 
    static struct _ddebug __aligned(8) \ 
       ^
include/linux/dynamic_debug.h:76:2: note: in expansion of macro 'DEFINE_DYNAMIC_DEBUG_METADATA' 
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ 
^
include/linux/printk.h:240:2: note: in expansion of macro 'dynamic_pr_debug' 
    dynamic_pr_debug(fmt, ##__VA_ARGS__) 
^
drivers/tspdrv/ImmVibeSPI_ISA1000.c:573:2: note: in expansion of macro 'pr_debug' 
    pr_debug("%s: level = %d\n", __func__, level); 
^
<command-line>:0:27: error: 'tspdrv' undeclared (first use in this function) 
include/linux/dynamic_debug.h:66:14: note: in expansion of macro 'KBUILD_MODNAME' 
    .modname = KBUILD_MODNAME, \ 
      ^
include/linux/dynamic_debug.h:76:2: note: in expansion of macro 'DEFINE_DYNAMIC_DEBUG_METADATA' 
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ 
^
include/linux/printk.h:240:2: note: in expansion of macro 'dynamic_pr_debug' 
    dynamic_pr_debug(fmt, ##__VA_ARGS__) 
^
drivers/tspdrv/ImmVibeSPI_ISA1000.c:573:2: note: in expansion of macro 'pr_debug' 
    pr_debug("%s: level = %d\n", __func__, level); 
^
<command-line>:0:27: note: each undeclared identifier is reported only once for each function it appears in 
include/linux/dynamic_debug.h:66:14: note: in expansion of macro 'KBUILD_MODNAME' 
    .modname = KBUILD_MODNAME, \ 
      ^
include/linux/dynamic_debug.h:76:2: note: in expansion of macro 'DEFINE_DYNAMIC_DEBUG_METADATA' 
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ 
^
include/linux/printk.h:240:2: note: in expansion of macro 'dynamic_pr_debug' 
    dynamic_pr_debug(fmt, ##__VA_ARGS__) 
^
drivers/tspdrv/ImmVibeSPI_ISA1000.c:573:2: note: in expansion of macro 'pr_debug' 
    pr_debug("%s: level = %d\n", __func__, level); 
^
drivers/tspdrv/tspdrv.c: At top level: 
drivers/tspdrv/tspdrv.c:94:37: fatal error: tspdrvOutputDataHandler.c: No such file or directory 
#include <tspdrvOutputDataHandler.c> 
            ^
cc1: some warnings being treated as errors 
compilation terminated. 

ですから、私は何をしていますか?違う?クロスコンパイルに別のツールチェーンが必要なのでしょうか?誰かが提案することはできますか?私は、カーネルコードにエラーがあるとは思わない。だから何がうまくいかない?

+0

それは違いを作ることはできませんが、あなたのシェル入力は型破りです。 (1)ARCH変数とCROSS_COMPILE環境変数をエクスポートしたので、** make **コマンドでそれらを再度指定する必要はありません。 (2)CROSS_COMPILEは、パス全体ではなく、単にコマンドプレフィックスであることを意図しています。ツールチェーンを組み込むようにenv変数PATHを変更します。 (3) 'make mrproper'は以前の' make clean 'を余計にします。 (4) '-j3'オプションなしでビルドを試してください。 IIRCでは、並列ジョブで時折問題が発生しました。 – sawdust

+0

これは同じ問題のようです:https://github.com/MiCode/Xiaomi_Kernel_OpenSource/issues/14 – sawdust

答えて

0

それで、数日後、私は答えを見つけました。 4pdaからのkay2777に感謝します。

メインMakefileのKBUILD_CFLAGSを探し、およびエラーとして警告を抑制するために、以下を追加します。

KBUILD_CFLAGS += -w 
// if all errors are to be suppressed 

KBUILD_CFLAGS += -Wno-error=unused-but-set-variable 
// if that specific error is to be suppressed. 
関連する問題