首页 > 解决方案 > 重新接通交流电源后以太网端口不工作

问题描述

我有一个运行yocto嵌入式系统的设备。Super Capacitors(supercap)当突然关闭交流电源时,设备必须提供几分钟的备份。请注意,当设备开启时Supercap,外围设备电源会被切断,以便为 CPU 提供更多时间以安全关闭。

在以下情况下,以太网端口不工作(甚至端口上的 LED 也不闪烁):

注意:r8169内核驱动程序用于以太网。

有一些建议可以删除和插入r8169驱动程序,但驱动程序是内核中的一个内置模块,我觉得这不是解决问题的正确方法。应该有一些初始化/配置来解决这个问题。

我还尝试了几个命令,例如“ifconfig enp2s0 up/down”,但没有任何结果。

编辑1 :从目录unbind/bind中的驱动程序对设备执行以下步骤/sys/bus/pci/drivers/r8169

编辑 2

这是lspci -v -kn执行后显示的有关设备的内容unbind

02:00.0 0200: 10ec:8168 (rev 15)
    Subsystem: 10ec:0123
    Flags: fast devsel, IRQ 23
    [virtual] I/O ports at d000 [size=256]
    [virtual] Memory at 92104000 (64-bit, non-prefetchable) [size=4K]
    [virtual] Memory at 92100000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [40] Power Management version 3
    Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Endpoint, MSI 01
    Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
    Capabilities: [d0] Vital Product Data
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Virtual Channel
    Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
    Capabilities: [170] Latency Tolerance Reporting
    Capabilities: [178] L1 PM Substates

dmesg发出后的结果echo -n "0000:02:00.0" > bind

r8169 0000:02:00.0: unknown MAC, using family default
r8169 0000:02:00.0 (unnamed net_device) (uninitialized): rtl_chipcmd_cond == 1 (loop: 100, delay: 100).
libphy: r8169: probed

然后我尝试enp2s0使用以下命令删除以太网接口并重新扫描 PCI 总线:

耶!我的界面正常工作,但它带有eth0而不是enp2s0.

我检查了引导日志,r8169似乎正在重命名它。我可以重命名它而不重新启动它吗?

r8169 0000:02:00.0 enp2s0: renamed from eth1

标签: linux-kernellinux-device-driveryoctoethernet

解决方案


推荐阅读