我有一个嵌入式/无头Debian Linux盒子,它可以从只读文件系统映像启动。设置配置后,我可以(貌似)写入文件系统,但是对文件系统的任何更改实际上都不会写入闪存设备,因此无法在重新启动后幸存。
此包装盒具有使用e1000e Linux驱动程序的主板上以太网接口(Intel 82571EB):
root@embedded:~# lspci -v
[...]
07:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)
Subsystem: Intel Corporation PRO/1000 PT Dual Port Server Adapter
Flags: bus master, fast devsel, latency 0, IRQ 45
Memory at fc600000 (32-bit, non-prefetchable) [size=128K]
I/O ports at 4000 [size=32]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [e0] Express Endpoint, MSI 00
Kernel driver in use: e1000e
[...]
为了更好地理解e1000e驱动程序(也许找到并修复了我怀疑可能潜伏在其中的错误),我编译了自己的工具版e1000e.ko内核扩展文件,我想试试看。
我可以将e1000e_instrumented.ko文件压缩到Linux机器上,但是我不确定将OS的内置e1000e驱动程序与82571EB以太网控制器解除关联的正确方法是什么,然后告诉Linux使用我的自定义.ko文件。 。(如果是台式机式Linux PC,我想可以通过在现有的/lib/modules/3.8.13/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko文件和然后重新启动...但是在这台计算机上,我重新启动计算机后所做的任何更改都会消失,因此,我认为我需要一种不涉及重新启动的技术)
在Debian Linux中执行此操作的正确方法是什么?作为初始测试,我尝试:
modprobe -r e1000e ; modprobe e1000e
...只是看我是否可以删除内置驱动程序,然后再次重新加载它,但是这样做只会杀死Linux机器上的网络,并且不会将其恢复。
对ifup -a
e1000e进行探测后,需要运行以打开网络接口。加上一些小的延迟sleep 2
也不会造成伤害。
因此,请尝试:
ifdown -a ; sleep 2 ; modprobe -r e1000e ; sleep 2; modprobe e1000e ; sleep 2; ifup -a
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句