Debian Linuxを実行しているコンピュータでネットワークデバイスのドライバを変更するにはどうすればよいですか?

Debian Linuxを実行しているコンピュータでネットワークデバイスのドライバを変更するにはどうすればよいですか?

読み取り専用ファイルシステムイメージから起動する組み込み/ヘッドレス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システムのネットワークがシャットダウンして再インポートされません。

答え1

ifup -ae1000eをmodprobingした後に実行してネットワークインタフェースを呼び出す必要があります。少しの遅延を追加してもsleep 2問題ありません。

したがって、次のことを試してください。

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

関連情報