当前位置:文档之家› 编译Linux内核的错误汇总

编译Linux内核的错误汇总


四: make zImage 和 make xipImage Kernel configured for XIP (CONFIG_XIP_KERNEL=y) Only the xipImage target is available in this case make[1]: *** [arch/arm/boot/zImage] Error 1 make: *** [zImage] Error 2
下面是编译时产生的一些信息
1' cross compile
# CROSS_COMPILE specify the prefix used for all executables used
# during compilation. Only gcc and related bin- utils executables
解决方法:修改 arch/arm/kernel/vmlinux.lds [arm@localhost linux2.6.14]$ vi arch/arm/kernel/vmlinux.lds 将文件尾 2 条的 ASSERT 注释掉(1439 行) /* ASSERT((__proc_info_end __ proc_info_begin), "missing CPU support") */ /* ASSERT((__arch_info_end __ arch_info_begin), "no machine record defined") */ 然后重新 make zImage 即可
b
/usr/local/arm/bin/arm- linux- ld:arch/arm/kernel/vmlinux.lds:782: parse error make: *** [.tmp_vmlinux1] 错误 1 ld 链接时产生错误 对应行:
/home/kevin/ARMSystem/linux-2.6.12/arch/arm/kernel/vmlinux.lds
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CC
arch/arm/kernel/asm-offsets.s
cc1: error: invalid option `abi=aapcs- linux' make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
scripts/basic/docproc.c: 在函数‘singfunc’中: scripts/basic/docproc.c:274: 警告: 对指针赋值时目标与指针符号不一致 scripts/basic/docproc.c: 在函数‘parse_file’中: scripts/basic/docproc.c:296: 警告: 对指针赋值时目标与指针符号不一致
/* those must never be empty */
ASSERT((__proc_info_end - __proc_info_begin), "missing CPU support")
ASSERT((__arch_info_end - __arch_info_begin), "no machine record defined") 解决办法: 注释掉这两行
make: *** [prepare0] Error 2 解决方法:
You're building an EABI kernel with an OABI compiler. You can either turn off the
EABI option in your config file (Kernel Features->Use EABI),or, you can use an EABI toolchain such as the ARM/GNU Linux one from
# are prefixed with $(CROSS_COMPILE).
# CROSS_COMPILE can be set on the command line
# make CROSS_COMPILE=ia64- linux-
# Alternatively CROSS_COMPILE can be set in the environment.
解决方法: 好象是 make menuconfig 的时候 Boot options--->Kernel Execte-In-Place from ROM 选项问题,去掉这个选项编译通过(如果是 make xopImage 时則需要将这个选项 选上),最终成功编译了 make zImage。 五: 出现 make:***[.tmp_vmlinux1] Error 1 这类错误
HOSTCC scripts/basic/split- include scripts/basic/split- include.c: 在函数‘main’中: scripts/basic/split- include.c:113: 警告: 对指针赋值时目标与指针符号不一致
HOSTCC scripts/basic/docproc scripts/basic/docproc.c: 在函数‘find_export_symbols’中: scripts/basic/docproc.c:184: 警告: 对指针赋值时目标与指针符号不一致 scripts/basic/docproc.c:185: 警告: 对指针赋值时目标与指针符号不一致 scripts/basic/docproc.c:202: 警告: 传递参数 2 (属于‘add_new_symbol’) 给指 针时,目标与指针符号不一致
2'
kevin@kevin-desktop:~/ARMSystem/linux-2.6.12$ make distclean
# distclean
#
.PHONY: distclean
distclean: mrproper @find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
六: 如果大家遇到一下几个问题可以参考本文:
a
make menuconfig
1) /usr/bin/ld: cannot find - lncurses
解决办法:
sudo apt-get install libncurses5-dev 2) Your display is too small to run Menuconfig! 解决办法: 窗口最大化
编译 linux 内核时出现的问题
一: invalid option `abi=aapcs-LINUX'选项错误
scripts/kconfig/conf -s arch/arm/Kconfig
CHK include/linux/version.h SYMLINK include/asm-arm/arch -> include/asm-arm/arch-s3c2410
drivers/built- in.o(.text+0x281e4):drivers/char/nvram.c:350: more undefined
references to `rtc_lock' follow 查找 drivers/char/nvram.c 有关的 rtc_lock 定义,发现 2.6.21 与以往的 kernel 不同, 于是在包含文件中查找,在 include/linux/mc146818rtc.h 中发现了 rtc_lock 的定义, 但是有一个__KERNEL__的条件编译选项,去掉这个条件编译选项,再 make zImage,但是问题好像依然存在,继续在 drivers/char/nvram.c 中增加这个定义 spinlock_t rtc_lock;再编译,发现编译通过。
SHIPPED scripts/kconfig/zconf.tab.h
HOSTCC scripts/kconfig/conf.o scripts/kconfig/conf.c: 在函数‘strip’中: scripts/kconfig/conf.c:46: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标与 指针符号不一致 scripts/kconfig/conf.c: 在函数‘conf_askvalue’中: scripts/kconfig/conf.c:94: 警告: 传递参数 1 (属于‘fgets’) 给指针时,目标与 指针符号不一致 scripts/kconfig/conf.c: 在函数‘conf_string’中: scripts/kconfig/conf.c:187: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:188: 警告: 对指针赋值时目标与指针符号不一致 scripts/kconfig/conf.c: 在函数‘conf_sym’中: scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c: 在函数‘conf_choice’中: scripts/kconfig/conf.c:350: 警告: 传递参数 1 (属于‘fgets’) 给指针时,目标与 指针符号不一致
相关主题