我在办公室的台式电脑上安装了 Ubuntu 14.10,但网络出了问题。问题是我根本无法让它连接到网络,因为它会显示 WiFi 连接图标并开始连接,当它意识到没有 WiFi 时,它会连接到有线连接。
我尝试重新安装安装时附带的网络包,但没有任何变化。由于这是辅助系统,主系统是 Windows 7,因此我可以从中提问。我的主板是 Gigabyte 970A-DS3P,带有 Realtek 以太网控制器。
lshw
网络如下:
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:03:00.0
logical name: eth0
version: 06
serial: fc:aa:14:21:17:62
size: 100Mbit
capacity: 1Gbit
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl8168e-3_0.0.4 03/27/12 latency=0 link=yes multicast=yes port=MII speed=100Mbit
resources: irq:73 ioport:d000(size=256) memory:fe800000-fe800fff memory:d0000000-d0003fff
ifconfig:
eth0
Link encap:Ethernet HWaddr fc:aa:14:21:17:62
inet6 addr: fe80::feaa:14ff:fe21:1762/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:50 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3572 (3.5 KB) TX bytes:180 (180.0 B)
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:159 errors:0 dropped:0 overruns:0 frame:0
TX packets:159 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11265 (11.2 KB) TX bytes:11265 (11.2 KB)
$ ls -al /etc/NetworkManager/system-connections
total 12
drwxr-xr-x 2 root root 4096 феб 28 15:29 .
drwxr-xr-x 6 root root 4096 феб 28 15:29 ..
-rw------- 1 root root 218 феб 28 15:29 Wired connection 1
答案1
经过几天的折磨,我终于解决了这个问题。以下是解决方法:
获取要求
要构建和安装驱动程序,我们需要内核头文件和构建工具(如 gcc)。如果您有任何类型的连接,请使用以下命令从终端下载它们:sudo apt-get install build-essential
否则,请从其他地方下载它们并使用某些媒体将它们下载到计算机上。
获取驱动程序
现在,请前往 Realtek 官方下载页面,获取 RTL8111/RTL8168 以太网卡的 Linux/UNIX 驱动程序,并从Realtek 下载页面解压档案
该驱动程序已压缩到存档中。因此,请使用以下命令将其解压缩:tar xfvj r8168-8.025.00.tar.bz2
注意:请不要忘记
r8168-8.025.00.tar.bz2
用您下载的驱动程序版本替换!老司机加入黑名单
我们必须将旧驱动程序 (r8169) 列入黑名单,以阻止系统加载它。为此,只需设置一个新条目,其中/etc/modprobe.d/blacklist.conf
将显示以下内容:blacklist r8169
或者直接在终端中输入
echo "blacklist r8169″ | sudo tee -a /etc/modprobe.d/blacklist.conf
构建并安装新驱动程序
现在,安装新驱动程序的所有要求都已完成。现在让我们更改驱动程序目录,该目录我们之前已通过几个步骤解压:cd r8168-8.025.00
注意:再次提醒,请不要忘记更改
r8168-8.025.00
为您下载的版本。现在我们唯一要做的就是构建驱动程序并安装它。要构建它,只需输入:
make clean modules
几秒钟后(取决于您的 CPU),驱动程序已构建,您可以使用以下命令安装它:
sudo make install
欢迎 r8168
我们需要让系统知道 r8168 驱动程序。使用以下命令depmod -a
你重建内核模块依赖关系,并使用
sudo modprobe ./src/r8168.ko
将新的内核模块(驱动程序)插入内核。
使其可用于启动 要始终使用新模块,您必须创建一个新的 initrd 启动文件。只需执行
sudo update-initramfs -u -k $(uname -r)
在终端中。在这里我们借助命令来创建 initrd 文件
uname -r
,这使我们能够获取实际运行的内核的版本。否则,您可以将模块添加到
/etc/modules
:只需添加一行r8168
即可在启动后自动加载驱动程序。您只需一个命令即可完成此操作:echo "r8168″ | sudo tee -a /etc/modules
重启后,您可以使用以下命令检查是否加载了正确的驱动程序:
lspci -v
使用此命令,您应该在列表中找到您的 RTL8111/RTL8168 网卡和附加行Kernel driver in use: r8168
。
指南摘自这一页。