我刚刚在一台新 PC 上安装了 Ubuntu Server (Bionic Beaver)。
似乎我的互联网连接根本不起作用(ping Google 不起作用,以太网端口上的橙色 LED 指示灯不断亮起),所以我对 Google 做了一些研究(通过另一台 PC ......)。
我发现这可能是一个不兼容的驱动程序版本。
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) -> LINUX驱动对于最高 4.15 的内核并下载了该软件。我得到了什么?驱动程序版本r8168-8.046.00。奇怪,因为这个版本没有出现在上面的网站上。相反,启动板站点(上面的链接)向我显示了几个版本,其中最新的是r8168-dkms 8.045.08-2 in amd64 (Proposed)/(Released)。所以我还通过单击它下载了(已发布)版本 -> 可下载文件 -> 下载.deb文件。我不认为这是正确的文件,因为文件夹结构很奇怪:它包含两个目录“控制”和“数据”。所以我认为这仅适用于 Debian,不适用于 Ubuntu,因此不适用于我。
所以我也从这里下载了源文件:https://launchpad.net/ubuntu/+source/r8168/8.045.08-2我选择了最大的文件,大约1.2MB(幸运的是,因为我下载的另一个文件,8.046文件,大小差不多,所以我觉得被证实了)。我仍然不明白的一件事是为什么包含的 README 文件列出了大量 NIC:这是为 RealTek RTL8168B/8111B、RTL8168C/8111C、RTL8168CP/8111CP、RTL8168D/8111D、RTL8168DP/8111DP 发布的 Linux 设备驱动程序,和具有 PCI-Express 接口的 RTL8168E/8111E 千兆以太网控制器。,但我的Realtek 8111HS不包括在内,尽管启动板站点再次明确列出了我的 NIC。
因此,我将采取以下步骤来解决我的问题:
- 从此处获取“r8168_8.045.08.orig.tar.bz2”文件,将其放入 U 盘,将 U 盘插入 Ubuntu PC,将文件复制到根文件夹(解压缩)并以 root 权限执行autorun.sh(或者基本上,按照 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