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

관련 정보