android内核源代码编译错误

android内核源代码编译错误,android,compilation,kernel,Android,Compilation,Kernel,我需要定制android内核,以便在我的Nexus S上运行 因此,我下载了分支名为“remotes/origin/android-samsung-2.6.35-gingerbread”的内核 我试图按照这里的说明来构建内核。为此,我需要交叉编译工具。在我的目标android源代码版本android-2.3.5_r1中,没有这样的工具(没有预编译/文件夹)。因此,我下载了版本4.1.2,并将该工具设置为路径prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin。

我需要定制android内核,以便在我的Nexus S上运行

因此,我下载了分支名为“remotes/origin/android-samsung-2.6.35-gingerbread”的内核

我试图按照这里的说明来构建内核。为此,我需要交叉编译工具。在我的目标android源代码版本android-2.3.5_r1中,没有这样的工具(没有预编译/文件夹)。因此,我下载了版本4.1.2,并将该工具设置为路径prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin。 然后我尝试构建内核,但出现以下错误:

[root@localhost samsung]# make 
scripts/kconfig/conf -s arch/arm/Kconfig
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC      drivers/gpu/pvr/osfunc.o
In file included from drivers/gpu/pvr/osfunc.c:39:0:
include/linux/pagemap.h: In function 'fault_in_pages_readable':
include/linux/pagemap.h:415:16: error: variable 'c' set but not used [-Werror=unused-but-set-variable]
drivers/gpu/pvr/osfunc.c: In function 'OSAccessOK':
drivers/gpu/pvr/osfunc.c:2144:13: error: variable 'linuxType' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

make[3]: *** [drivers/gpu/pvr/osfunc.o] Error 1
make[2]: *** [drivers/gpu/pvr] Error 2
make[1]: *** [drivers/gpu] Error 2
make: *** [drivers] Error 2
我应该禁用“所有警告都被视为错误”来解决它吗?或者我需要一个更好的工具链


PS:我不能使用主分支和分支4.2的工具链。因为它看起来像是为64位操作系统而设计的,而我的linux是32位的

你有ARCH=ARM和TOOLCHAIN的路径指向\prebuilts文件夹中的TOOLCHAIN吗

make ARCH=ARM TOOLCHAIN=\<homeofAOSP>\prebuilt\.. herring_defconfig
make ARCH=ARM工具链=\\prebuilded\。。鲱鱼

make clean
在执行
make

之前,您在发出“make”之前是否执行了其他步骤?@PeterL。当然从change ARCH到make herring_defconfig,我构建Android树已经一年多了,但似乎还记得还有更多的步骤。请参阅“初始化构建环境”的链接(从您在文章中指向的位置)。第一次构建应该需要几个小时。最好(我就是这样发现的)构建所有东西一次,然后在需要的时候重新构建内核。此外,您应该从Android树的顶部进行初始构建。@PeterL。太好了,很有效。构建AOSP后,一些工具链将自动添加到路径中。我想首先构建内核的原因是我想将构建的内核二进制文件添加到AOSP中,然后再进行AOSP构建。所以我认为我应该首先构建AOSP,然后构建内核,最后再使用新构建的内核构建AOSP。这是我们过去经常要做的事情。首先构建所有未更改的内容,然后修改内核中需要更改的内容并重新构建它。第二次构建时只需修改代码,速度会快得多。