Linux内核修补问题

时间:2011-08-20 21:35:12

标签: linux-kernel compiler-errors

我在使用我的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 个答案:

答案 0 :(得分:0)

从kernel.org获取适当的内核版本后,您应该遵循标准的内核编译方法

以下是按顺序执行的步骤

  1. 将内核解压缩到文件夹
  2. 应用补丁
  3. sudo make menuconfig,保存默认.config文件
  4. sudo make
  5. sudo make modules_install
  6. sudo make install
  7. cd / boot
  8. sudo mkinitramfs -o initrd.img-(您的版本在这里)(您的版本)
  9. sudo update-grub
  10. 您现在应该在启动选项中看到新内核,它应该(希望)启动。