我的以太网设备在 Debian 中丢失

我的以太网设备在 Debian 中丢失

我的电脑上安装了两个操作系统,今天发生了一件奇怪的事情:我的以太网设备在 debian 中丢失了!从grub进入win10,可以通过pppoe连接互联网。
从 grub 进入 debian10 :

ifconfig

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 20  bytes 1120 (1.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20  bytes 1120 (1.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



sudo lshw -C network
  *-network UNCLAIMED       
       description: Ethernet controller
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:06:00.0
       version: 15
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list
       configuration: latency=0
       resources: ioport:f000(size=256) memory:fcd04000-fcd04fff memory:fcd00000-fcd03fff

ipconfig /all我从win10中获取mac地址信息--xx:xx:70:c2:2c:4a 。

sudo pppoeconf  xx:xx:70:c2:2c:4a
Cannot find device "xx:xx:70:c2:2c:4a"
ioctl(SIOCGIFHWADDR): No such device
Cannot find device "xx:xx:70:c2:2c:4a"
Plugin rp-pppoe.so loaded.
/usr/sbin/pppd: unknown host: nic-00

用win10下载r8168-dkms_8.048.03-1~bpo10+1_all.deb到U盘,进入debian10。

sudo mount /dev/sdc  /mnt
sudo dpkg -i  /mnt/r8168-dkms_8.048.03-1~bpo10+1_all.deb

重新安装后:

sudo pppoeconf  xx:xx:70:c2:2c:4a 
#input account name and password
sudo pon dsl-provier
plugin rp-pppoe.so load
/usr/sbin/pppd:unknown host nic-00

就在昨天,我在 debian10 中可以通过 pppoe 连接互联网,那么如何解决呢?

如果 Windows 处于休眠状态,它可能会使该卡进入在 Debian 中无法使用的状态。解决方案可能是确保 Windows 关闭,而不是休眠。
@Nikita Kipriyanov,我确信它与 Windows 无关。
在旧的 debian10 无法识别以太网设备后,我安装了一个相同版本的新 debian10,现在我的电脑中有三个操作系统而不是两个操作系统。 在此输入图像描述

进入新安装的debian,我可以通过pppoeconf连接互联网!也就是说,win10和新安装的debian10都可以连接互联网!为什么我的旧debian10无法识别以太网设备!
firmware-realtek_20190114-2_all.deb在win10中下载到USB并在旧的debian10中将其dpkg,没有任何改变!
所有驱动程序均显示:

modinfo r8169
filename:       /lib/modules/5.10.0-0.bpo.7-amd64/kernel/drivers/net/ethernet/realtek/r8169.ko
firmware:       rtl_nic/rtl8125b-2.fw
firmware:       rtl_nic/rtl8125a-3.fw
firmware:       rtl_nic/rtl8107e-2.fw
firmware:       rtl_nic/rtl8107e-1.fw
firmware:       rtl_nic/rtl8168fp-3.fw
firmware:       rtl_nic/rtl8168h-2.fw
firmware:       rtl_nic/rtl8168h-1.fw
firmware:       rtl_nic/rtl8168g-3.fw
firmware:       rtl_nic/rtl8168g-2.fw
firmware:       rtl_nic/rtl8106e-2.fw
firmware:       rtl_nic/rtl8106e-1.fw
firmware:       rtl_nic/rtl8411-2.fw
firmware:       rtl_nic/rtl8411-1.fw
firmware:       rtl_nic/rtl8402-1.fw
firmware:       rtl_nic/rtl8168f-2.fw
firmware:       rtl_nic/rtl8168f-1.fw
firmware:       rtl_nic/rtl8105e-1.fw
firmware:       rtl_nic/rtl8168e-3.fw
firmware:       rtl_nic/rtl8168e-2.fw
firmware:       rtl_nic/rtl8168e-1.fw
firmware:       rtl_nic/rtl8168d-2.fw
firmware:       rtl_nic/rtl8168d-1.fw
license:        GPL
softdep:        pre: realtek
description:    RealTek RTL-8169 Gigabit Ethernet driver

ls /lib/firmware/rtl_nic
rtl8105e-1.fw  rtl8107e-1.fw  rtl8125b-2.fw  rtl8168d-2.fw  rtl8168e-3.fw  rtl8168fp-3.fw  rtl8168g-3.fw  rtl8402-1.fw
rtl8106e-1.fw  rtl8107e-2.fw  rtl8153a-3.fw  rtl8168e-1.fw  rtl8168f-1.fw  rtl8168g-1.fw   rtl8168h-1.fw  rtl8411-1.fw
rtl8106e-2.fw  rtl8125a-3.fw  rtl8168d-1.fw  rtl8168e-2.fw  rtl8168f-2.fw  rtl8168g-2.fw   rtl8168h-2.fw  rtl8411-2.fw

没有以太网设备,例如enp*s*.

ifconfig -a
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 20  bytes 1120 (1.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20  bytes 1120 (1.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uname -a
Linux debian 5.10.0-0.bpo.7-amd64 #1 SMP Debian 5.10.40-1~bpo10+1 (2021-06-04) x86_64 GNU/Linux

答案1

该软件包r8168-dkms_8.048.03-1~bpo10+1_all.deb包含文件/etc/modprobe.d/r8168-dkms.conf,该文件将告诉内核加载该模块,而不是特定卡型号的r8168默认模块。r8169

该软件包r8168仅包含源代码形式的模块:为了使其可用,该dkms软件包将使用该实用程序为您正在使用的每个内核版本自动构建该模块。

(这是该包的内容列表)

linux-headers但只有当您安装了与您安装的确切内核版本相匹配的编译器和软件包时,DKMS 才能完成其工作。您可能没有linux-headers安装适合当前内核的软件包,或者当 DKMS 尝试r8168为您自动构建模块时出现了问题。

您应该通过运行 来验证 DKMS 是否处于正确状态来开始故障排除sudo dkms status

如果内核模块已正确构建,则dkms status命令的输出应包含如下行:

r8168, 8.048.03, <your current kernel version>, amd64: installed

<your current kernel version>字段应与 的输出完全匹配uname -r

installed末尾的单词表示实际的二进制模块已成功构建并插入到当前内核的/lib/modules/$(uname -r)/...目录树中。其他可能的状态字是,built这意味着二进制模块已成功构建,但尚未可供内核使用,added这意味着模块的源代码已安装,但二进制模块尚未构建。

您应该验证是否linux-headers安装了适当的软件包,然后通过运行以下命令重试构建模块:

sudo dkms install r8168/8.048.03

如果报告问题,可以在 中找到构建过程的更详细日志以及在此过程中遇到的任何错误消息/var/lib/dkms/r8168/8.048.03/$(uname -r)/x86_64/log/make.log

如果您想尝试使用默认r8169驱动程序,则需要卸载该r8168-dkms_8.048.03-1~bpo10+1_all.deb软件包,或将其重命名/etc/modprobe.d/r8168-dkms.conf为 eg/etc/modprobe.d/r8168-dkms.conf.disabled并运行sudo update-initramfs -u以将更改传播到当前的 initramfs 文件中。

答案2

检查当前状态。

debian@debian:~$ sudo dkms status
r8168, 8.048.03: added
debian@debian:~$  sudo dkms install r8168/8.048.03
Error! Your kernel headers for kernel 5.10.0-0.bpo.7-amd64 cannot be found.
Please install the linux-headers-5.10.0-0.bpo.7-amd64 package,
or use the --kernelsourcedir option to tell DKMS where it's located

我将linux-headers-5.10.0-0.bpo.7-amd64_5.10.40-1~bpo10+1_amd64.deb下载到USB中,然后挂载USB进行安装:

sudo dpkg -i  linux-headers-5.10.0-0.bpo.7-amd64_5.10.40-1~bpo10+1_amd64.deb
Selecting previously unselected package linux-headers-5.10.0-0.bpo.7-amd64.
(Reading database ... 269528 files and directories currently installed.)
Preparing to unpack .../linux-headers-5.10.0-0.bpo.7-amd64_5.10.40-1~bpo10+1_amd64.deb ...
Unpacking linux-headers-5.10.0-0.bpo.7-amd64 (5.10.40-1~bpo10+1) ...
dpkg: dependency problems prevent configuration of linux-headers-5.10.0-0.bpo.7-amd64:
 linux-headers-5.10.0-0.bpo.7-amd64 depends on linux-headers-5.10.0-0.bpo.7-common (= 5.10.40-1~bpo10+1); however:
  Package linux-headers-5.10.0-0.bpo.7-common is not installed.
 linux-headers-5.10.0-0.bpo.7-amd64 depends on linux-kbuild-5.10 (>= 5.10.40-1~bpo10+1); however:
  Version of linux-kbuild-5.10 on system is 5.10.24-1~bpo10+1.

dpkg: error processing package linux-headers-5.10.0-0.bpo.7-amd64 (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-headers-5.10.0-0.bpo.7-amd64

现在下载linux-headers-5.10.0-0.bpo.5-amd64_5.10.24-1~bpo10+1_amd64.deb 并安装它。

sudo dpkg -i  linux-headers-5.10.0-0.bpo.5-amd64_5.10.24-1~bpo10+1_amd64.deb
sudo mv  /etc/modprobe.d/r8168-dkms.conf   /etc/modprobe.d/r8168-dkms.conf.disabled
sudo update-initramfs -u

重启:

ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:e0:70:c2:2c:4a brd ff:ff:ff:ff:ff:ff

我可以连接互联网!

相关内容