(1)
问题:交叉编译环境同板子上平台的大小端不一致,导致无法正常编译
原因:内核未正确配置成板子上的平台
解决方法:
cd linux2.6.x
cp arch/arm/configs/ixp4xx_defconfig .config
make zImage
(2)
问题:当插入内核模块时,提示模块需要unloading属性
原因:内核配置时未选择Module Unloading
解决方法:
在Make menuconfig时选上Module Unloading,然后make zImage
(3)
CHK include/linux/version.h make[1]: `include/asm-arm/mach-types.h' is up to date. CHK include/linux/utsrelease.h CC arch/arm/kernel/asm-offsets.s In file included from include/linux/irqflags.h:46, from include/asm/system.h:78, from include/asm/bitops.h:23, from include/linux/bitops.h:9, from include/linux/thread_info.h:20, from include/asm/current.h:4, from include/linux/capability.h:47, from include/linux/sched.h:49, from arch/arm/kernel/asm-offsets.c:13: include/asm/irqflags.h:11:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/asm/bitops.h:23, from include/linux/bitops.h:9, from include/linux/thread_info.h:20, from include/asm/current.h:4, from include/linux/capability.h:47, from include/linux/sched.h:49, from arch/arm/kernel/asm-offsets.c:13: include/asm/system.h:153:5: warning: "__LINUX_ARM_ARCH__" is not defined include/asm/system.h:159:5: warning: "__LINUX_ARM_ARCH__" is not defined include/asm/system.h:163:35: warning: "__LINUX_ARM_ARCH__" is not defined include/asm/system.h:283:5: warning: "__LINUX_ARM_ARCH__" is not defined include/asm/system.h:288:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/linux/bitops.h:9, from include/linux/thread_info.h:20, from include/asm/current.h:4, from include/linux/capability.h:47, from include/linux/sched.h:49, from arch/arm/kernel/asm-offsets.c:13: include/asm/bitops.h:233:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/asm/thread_info.h:16, from include/linux/thread_info.h:21, from include/asm/current.h:4, from include/linux/capability.h:47, from include/linux/sched.h:49, from arch/arm/kernel/asm-offsets.c:13: include/asm/fpstate.h:28:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/linux/prefetch.h:14, from include/linux/list.h:8, from include/linux/preempt.h:11, from include/linux/spinlock.h:49, from include/linux/seqlock.h:29, from include/linux/time.h:8, from include/linux/timex.h:57, from include/linux/sched.h:53, from arch/arm/kernel/asm-offsets.c:13: include/asm/processor.h:103:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/linux/spinlock.h:333, from include/linux/seqlock.h:29, from include/linux/time.h:8, from include/linux/timex.h:57, from include/linux/sched.h:53, from arch/arm/kernel/asm-offsets.c:13: include/asm/atomic.h:25:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/linux/jiffies.h:4, from include/linux/sched.h:54, from arch/arm/kernel/asm-offsets.c:13: include/linux/calc64.h: In function ‘do_div_llr’: include/linux/calc64.h:25: error: ‘__LINUX_ARM_ARCH__’ undeclared (first use in this function) include/linux/calc64.h:25: error: (Each undeclared identifier is reported only once include/linux/calc64.h:25: error: for each function it appears in.) In file included from include/asm/semaphore.h:10, from arch/arm/kernel/asm-offsets.c:13: include/linux/rwsem.h:24:65: error: asm/rwsem.h: No such file or directory In file included from include/asm/semaphore.h:13, from include/linux/sched.h:62, from arch/arm/kernel/asm-offsets.c:13: include/asm/locks.h:15:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/asm/page.h:32, from include/linux/sched.h:63, from arch/arm/kernel/asm-offsets.c:13: include/asm/glue.h:119:2: error: #error Unknown data abort handler type In file included from include/linux/sched.h:63, from arch/arm/kernel/asm-offsets.c:13: include/asm/page.h:116:2: error: #error Unknown user operations model In file included from include/linux/memory_hotplug.h:7, from include/linux/mmzone.h:493, from include/linux/gfp.h:4, from include/linux/slab.h:14, from include/linux/percpu.h:5, from include/linux/rcupdate.h:41, from include/linux/pid.h:4, from include/linux/sched.h:75, from arch/arm/kernel/asm-offsets.c:13: include/linux/notifier.h: At top level: include/linux/notifier.h:62: error: field ‘rwsem’ has incomplete type In file included from include/linux/sched.h:78, from arch/arm/kernel/asm-offsets.c:13: include/linux/seccomp.h:8:25: error: asm/seccomp.h: No such file or directory In file included from include/linux/sched.h:78, from arch/arm/kernel/asm-offsets.c:13: include/linux/seccomp.h: In function ‘secure_computing’: include/linux/seccomp.h:15: error: ‘TIF_SECCOMP’ undeclared (first use in this function) In file included from arch/arm/kernel/asm-offsets.c:13: include/linux/sched.h: At top level: include/linux/sched.h:385: error: field ‘mmap_sem’ has incomplete type make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1 make: *** [prepare0] Error 2
出现以上错误,说明在make menuconfig的时候未选择cpu类型为ixp4xx(system type->ixp4xx based),选上就好,注意此时如果不编辑Makefile,将ARCH=arm;CROSS_COMPILE=arm-linux- 打开,将找不到ixp4xx的选项。
(4)http://linux.chinaunix.net/bbs/thread-1162895-1-1.html
上面的帖子描述了出现下面问题时的解决办法: opensuse-vm:/usr/src/linux-2.6.23 # make oldconfig |
解决方法:
更新/usr/include下面的asm,scsi和linux三个链接,执行:
ln -s /usr/src/linux-2.6.23/include/asm-i386 asm
ln -s /usr/src/linux-2.6.23/include/linux linux
ln -s /usr/src/linux-2.6.23/include/scsi scsi