原文網址:http://www.xuebuyuan.com/1104711.html
Ubuntu10.04下編譯飛凌嵌入式(Forlinx)TE/OK6410開發板提供的內核2.6.36
本以為按照用戶手冊的操作,不會有任何問題的,可能是因為內核是在Unbuntu10.10下測試通過的吧,在Ubuntu10.04下反而出了問題。
已經執行export PATH=/usr/local/arm/arm-none-linux-gnueabi/bin:$PATH,但還是出現如下問題
make: arm-none-linux-gnueabi-gcc:命令未找到
CHK include/linux/version.h
CHK include/generated/utsrelease.h
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
scripts/basic/docproc.c: In function ‘docsect’:
scripts/basic/docproc.c:336: warning: ignoring return value of ‘asprintf’, declared with attribute warn_unused_result
HOSTCC scripts/basic/hash
make[1]: “include/generated/mach-types.h”是最新的。
CC kernel/bounds.s
/bin/sh: arm-none-linux-gnueabi-gcc: not found
make[1]: *** [kernel/bounds.s] 錯誤 127
make: *** [prepare0] 錯誤 2
解決方案:
修改kernel文件夾下的Makefile文件
關於交叉編譯的設置,在第192行附近
#ARCH ?= $(SUBARCH)
ARCH ?= arm
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
修改為(修改了CROSS_COMPILE項,為交叉編譯器的路徑)
#ARCH ?= $(SUBARCH)
ARCH ?= arm
# CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
CROSS_COMPILE ?= /usr/local/arm/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-
但是在Ubuntu10.10下並不需要修改Makefile文件,原因留待明白后再補充吧。