2018年10月2日 星期二

編譯Linux Kernel時,版本後面被加了符號,把svn的檔案刪掉的方法

如果你的版本控管是使用svn,Linux Code check out 下來後會有一些svn版本控管的檔案,而這些檔案在你編譯Kernel的時候,會在你的版本號後面多加一些資訊,例如:

- 你使用Kernel 4.14.12版本,並且編譯他,實際上編譯出來的Kernel你使用uname -a 看到的會是4.14.12

- 但若是有伴隨一些svn版本控管的檔案時,編譯出來有可能會是 4.14.12+

以上的差異點,當你編譯module要給別人使用時,別人的Kernel就會報錯,會有如下的訊息:
btn_driver: version magic '4.14.12+ SMP mod_unload ' should be '4.14.12 SMP mod_unload '

======================= 分隔線 =============================
因此要想清除掉svn的檔案,再作編譯Kernel的動作,可以在kernel 根目錄下,用下面的指令:
find . -name '.svn' | xargs rm -rf

清除掉svn檔案之後,再作編譯,就不會有以上的問題發生了~

沒有留言:

張貼留言