Linux kernel 重新接通交流电源后以太网端口不工作
我有一个运行Linux kernel 重新接通交流电源后以太网端口不工作,linux-kernel,linux-device-driver,yocto,ethernet,Linux Kernel,Linux Device Driver,Yocto,Ethernet,我有一个运行yocto嵌入式系统的设备。该设备配有超级电容器(supercap),可在交流电源突然断开时提供几分钟的备用电源。请注意,当设备处于“超级电容”状态时,外围设备的电源将被切断,以便为CPU提供更多的时间以实现安全关机 在以下情况下,以太网端口不工作(端口上的LED灯甚至不闪烁): 交流电源被切断,所以设备从超级电容获得电源(我假设以太网端口突然中断) 当设备处于打开状态时,重新接通交流电源,超级AP,以太网端口不再接通 注意:r8169内核驱动程序正用于以太网 有一些关于删除和插
yocto
嵌入式系统的设备。该设备配有超级电容器(supercap)
,可在交流电源突然断开时提供几分钟的备用电源。请注意,当设备处于“超级电容”状态时,外围设备的电源将被切断,以便为CPU提供更多的时间以实现安全关机
在以下情况下,以太网端口不工作(端口上的LED灯甚至不闪烁):
- 交流电源被切断,所以设备从超级电容获得电源(我假设以太网端口突然中断)
- 当设备处于打开状态时,重新接通交流电源,超级AP,以太网端口不再接通
r8169
内核驱动程序正用于以太网
有一些关于删除和插入r8169
驱动程序的建议,但是驱动程序是内核中的内置模块,我觉得这不是解决问题的正确方法。应该有一些初始化/配置来修复此问题
我还尝试了两个命令,比如“ifconfig enp2s0 up/down”,但都没有成功
编辑1:
执行以下步骤以从/sys/bus/pci/drivers/r8169
目录中的驱动程序中解除绑定设备
- echo-n“0000:02:00.0”>解除绑定(成功)
- echo-n“0000:02:00.0”>绑定(sh:echo:write error:无此类设备)
解除绑定后lspci-v-kn
显示的有关设备的内容
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”发出后的结果绑定
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总线:
- echo 1>/sys/devices/pci0000:00/0000:00:14.1/0000:02:00.0/删除
- echo 1>/sys/devices/pci0000:00/0000:00:14.1/重新扫描
eth0
而不是enp2s0
我检查了启动日志,并且r8169
似乎正在重命名它。我可以重命名它而不重新启动它吗
r8169 0000:02:00.0 enp2s0: renamed from eth1
我认为你离题了。你的问题不是关于编程,也不是关于程序员的工具,我应该问超级用户还是其他什么地方?我不确定。unix和linux软件可能更合适。但可能更多的是硬件或网络。谷歌可能有一个类似问题发送到哪里的想法。但你有没有尝试过重新绑定?这有帮助吗?我不知道,是否有任何命令/实用程序可以绑定/取消绑定?如果你知道,请提供给我。我想你离题了。你的问题不是关于编程,也不是关于程序员的工具,我应该问超级用户还是其他什么地方?我不确定。unix和linux软件可能更合适。但可能更多的是硬件或网络。谷歌可能有一个类似问题发送到哪里的想法。但你有没有尝试过重新绑定?这有帮助吗?我不知道,是否有任何命令/实用程序可以绑定/取消绑定?如果知道,请提供给我。