我刚刚在新电脑上安装了 Ubuntu Server(Bionic Beaver)。
好像我的互联网连接根本不起作用(ping Google 不起作用并且以太网端口上的橙色 LED 一直亮着),所以我在 Google 上进行了一些研究(通过另一台电脑......)。
我发现这可能是驱动程序版本不兼容。Ubuntu
18.04 LTS 附带Linux 内核 4.15(https://wiki.ubuntuusers.de/Bionic_Beaver/).
我的网卡:Realtek 8111HS
由于我对驱动程序和类似的东西完全没有经验,因此我访问了一些网页并发现了以下内容:
https://launchpad.net/ubuntu/bionic/+package/r8168-dkms 它似乎是一个较旧的驱动程序版本,因为它说“此驱动程序仅应用于内核驱动程序 r8169 尚不支持的设备。”
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/realtek?h=v4.15确实,(我认为)这表明内核 4.15 附带了较新的 8169 驱动程序版本
https://medium.com/@lgobinath/no-ethernet-connection-in-ubuntu-16-04-linux-mint-18-with-realtek-rtl8111-8168-8411-7ae2779dc9b8这篇文章讲的是同样的问题(或多或少)
https://www.realtek.com/en/component/zoo/advanced-search/72?Itemid=276这是Realtek 软件下载网站上,不幸的是,我的网卡没有列出,但只有一些其他的,如RTL8111F,RTL8111G和RTL8111GUS。但是,软件按钮会将我带到这个下载网站:
https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software所以我选择Unix(Linux)->适用于内核高达 4.15 的 LINUX 驱动程序并下载了软件。我得到了什么?驱动程序版本r8168-8.046.00。奇怪的是,这个版本没有出现在上面的网站上。相反,启动板网站(上面的链接)向我展示了几个版本,其中最新版本是r8168-dkms 8.045.08-2 适用于 amd64(建议)/(已发布)。所以我还下载了(已发布)版本,点击它 -> 可下载文件 -> 下载.deb文件。但我不认为那是正确的文件,因为文件夹结构很奇怪:它包含两个目录“control”和“data”。所以我认为这只适用于 Debian,不适用于 Ubuntu,因此也不适合我。
所以我还从这里下载了源文件:https://launchpad.net/ubuntu/+source/r8168/8.045.08-2我选择了最大的文件,大约 1.2MB(幸运的是,因为我下载的另一个文件 8.046 的大小也差不多,所以我觉得很确定)。我仍然不明白的一件事是为什么附带的 README 文件列出了大量的 NIC:这是针对具有 PCI-Express 接口的 RealTek RTL8168B/8111B、RTL8168C/8111C、RTL8168CP/8111CP、RTL8168D/8111D、RTL8168DP/8111DP 和 RTL8168E/8111E 千兆以太网控制器发布的 Linux 设备驱动程序。,但我的Realtek 8111HS虽然启动板站点再次明确列出了我的 NIC,但并未包含在内。
因此,我要采取以下步骤来解决我的问题:
- 获取“r8168_8.045.08.orig.tar.bz2”文件从这里,将其放入 USB 驱动器,将驱动器插入 Ubuntu PC,将文件复制到根文件夹(解压)并执行自动运行具有 root 权限(或者基本上按照 README 中提到的进行操作)。
是这样吗?之后一切都会好起来吗?我还需要修补任何东西、卸载旧驱动程序或重新加载任何东西吗?这样行得通吗?我的假设正确吗?
我知道,这个问题可能有点长,但我认为准确性比保持答案简短和(可能)忘记一些事情更重要。
编辑:刚刚发现 v8.046 是 Ubuntu Cosmic 的一部分。此外,我通过/etc/netplan
使用 DHCPv4编辑 yaml 文件来配置我的网络正如这里所述。(并具有正确的缩进!)
的结果lspci -nnk | grep 0200 -A3
:
02:00:0 Ethernet controller [<red>0200</red>]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Subsystem: Gigabyte Technology Co., Ltd. Onboard Ethernet [1458:e000]
Kernel driver in use: 8169
Kernel modules: r8169
Netplan 配置文件(YAML):
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
addresses: []
dhcp4: true
答案1
我认为缩进不正确。请尝试:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
接下来是:
sudo netplan generate
sudo netplan apply
假设没有错误或警告,重新启动后您就应该可以连接了。
参考:/usr/share/doc/netplan.io/examples/dhcp.yaml