我在 HP Server Blade ProLiant BL25p G1 上运行 ubuntu
在将发行版升级到 oneiric 之后,我在终端上收到了这些消息。
如果我使用 sudo ifconfig eth0 down 关闭 eth0 接口,我就能看到我写的内容。
这是我的 dmesg 末尾的内容
如果我以恢复模式启动我会收到此消息
如果我重新启动旧内核的机器,它就能正常工作,有什么建议可以解决这个问题吗?
答案1
好吧,虽然不是很明显,但看起来像是一个内核错误。在 launchpad、bugzilla、arch 中都有类似的报告...
Ubuntu(最新版)https://bugs.launchpad.net/ubuntu/+source/linux/+bug/545334
好像出现多种网卡的问题,我没找到解决办法。
最有帮助的错误报告可能就在这里,在 Arch
https://bugs.archlinux.org/task/19369
没有为您提供解决方案,但是提供了各个发行版中的各种错误报告的详细列表。
我建议你向 kernel.org 提交错误报告
有关 kernel.org 指南,请参阅:
http://www.kernel.org/doc/man-pages/reporting_code_bugs.html
http://www.kernel.org/pub/linux/docs/lkml/reporting-bugs.html
同时继续使用旧内核并查看下一个内核是否修复了该错误。
答案2
在 Launchpad 中报告错误https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1005699,请参阅第 24 项以了解修复方法。讨论内容涉及内核中的 tigon3 驱动程序问题。3.0.24 及以下树存在此错误,但由于 Ubuntu 现在支持 3.0.25-40 内核,因此该错误已修复。第 20 项详细介绍了如何通过从开发内核 3.4、3.3 和 3.2 开始研究来发现此问题,以及如何发现 tg3_stop_block_error 的含义。这是 TSO 的问题。TSO 代表 TCP 分段卸载。
在 3.0.25 之前的内核中发生的事情解释如下马特·卡尔森这里
在最早支持 TSO 的设备上,TSO 是通过固件实现的。但是 TSO 不能与 ASF 管理固件共存。tg3 驱动程序通过调用 tg3_get_eeprom_hw_cfg() 来确定是否启用了 ASF,该函数会检查 NIC 内存的特定位。提交 dabc5c670d3f86d15ee4f42ab38ec5bd2682487d,标题为“tg3:移动 TSO_CAPABLE 分配”,意外地将确定 TSO 功能的代码移到了调用 tg3_get_eeprom_hw_cfg() 之前。因此,驱动程序在获得做出决定所需的所有数据之前就试图确定 TSO 功能。此补丁通过在调用 tg3_get_eeprom_hw_cfg() 后重新访问和重新评估决定来修复该问题。
sudo apt-get dist-upgrade 应该可以解决问题。