如何在正在运行的Debian Linux机器上换出网络设备的驱动程序?

杰里米·弗里斯纳(Jeremy Friesner)

我有一个嵌入式/无头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 -ae1000e进行探测后,需要运行以打开网络接口。加上一些小的延迟sleep 2也不会造成伤害。

因此,请尝试:

ifdown -a ; sleep 2 ; modprobe -r e1000e ; sleep 2; modprobe e1000e ; sleep 2; ifup -a

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何编写虚拟网络设备驱动程序

来自分类Dev

如何在安装新内核时自动安装网络设备驱动程序r8168

来自分类Dev

如何在 Swift 中获取正在运行的程序路径?

来自分类Dev

如果Mule正在运行,如何在Linux中查找

来自分类Dev

如何更改正在运行的Debian Linux机器的分区大小?

来自分类Dev

如何在rhel机器上验证当前网络驱动程序名称

来自分类Dev

如何在我的机器上找到当前正在运行的内核的来源?

来自分类Dev

如何踢出正在运行的程序?

来自分类Dev

apt如何升级正在运行的程序?

来自分类Dev

如何在正在运行的heroku应用程序上更新app.json清单?

来自分类Dev

如何在Unity的当前虚拟屏幕上直观地查看正在运行哪些程序?

来自分类Dev

如何在新的SSH会话中查看Ubuntu Server上正在运行的程序

来自分类Dev

如何在Mac OS X上找到正在运行的应用程序的路径

来自分类Dev

如何在Linux上找到与设备关联的驱动程序(模块)?

来自分类Dev

如何在Linux上找到与SATA设备关联的驱动程序(模块)?

来自分类Dev

如何在X200 ThinkPad上为Void Linux安装网络驱动程序?

来自分类Dev

Android Studio:如何在Android设备上调试正在运行的进程?

来自分类Dev

如何在Android 5.0(L)中获取正在运行的应用程序活动名称?

来自分类Dev

如何在Android中以编程方式关闭所有正在运行的应用程序?

来自分类Dev

如何在Windows中获取正在运行的应用程序?

来自分类Dev

Android如何在按下时关闭正在运行的应用程序?

来自分类Dev

如何在Android Studio中查看应用程序正在运行的服务数量?

来自分类Dev

如何在C#中删除正在运行的应用程序?

来自分类Dev

如何在fluxbox中从tint2隐藏正在运行的应用程序?

来自分类Dev

Android如何在按下时关闭正在运行的应用程序?

来自分类Dev

如何在cloudfoundry中检查正在运行的应用程序的buildpack

来自分类Dev

如何在正在运行的 Forms 应用程序中动态更改 WebBrowser 对象?

来自分类Dev

如何在Linux Shell中将正在运行的进程的输出重定向到文件

来自分类Dev

如何在Linux中重新启动(或重置)正在运行的进程

Related 相关文章

  1. 1

    如何编写虚拟网络设备驱动程序

  2. 2

    如何在安装新内核时自动安装网络设备驱动程序r8168

  3. 3

    如何在 Swift 中获取正在运行的程序路径?

  4. 4

    如果Mule正在运行,如何在Linux中查找

  5. 5

    如何更改正在运行的Debian Linux机器的分区大小?

  6. 6

    如何在rhel机器上验证当前网络驱动程序名称

  7. 7

    如何在我的机器上找到当前正在运行的内核的来源?

  8. 8

    如何踢出正在运行的程序?

  9. 9

    apt如何升级正在运行的程序?

  10. 10

    如何在正在运行的heroku应用程序上更新app.json清单?

  11. 11

    如何在Unity的当前虚拟屏幕上直观地查看正在运行哪些程序?

  12. 12

    如何在新的SSH会话中查看Ubuntu Server上正在运行的程序

  13. 13

    如何在Mac OS X上找到正在运行的应用程序的路径

  14. 14

    如何在Linux上找到与设备关联的驱动程序(模块)?

  15. 15

    如何在Linux上找到与SATA设备关联的驱动程序(模块)?

  16. 16

    如何在X200 ThinkPad上为Void Linux安装网络驱动程序?

  17. 17

    Android Studio:如何在Android设备上调试正在运行的进程?

  18. 18

    如何在Android 5.0(L)中获取正在运行的应用程序活动名称?

  19. 19

    如何在Android中以编程方式关闭所有正在运行的应用程序?

  20. 20

    如何在Windows中获取正在运行的应用程序?

  21. 21

    Android如何在按下时关闭正在运行的应用程序?

  22. 22

    如何在Android Studio中查看应用程序正在运行的服务数量?

  23. 23

    如何在C#中删除正在运行的应用程序?

  24. 24

    如何在fluxbox中从tint2隐藏正在运行的应用程序?

  25. 25

    Android如何在按下时关闭正在运行的应用程序?

  26. 26

    如何在cloudfoundry中检查正在运行的应用程序的buildpack

  27. 27

    如何在正在运行的 Forms 应用程序中动态更改 WebBrowser 对象?

  28. 28

    如何在Linux Shell中将正在运行的进程的输出重定向到文件

  29. 29

    如何在Linux中重新启动(或重置)正在运行的进程

热门标签

归档