e1000e 드라이버를 이더넷 어댑터에 할당하는 방법

e1000e 드라이버를 이더넷 어댑터에 할당하는 방법

이더넷 어댑터에 특정 드라이버를 사용하도록 지시하는 방법이 있습니까? 아니면 작동 방식에 따라 드라이버에 특정 어댑터를 지원하도록 지시하는 방법이 있을까요?

내 시스템은 e1000e 드라이버가 온보드 I219-LM 이더넷 어댑터에 연결되지 않은 최근에 설치된 RHEL Server 7.3 운영 체제(커널 3.10.0-514.el7.x86_64)를 실행하고 있습니다. 이 상황은 어댑터가 제대로 작동하지 않는 이유를 조사하는 동안 발견되었습니다. 제대로 작동하는 또 다른 이더넷 어댑터는 MB에 연결된 PCI 카드입니다.

간단히 lspci말해서:

# lspci | grep net
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
06:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)

I219-LM 장치 세부 정보는 lspci사용 중인 드라이버를 보고하지 않습니다.

# lspci -v -s 00:1f.6
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
    Subsystem: Intel Corporation Device 0000
    Flags: fast devsel, IRQ 16
    Memory at a1700000 (32-bit, non-prefetchable) [size=128K]
    Capabilities: [c8] Power Management version 3
    Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [e0] PCI Advanced Features
    Kernel modules: e1000e

이와 대조적으로 다른 어댑터에 대한 동일한 명령은 장치가 e1000e를 사용하고 있음을 보여줍니다.

# lspci -v -s 06:00.0
06:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
    Subsystem: Intel Corporation PRO/1000 PT Server Adapter
    Flags: bus master, fast devsel, latency 0, IRQ 130
    Memory at a1320000 (32-bit, non-prefetchable) [size=128K]
    Memory at a1300000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at 4000 [disabled] [size=32]
    Expansion ROM at a1340000 [disabled] [size=128K]
    Capabilities: [c8] Power Management version 2
    Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [e0] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Device Serial Number [edited]
    Kernel driver in use: e1000e
    Kernel modules: e1000e

동일한 OS와 온보드(및 작동하는) I219-LM 어댑터 유형을 사용하는 다른 시스템을 사용할 수 있습니다. 여기서 드라이버가 실제로 장치에 연결되어야 하는지 확인했습니다.

지역을 탐색한 /sys/bus/pci/drivers/e1000e/sys/devices/pci0000:00/0000:00:1f.6일부 누락된 콘텐츠를 발견했습니다.

  1. .../drivers/e1000e이 폴더에는 82572EI 어댑터의 PCI 주소를 사용하는 이 영역에 대한 소프트 링크가 있지만 I219-LM 어댑터의 PCI 주소에 대한 소프트 링크 는 없습니다 . /sys/devices/대조적으로, 언급된 "제어" 시스템에는 자신이 소유한 모든 어댑터에 대한 링크가 있습니다.
  2. 이 영역에는 소프트 링크 /sys/devices/pci0000:00/0000:00:1f.6가 없습니다 . driver그러나 소프트 링크는 ../pci0000:00/0000:06:00.0다른 어댑터의 해당 폴더( ) 에 존재하며 /sys/bus/pci/drivers/e1000e해당 폴더가 있어야 하는 경로를 가리킵니다.

이 문제를 해결하는 데 도움이 되는 추가 정보가 필요하면 알려주시기 바랍니다.

감사해요.

답변1

최신 하드웨어를 사용하는 RHEL7.9에서도 이와 비슷한 상황이 발생한 것 같습니다. 결론은 Red Hat이 새로운 NIC 드라이버를그들의 버전운전사의. 따라서 최신 하드웨어가 당시에 지원하는 것보다 앞설 수도 있습니다. 귀하의 NIC 버전이 이제 RHEL7에서 지원된다는 것을 알고 있습니다. 해당 NIC를 사용하는 워크스테이션이 있고 모든 것이 잘 작동하기 때문입니다. 제 경우에는 새 Dell Precision Tower에 I219-LM NIC가 있는데, 이를 위해서는 Red Hat이 RHEL7을 지원하기 위해 백포트하지 않는 드라이버 버전이 필요합니다(현재 RHEL8에서 지원됨). PXE 부팅을 했기 때문에 해당 부분을 작동시키려면 추가 작업이 필요했습니다.

PXE 부팅이 작동하려면 부팅에 사용되는 initrd 이미지를 업데이트하고 이미지를 설치해야 했지만 이는 실제로 이 질문의 범위에 포함되지 않으므로 건너뛰겠습니다.

인텔 웹사이트에서 드라이버를 다운로드할 수 있습니다.e1000e 다운로드 페이지또는 kmod 저장소(kmod e1000e 링크). 내 경우에는 Spacewalk 서버에서 PXE 부팅하고 패키지를 설치하고 있었기 때문에 kmod-e1000e 패키지를 내 저장소에 추가하고 빌드 프로세스 중에 설치했습니다. kmod-e1000e 패키지는 향후 커널 업그레이드에서 덮어쓰면 안 되기 때문에 더 간단한 옵션입니다.

TL;DR Red Hat은 드라이버 지원이 형편없기 때문에 최신 드라이버를 별도로 설치하면 이 문제를 해결할 수도 있습니다.

PS 필요한 경우 PXE 부팅 작업을 수행하는 방법을 기꺼이 작성해 드리겠습니다.

관련 정보