Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1555995
  • 博文数量: 290
  • 博客积分: 3468
  • 博客等级: 中校
  • 技术积分: 3461
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-28 22:21
文章分类

全部博文(290)

文章存档

2016年(13)

2015年(3)

2014年(42)

2013年(67)

2012年(90)

2011年(75)

分类: 嵌入式

2012-07-04 15:56:34

编译内核时2.6.21.5 (make (该配置内置了initramfs 文件系统),第一次make 成功, 但是此后再也不行了!make , make clean 等后都会出错):
# make
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CHK     include/linux/compile.h
/home/work/bsp_1b/linux-kernel/usr/Makefile:49: *** multiple target patterns.  Stop.
make: *** [usr] Error 2

解决方法:
# make -d //会列出详细信息,下面就最后的一信息
Reading makefile `/home/work/kenrel/1b-linux-bsp-5542fd5/usr/Makefile' (search path) (no ~ expansion)...
Reading makefile `usr/.initramfs_data.cpio.gz.d' (search path) (no ~ expansion)...
/home/work/kenrel/1b-linux-bsp-5542fd5/usr/Makefile:49: *** multiple target patterns.  Stop.
Reaping losing child 0x09b1ecb8 PID 25934
make: *** [usr] Error 2

# rm usr/.initramfs_data.cpio.gz.d
# make  //ok


make[1]: *** [usr/initramfs_data.cpio.gz] Error 1
make: *** [usr] Error 2
make: *** Waiting for unfinished jobs....

权限问题:因为编译内核是在普通用户,而文件系统有的文件需要 root 用户才有权访问
解决方法:
切换到 root 用度进行编译

编译内核时2.6.36.3(gcc-4.4.0)
drivers/built-in.o: In function `sd_revalidate_disk':
sd.c:(.text.sd_revalidate_disk+0x16bc): undefined reference to `____ilog2_NaN'
sd.c:(.text.sd_revalidate_disk+0x16bc): relocation truncated to fit: R_MIPS_26 against `____ilog2_NaN'
make: *** [.tmp_vmlinux1] Error 1
解决方法:
1. 去除 driver/scsi 的支持,这种是冶标不冶本的方法 (不予推荐)
2. 在 .config 中添加 CONFIG_CC_OPTIMIZE_FOR_SIZE=y (推荐)
出现此问题为gcc的bug:详见


阅读(3103) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~