KERNELRELEASE 的定義,Linux $(KERNELRELEASE)

轉載自: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。。。,馬上去掉,重新編譯。這下沒了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章