在我们使用git来管理Linux Kernel的时候,在编译的时候会在你的kernel version加上git commit number
有时候还会出现dirty字样,字面意思是内核被污染的意思。
使用“uname -a”查看:
1 root@android:/system/lib/modules # /system/bin/busybox uname -a 2 Linux localhost 3.0.35-06124-g6298bd2-dirty #1 SMP PREEMPT Mon Jan 20 10:30:05 CST 2014 armv7l GNU/Linux
我这里是Android的内核,其他内核应该也一样,这有可能会导致insmod时,magic number不匹配,而无法insert ko kernel。
典型错误:
1 255|root@android:/system/lib/modules # insmod blcr_imports.ko 2 [ 7045.918010] Running kernel UTS_RELEASE (3.0.35-06124-g6298bd2-dirty) does not match that used to build BLCR (3.0.35-06124-g6298bd2)
解决办法:
1.修改内核配置文件,取消下面的选项
General setup --->;
[] Automatically append version information to the version string
2.另外一种办法,就是提交未修改的代码,或者撤销本地修改。然后make clean,再次编译。