2017-03-20 14 views
2

私はこのような何かを達成しようとしています https://github.com/volatilityfoundation/volatility/wiki/Android#initialize-the-android-build-environment。 以下は私が使用している環境です:カーネルのクロスコンパイル

Ubuntu 14.04、Androidスタジオ2.3、Android NDK r14、エミュレータ-api22。

私はステップで困難に直面していますクロスコンパイルカーネル。 金魚のカーネルをターゲットにしています。3.10 次の手順は次のとおりです。どんな助けでも本当に感謝しています。

方法1

export ARCH=arm 
export SUBARCH=arm 
export CROSS_COMPILE=~/android-ndk/android-ndk-r14/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- 

我々は

make goldfish_armv7_defconfig 

として、次のコマンドを実行する必要がありますが、私はディレクトリをチェックし、「アンドロイド・ソース/アーチ/腕/ことを示唆しているチュートリアルconfigs/"にそのような設定ファイルはありません。

:いくつかのチュートリアルでは、我々だけコピーして、カーネル2.6からファイルを貼り付け、私は同じことをした、その後エラーで

CONFIG_MODULES=y 
CONFIG_MODULES_UNLOAD=y 
CONFIG_MODULES_FORCE_UNLOAD=y 

しかしfuther

$ make 

結果を追加できることを示唆しています

arch/arm/mm/mmu.c: In function 'build_mem_type_table': 
arch/arm/mm/mmu.c:470:18: error: 'L_PTE_MT_VECTORS' undeclared (first use in this function) 
    vecs_pgprot |= L_PTE_MT_VECTORS; 
       ^
arch/arm/mm/mmu.c:470:18: note: each undeclared identifier is reported only once for each function it appears in 
arch/arm/mm/mmu.c: At top level: 
arch/arm/mm/mmu.c:637:23: warning: 'early_pte_alloc_and_install' defined but not used [-Wunused-function] 
static pte_t * __init early_pte_alloc_and_install(pmd_t *pmd, 
        ^
make[1]: *** [arch/arm/mm/mmu.o] Error 1 
make: *** [arch/arm/mm] Error 

methos 2

エブリシングNGは方法1と同じですが、私はただ一つの変数

export ARCH=arm64 

を変更し、

make ranchu_deconfig 

を実行します。しかし、私は同じエラーを得ました。

方法3

$ export ARCH=arm 
$ export SUBARCH=arm 
$ export CROSS_COMPILE=~/android-ndk/android-ndk-r14/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- 
$ make ranchu_defconfig 
$ vim .config # added this to .config file 

CONFIG_MODULES=y 
CONFIG_MODULES_UNLOAD=y 
CONFIG_MODULES_FORCE_UNLOAD=y 

$ make 

このコマンドが正常に実行:zImage foundを。私は「古すぎるRAMディスクを実行するためのLinuxカーネル」のエラーを取得しています

[email protected]:~/Android/Sdk/tools# ./emulator -avd Nexus5x22 -kernel ~/android-source2/android-source/arch/arm/boot/zImage -show-kernel –verbose 

以下のコマンドを使用してエミュレータを実行したときに

しかし: ram disk error

+0

あなたの 'PATH'に' $ HOME/android-ndk/android-ndk-r14/toolchains/arm-linux-androideabi-4.9/prebuilt/linux- x86_64/bin'。 (これはちょうど最初のステップです) – 0andriy

答えて

0

GoogleのAndroidカーネルが台無しにされます。彼らはpatchを移植したときにL_PTE_MT_VECTORSを定義するのを忘れていました。

解決策は、hereを追加することです。

関連する問題