我在使用Ubuntu Linux內核正確編譯此特定內核修補程序時遇到了一些麻煩。Linux內核修補問題
該修補程序來自一個名爲SCST的軟件,它是Linux的iSCSI目標。當我運行patch -p1 < put_page_callback-2.6.32.patch
時,修補程序加載正常,但是當我編譯時,大約需要一個小時左右,然後失敗並返回這些錯誤。
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:63: error: redefinition of '__kcrctab_net_get_page_callback'
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:14: note: previous definition of '__kcrctab_net_get_page_callback' was here
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:63: error: redefinition of '__kstrtab_net_get_page_callback'
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:14: note: previous definition of '__kstrtab_net_get_page_callback' was here
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:63: error: redefinition of '__ksymtab_net_get_page_callback'
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:14: note: previous definition of '__ksymtab_net_get_page_callback' was here
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:66: error: redefinition of '__kcrctab_net_put_page_callback'
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:17: note: previous definition of '__kcrctab_net_put_page_callback' was here
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:66: error: redefinition of '__kstrtab_net_put_page_callback'
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:17: note: previous definition of '__kstrtab_net_put_page_callback' was here
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:66: error: redefinition of '__ksymtab_net_put_page_callback'
/root/d1/development/kernel/lucid/source/net/ipv4/tcp_zero_copy.c:17: note: previous definition of '__ksymtab_net_put_page_callback' was here
和我有absolutley不知道發生了什麼事情。我不是任何方式的內核開發者,我只是試圖獲得這個補丁和另一個工作正常。所以我可以讓這個iSCSI目標全速運行。
任何想法我可以做什麼?
**更新**
我下面從https://help.ubuntu.com/community/Kernel/Compile的insructions。更具體地說,該頁面上的鏈接轉到http://blog.avirtualhome.com/2010/05/05/how-to-compile-a-ubuntu-lucid-kernel/。
我已經使用這些說明完成了一些編譯,我的問題要麼是我忘了應用補丁或者補丁沒有用,而是直到現在他們總是完成。這個新的補丁有些東西搞砸了。
至於爲什麼iSCSI目標搞亂了網絡部分,它顯然與網絡性能有關。當我在沒有補丁的情況下編譯目標軟件時,它會對性能表示不滿。目標網站是http://scst.sourceforge.net/index.html
看起來好像可能有一個壞的#define守衛在某個地方,並且它重新定義了一些符號。你能告訴我們你如何建立? iSCSI目標不應該混淆任何ipv4的東西,這就是爲什麼我很好奇。還有哪些Linux發行版是你的? (我曾遇到過問題,人們告訴我我的內核不能正確構建在11.04 ubuntu上,仍然不確定爲什麼,因爲預編譯版本引導良好) –
我會在問題中寫入更多,但基本知識是:Ubuntu 2.6.32-34.74從Ubuntu GIT回購,它基於Lucid Lynx。 – ianc1215
只是爲了踢我嘗試應用2.6.33的補丁,而它使情況變得更糟。我的想法是,另一個可能更接近我的內核,其次版本比2.6.32的SCST補丁生成的更高。但就像我說的那樣沒用。所以我使用我的虛擬機快照向後退出。 – ianc1215