我現在正在開發內核模塊,並且構建時間開始得到我的皮膚。作爲副作用,我在構建過程中會遇到太多「咖啡」中斷。試圖找到我的機器使用shell腳本所需的所有內核模塊
所以我一直在尋找一種方法來構建我所需要的平臺。 「簡而言之,Linux內核」的第7章和第8章詳細介紹瞭如何手動完成該操作。它的一個很好的閱讀:http://www.kroah.com/lkn/
但雖然我瞭解的東西,這仍然是很多調整,使這項工作。
2.6.32和更高版本的內核添加了一個新的目標make localmodconfig
。通過lsmod
掃描並適當更改.config。所以我想我找到了我的「自動化」。但是這個perl腳本也有一些問題。
這個線程描述的問題:https://bbs.archlinux.org/viewtopic.php?pid=845113
還有一個建議的解決方案,這顯然曾爲別人,是運行腳本,而不是直接使用make的目標。
雖然對我來說,使localmodconfig根本不起作用。因爲以下的:
make clean
make mrproper
cp /boo/config-'uname -r' .config
make localmodconfig
,並與
vboxguest config not found!!
nf_defrag_ipv6 config not found!!
vboxsf config not found!!
vboxvideo config not found!!
的事情是我的內核的開發環境是停止在VirtualBox。這些vbox模塊是在我選擇安裝「virtualbox guest addtion」時安裝的。
而netfilter模塊可能是一個分佈式特定模塊(很多netfilter模塊不是主線內核的一部分,所以它對我來說不是一個衝擊),它不包含在主線內核中。
現在,解決方法是顯然卸載這些模塊並再次嘗試。但我在考慮是否存在streamline_config.pl
的修補程序,如果他/她想要,它可以使用戶排除某些模塊。問題是我有零有關perl的知識,我喜歡這種方式。
所以我在問題簡而言之
修補
streamline_config.pl
所以我可以給模塊名作爲參數,它會從處理配置文件排除列表。腳本位於kernel.org
編輯:刪除了有關perl腳本沒有運行的東西。正如mugen kenichi所指出的(我可以成爲多麼愚蠢?)。但由於源碼樹下沒有一些模塊代碼,使得
localmodconfig
仍然不工作。修補streamline_config.pl
仍然有效的要求。
您不能運行帶'sh'的Perl腳本。試試'perl',你不會得到那些'我的:命令未找到的'錯誤和perl錯誤或警告。 – 2012-07-13 12:27:23
看起來我是世界上最愚蠢的人。我怎麼能這樣做:) – Aftnix 2012-07-13 12:30:35
腳本是否真的失敗?從代碼看,它只是打印錯誤,但如果模塊的代碼不在樹中則不會失敗。見[第375行](http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=blob;f=scripts/kconfig/streamline_config.pl;h=bccf07ddd0b67a0e2f761fd5721f274a49bf9bbb ; hb = HEAD#l375) – 2012-07-13 12:49:48