![是否可以在 Linux 中禁用并重新启用板载 PCI 设备?](https://linux22.com/image/781967/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Linux%20%E4%B8%AD%E7%A6%81%E7%94%A8%E5%B9%B6%E9%87%8D%E6%96%B0%E5%90%AF%E7%94%A8%E6%9D%BF%E8%BD%BD%20PCI%20%E8%AE%BE%E5%A4%87%EF%BC%9F.png)
因此,正如标题所示,有没有办法可以使用终端禁用并重新启用 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