我在使用我的Ubuntu 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
我绝对不知道发生了什么事 . 我不是任何方式的内核开发者,我只是想获得这个补丁和另一个工作正常 scst_exec_req_fifo-2.6.32.patch
. 所以我可以让这个iSCSI目标全速运行 .
知道我能做什么吗?
更新
我正在遵循https://help.ubuntu.com/community/Kernel/Compile的规定 . 更具体地说,该页面上的链接转到http://blog.avirtualhome.com/2010/05/05/how-to-compile-a-ubuntu-lucid-kernel/ .
我已经使用这些说明做了一些编译,我的问题是我忘了应用补丁或补丁没有采取,但到目前为止他们总是完成 . 这个新补丁的东西搞砸了 .
至于为什么iSCSI目标正在搞乱网络部分,它显然与网络性能有关 . 当我编译没有补丁的目标软件时,它抱怨性能不会很好 . 该目标的网站是http://scst.sourceforge.net/index.html
1 回答
从kernel.org获取适当的内核版本之后,应该遵循标准的内核编译方法
以下是按顺序执行的步骤
将内核解压缩到一个文件夹
应用补丁
sudo make menuconfig,保存默认的.config文件
sudo make
sudo make modules_install
sudo make install
cd / boot
sudo mkinitramfs -o initrd.img-(您的版本在这里)(您的版本再次)
sudo update-grub
您现在应该在启动选项中看到新内核,它应该(希望)启动 .