Ethernet

我的乙太網設備在 debian 中失去了

  • July 3, 2021

我的電腦上安裝了兩個作業系統,今天發生了一件奇怪的事情:我的乙太網設備在 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到usb,進入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,現在我的電腦中有三個ose而不是dual。 在此處輸入圖像描述

進入新安裝的debian,我用pppoeconf就可以上網了!也就是說win10和新安裝的debian10都可以上網!為什麼我的舊debian10不能辨識乙太網設備!

我在win10中下載firmware-realtek_20190114-2_all.deb到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

該軟體包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 文件中。

引用自:https://unix.stackexchange.com/questions/656239