原文在:http://blog.csdn.net/lanmanck/article/details/5187144
最近用友善之臂的板子,发现内核的名称是:Linux-2.6.29.4-FriendlyARM.后面那个FriendlyARM死活去不掉。后来只好看代码。
1、2.6.29.4这个版本号是是uboot在做uimage的时候加上的,看arch/arm/boot/Makefile:
quiet_cmd_uimage = UIMAGE $@
cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel /
-C none -a $(LOADADDR) -e $(LOADADDR) /
-n 'Linux-$(KERNELRELEASE)' -d $< $@
2、对比,可见2.6.29.4-FriendlyARM就是 = $(KERNELRELEASE),因此我们需要找到$(KERNELRELEASE)怎么定义的。
3、搜索可以知道$(KERNELRELEASE)在include/config/kernel.release定义,但是改了以后重新make又还有FriendlyARM。
4、看内核顶层的makefile,约872行有说明:
# Build the kernel release string
。。。
# $(localver-auto) (only if CONFIG_LOCALVERSION_AUTO is set)
# ./scripts/setlocalversion (SCM tag, if one exists)
# $(LOCALVERSION) (from make command line if provided)
仔细对比,原来这个FriendlyARM是$(LOCALVERSION)!,搜索下,发现autoconf.h有,哈哈,这就是内核图形配置出来的嘛
5、马上make menuconfig,搜索$(LOCALVERSION),乖乖,原来在Gernel Setup。。。,马上去掉,重新编译。这下没了!