安装 Debian squeeze 以太网后无法启动

安装 Debian squeeze 以太网后无法启动

安装 Debian 稳定版 (squeeze) 后,我发现 eth0 没有启动,当我使用“ifconfig eth0 up”启动它时,只配置了 IPv6。安装确实发生在通过隧道和 radvd 路由器启用 IPv6 的网络中。这让我认为它可能决定禁用 IPv4,不知道如何或为什么。

我已经在像这样的启用 IPv6 的网络中完成了许多安装,并且只要所有驱动程序和配置都正确,Debian(或 Ubuntu)就始终能够使用 IPv4。

主板是VIA e-900 mini-ITX。以太网是realtek 8168B设备:

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06) 

我非常确定硬件已被识别,因为“ifconfig -a”显示 eth0,“ifconfig eth0 up”将其调出并且 IPv6 可用。我还确保获取正确的固件,系统日志不会报告加载问题。安装期间网络运行良好,安装程序正在愉快地下载软件包。当 IPv4 随后正常工作时,我几乎做了安装时通常做的所有事情。

/etc/network/interfaces 如下所示:

auto lo
    iface lo inet loopback

auto eth0
iface eth0 inet static
    address 10.2.2.9
    netmask 255.255.255.0
    broadcast 10.2.2.255
    network 10.2.2.0
    gateway 10.2.2.1

我删除了网络(错误)管理器。尽管这并没有解决问题。

知道哪里出了问题吗?我是否忽略了一些可以修复此问题的特殊设置?

更新:为了说明清楚,它确实从网络上的 radvd 路由器获取 IP,我可以 ping6 2001:500:88:200::10 (example.com),我也可以通过它的 IPv6 地址 ssh 进入机器。所以很明显有什么东西阻止了网络在启动时出现。我想我必须检查是否有任何模块没有被加载。

更新 2:使用“ip”命令手动添加 IPv4 配置有效,然后 IPv4 也启动了。

答案1

我遇到了几乎相同的问题。唯一的区别是,它与默认的 squeeze amd 64 CD 安装内核 2.6 配合使用效果很好,并且与最新的 squeeze amd 64 内核 2.6 配合使用可以更新。如果我转到内核 3.x,我将无法获得 IPV4 地址。

它看起来与固件无关(在内核 2.6 上和不带内核时都可以工作,但在内核 3.x 上和不带内核时都不能工作)。此外,我尝试安装 realtek 提供的驱动程序,但也没有成功。

因此,我最终认为 Realtek 卡的工作方式和 Linux 内核 3.x 管理网络的方式之间存在一个错误。

如果我有足够的时间来管理我的所有网络,使其在没有 DHCP 的情况下工作,我会尝试在这个周末检查是否可以使其使用静态 IP。

最后,有点离题了,但这是我的观点。几年前,当我们购买主板时,我们必须选择声卡和网卡。如今,所有主板都提供声卡和网卡,我们经常会遇到这些芯片的问题(在 Linux 世界中)。所以我只是想说我真的更喜欢自己选择所有组件……

答案2

我认为问题在于http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=611954所以它特定于 realtek 以太网设备。我必须将“ifup eth0”添加到 init 脚本(目前为 rc.local)才能在启动时完全启动网络。

所以它似乎是 firmware-realtek 包中的一个错误,甚至可能是上游的错误。

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=610302建议尝试更新的内核版本。这有点帮助,因为它将加载固件补丁,但问题仍然存在。

举例来说,内核 2.6.32-5:

r8169 0000:05:00.0: firmware: requesting rtl_nic/rtl8168e-1.fw
r8169 0000:05:00.0: eth0: link down
r8169 0000:05:00.0: eth0: link down
ADDRCONF(NETDEV_UP): eth0: link is not ready
r8169 0000:05:00.0: eth0: link up
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

在这种情况下,内核尝试加载 rtl8168e-1.fw 并成功。我认为它在 initramfs 方面没有成功,这就是为什么它在运行“ifup”时稍后加载它。

内核 3.2.0-0.bpo.2:

r8169 0000:05:00.0: eth0: link down
r8169 0000:05:00.0: eth0: link down
ADDRCONF(NETDEV_UP): eth0: link is not ready
r8169 0000:05:00.0: eth0: link up
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

在这种情况下,固件补丁 rtl8168e-1.fw 在启动期间成功加载,但网络仍然没有出现。

要明确的是,如果您运行“ifup ethX”之类的程序,两个内核版本都具有有效的网络连接。

我想我必须忍受这种工作直到这个问题被解决为止。

相关内容