如何从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://git@10.10.10.29/tools/repo -u ssh://git@10.10.10.29/platform/manifest -b rk2928/mid/4.2.2_r1/develop