我一直在 Arch Linux 上工作,99% 的时间我通过 WLAN 连接到互联网,但有时我需要使用以太网连接,所以今天我看到了一些奇怪的东西。我的 eth0 设备已关闭,无法启动。我试过
# ip link set eth0 up
# ifconfig eth0 up
但在上述任何命令ip link
显示后:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
link/ether 8c:a9:82:01:13:6e brd ff:ff:ff:ff:ff:ff
5: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
link/ether 14:da:e9:0c:a9:d6 brd ff:ff:ff:ff:ff:ff
输出lspci -v
:
08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
Subsystem: ASUSTeK Computer Inc. U6V/U31J laptop
Flags: bus master, fast devsel, latency 0, IRQ 48
I/O ports at 8000 [size=256]
Memory at d3804000 (64-bit, prefetchable) [size=4K]
Memory at d3800000 (64-bit, prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: r8168
输出dmesg | grep r8168
:
[ 7.642820] r8168 Gigabit Ethernet driver 8.032.00-NAPI loaded
[ 7.642964] r8168 0000:08:00.0: irq 48 for MSI/MSI-X
[ 7.798226] r8168: This product is covered by one or more of the following patents: US5,307,459, US5,434,872, US5,732,094, US6,570,884, US6,115,776, and US6,327,625.
[ 7.798232] r8168 Copyright (C) 2012 Realtek NIC software team <[email protected]>
[ 19.263312] r8168: eth0: link down
[ 404.826781] r8168 Gigabit Ethernet driver 8.032.00-NAPI loaded
[ 404.827275] r8168 0000:08:00.0: irq 48 for MSI/MSI-X
[ 404.981486] r8168: This product is covered by one or more of the following patents: US5,307,459, US5,434,872, US5,732,094, US6,570,884, US6,115,776, and US6,327,625.
[ 404.981491] r8168 Copyright (C) 2012 Realtek NIC software team <[email protected]>
[ 405.011797] r8168: eth0: link down
输出dmesg | grep eth0
:
[ 7.798230] eth0: Identified chip type is 'RTL8168E/8111E'.
[ 19.263312] r8168: eth0: link down
[ 19.263709] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 404.981490] eth0: Identified chip type is 'RTL8168E/8111E'.
[ 405.011797] r8168: eth0: link down
[ 405.012293] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
答案1
看来 RealTek 8168B 在 Debian Squeeze 上有问题。尝试一下:
如果您遇到网络接口无法与 RealTek 8168 兼容的问题,这可能会有所帮助并提供见解(即 Realtek 固件问题): https://serverfault.com/questions/384165/after-installing-debian-squeeze-ethernet-does-not-come-up
如果您遇到内核问题,甚至没有加载 RealTek 8168 的正确模块 = 驱动程序,这可能会提供必要的洞察(即硬件检测问题): http://djlab.com/2010/10/fixing-rtl8111-8168b-driver-debian-ubuntu/
答案2
我在同一适配器上遇到过一些类似的问题,原因不明。唯一的解决方案是关闭机器电源,仅重新启动、卸载模块或通过/sys
接口进行各种“重置”都无法解决问题。
安装从 RealTek 下载的驱动程序(而不是普通内核中包含的驱动程序)似乎会导致问题较少发生。