是否可以在 Linux 中禁用并重新启用板载 PCI 设备?

是否可以在 Linux 中禁用并重新启用板载 PCI 设备?

因此,正如标题所示,有没有办法可以使用终端禁用并重新启用 Linux 上的 PCI 设备或板载设备,就像 Windows 设备管理器中的禁用和启用设备功能一样。我想在每次 PC 启动时都这样做,因为板载以太网控制器存在问题,导致它停止工作,直到我使用设备管理器(在 Windows 上)禁用并重新启用它,但对于 Linux,我必须启动到恢复模式并启用网络才能使板载以太网控制器工作。
以下是有关我的 PC 的一些基本技术信息,以防它们可能有用:
PC 型号:Dell Optiplex 7010 迷你塔式第三代
Linux 发行版:ubuntu linux 20.04 lts 以 uefi 启动模式启动。
以太网控制器名称:Intel(R) 82579LM 千兆网络连接(由 Windows 设备管理器报告)

Dmesg 命令返回“e1000e:设备探测失败,错误 -3”

我尝试过禁用并重新启用 e1000e 模块,但没有成功,还尝试过进入 /sys/dev/pci/network/enabled(其中 network 是板载以太网控制器的 ID)并回显 0 和 1,但仍然没有成功。
我还尝试过重新安装 Linux 发行版并从源代码构建驱动程序(英特尔网站上的 e1000e 驱动程序),但仍然没有成功。我还尝试过 Google 上写的许多解决方案,但也没有成功。

lspci -vv命令输出如下设备信息:

00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) (rev 04)
    DeviceName:  Onboard LAN
    Subsystem: Dell 82579LM Gigabit Network Connection (Lewisville)
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pin A routed to IRQ 27
    Region 0: Memory at f7c00000 (32-bit, non-prefetchable) [size=128K]
    Region 1: Memory at f7c38000 (32-bit, non-prefetchable) [size=4K]
    Region 2: I/O ports at f060 [size=32]
    Capabilities: [c8] Power Management version 2
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
    Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Address: 00000000fee00298  Data: 0000
    Capabilities: [e0] PCI Advanced Features
        AFCap: TP+ FLR+
        AFCtrl: FLR-
        AFStatus: TP-
    Kernel driver in use: e1000e
    Kernel modules: e1000e

相关内容