目前在做8313的项目,原开发板为MPC8313-REB-REVA4,但是老大给的开发工具是MPC8313-RDB-REVC的开发套件,内核为2.6.23,现在要做的是移植2.6.18的内核到A4的开发板上。下面是遇到的问题:
问题一:根目录下编译错误,执行make命令的时候出现如下错误。
[root@localhost kernel]# make
/home/kernel/scripts/gcc-version.sh: line 11: 586-gcc: command not found
/home/kernel/scripts/gcc-version.sh: line 12: 586-gcc: command not found
make: 586-gcc: Command not found
CHK include/linux/version.h
CHK include/linux/utsrelease.h
CC arch/i386/kernel/asm-offsets.s
/bin/sh: 586-gcc: command not found
make[1]: *** [arch/i386/kernel/asm-offsets.s] Error 127
make: *** [prepare0] Error 2
[root@localhost kernel]#
根据现象推断可能是编译链的问题,应该是根Makefile没设置好,因为当编译出现第一个CC arch/i386/kernel/asm-offsets.s的时候就出现错误了。于是参照http://www.360doc.com/content/10/1109/23/273394_68072419.shtml的文章,更改Makefile文件,原文如下:
ARCH := $(shell if [ -f .mvl_target_cpu ]; then \\
cat .mvl_target_cpu; \\
else \\
echo $(SUBARCH); \\
fi)
CROSS_COMPILE = $(shell if [ -f .mvl_cross_compile ]; then \\
cat .mvl_cross_compile; \\
fi)
更改后如下:
################################### modifid by David #############################
#ARCH := $(shell if [ -f .mvl_target_cpu ]; then \\
# cat .mvl_target_cpu; \\
# else \\
# echo $(SUBARCH); \\
# fi)
#CROSS_COMPILE = $(shell if [ -f .mvl_cross_compile ]; then \\
# cat .mvl_cross_compile; \\
# fi)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
################################## 2012.3.1 ###################################
在执行make命令,ok,一切顺利。
问题二:运行make menuconfig后,发现内核2.6.18中没有powerpc8313处理器的支持选项,但是2.6.23中有,要想办法把23中支持8313的相关文件添加的18中,并且能选中该处理器并顺利编译直到完成。
。。。。。。未完,待续