如何从kernel源码中查出版本号(转载)

     转载:http://m.android.tgbus.com/tgmobile/arc/174624.shtml

 

  目前查版本号的方法都是在编译以后从rootfs里看的,难道从源码就看不到,一定要编译以后才能看?
问这个问题主要是想看andr1.0的kernel版本号,知道是基于2.6.25,但是2.6.25有2.6.25.1到2.6.25.20这20个版本阿,diff了一下区别挺大的阿,那andr1.0的kernel是基于2.6.25.?

  version.h这个文件,未编译之前也是没有的,但是编译的时候需要这个头文件,我之前觉得奇怪,后来发现编译完之后,这个文件就有了。所以我猜想这个文件是makefile生成的,一查发现确实是这样
$(KERNEL_PATH)/Makefile
...
define filechk_version.h
        (echo \#define LINUX_VERSION_CODE $(shell                             \
        expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL));     \
        echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';
endef
...

  所以源码的版本号就包含在LINUX_VERSION_CODE里,再去找PATCHLEVEL的值,居然发现源码的版本号就定义在Makefile的最开头,我这个faint阿

  andr1.0的kernel版本是
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 25
  EXTRAVERSION =
  NAME = Funky Weasel is Jiggy wit it

  EXTRAVERSION 没有就是第1版,官方的linux2.6.25.1的EXTRAVERSION也是空的,所以andr1.0应该是基于linux2.6.25.1

../repo/repo init --repo-url ssh:///tools/repo -u ssh:///platform/manifest -b rk2928/mid/4.2.2_r1/develop

posted on 2015-11-28 11:17  次奥砖家  阅读(3196)  评论(0编辑  收藏  举报

导航