CodingBox Q&A Ask question

Proxmox 7.1의 Supermicro AOC-STGN-i1S (X520): HP DAC를 꽂으면 ip link에 인터페이스가 안 뜸

Asked Active Viewed 103 AI translation from English
4

집에서 작은 Proxmox 서버를 돌리는데 스토리지 노드로 제대로 된 10G 경로를 만들고 싶어서 중고 Supermicro AOC-STGN-i1S를 하나 꽂았어요. 그냥 일반 Intel 82599 설계고 보드 마킹은 E157872인데, 이번 구성에서 제일 심심한 부분일 거라고 생각했어요. 아니더라고요.

  • Supermicro AOC-STGN-i1S, Intel X520-DA1, 보드 마킹 E157872
  • Proxmox 7.1, 커널 5.15.30-1-pve
  • 두 번째 장비로 가는 HP 정품 패시브 SFP+ DAC
  • 카드는 PCI 버스에서 정상적으로 잡힘

드라이버 로딩이 끝까지 안 돼요. 커널 로그에는 지원하지 않는 SFP+/QSFP 모듈 타입을 감지해서 중단했다고 나오고, 그 뒤로는 설정할 포트 자체가 없어요:

lspci    -> the X520 is listed, no complaints
ip link  -> lo and the onboard 1G only, no 10G interface at all
dmesg    -> ixgbe aborts loading, unsupported SFP+/QSFP module type

이미 해본 것:

  • options ixgbe allow_unsupported_sfp=1을 담은 /etc/modprobe.d/ixgbe.conf를 만들고 update-initramfs -u랑 재부팅까지 했는데 변화 없음
  • 같은 옵션을 커널 파라미터로도 넘겨봤는데 변화 없음
  • rmmod ixgbe, modprobe ixgbe를 손으로 해봐도 ip link에 새로 뜨는 거 없음

카드가 죽은 걸까요, 아니면 5.15 커널에서 이 체크를 우회하는 방법을 제가 놓치고 있는 걸까요?

Comments 5

Accepted answer

말씀하신 증상이 딱 ixgbe에서 EEPROM 화이트리스트에 걸렸을 때 나오는 모습이에요. 드라이버가 모듈 ID를 읽고 Intel이 허용한 목록에 없다고 판단해서 netdev를 등록하기도 전에 중단해버리는 거라, 그래서 lspci에는 카드가 보이는데 ip link에는 아무것도 안 뜨는 거예요. 이건 하드웨어 결함이 전혀 아니고, 그래서 케이지에서 모듈을 빼는 순간 포트가 바로 돌아오는 것도 같은 이유예요.

문서에 나오는 탈출구는 이미 써보신 그거예요:

# /etc/modprobe.d/ixgbe.conf
options ixgbe allow_unsupported_sfp=1

update-initramfs -u
rmmod ixgbe
modprobe ixgbe
ip link

5.15에서는 그 옵션이 그냥 안정적이지 않아요. 저도 이 커널에서 똑같이 아무 변화가 없었으니까, 다시 해보거나 conf 파일 오타 찾는 데 시간 쓸 필요 없어요.

제 쪽에서 결론이 난 건: 케이지를 비운 상태로 modprobe ixgbe를 하면 인터페이스가 올라오고, HP 케이블을 다시 꽂으면 또 사라지고, 그런데 같은 HP 케이블이 Mellanox ConnectX-2에서는 아무 문제 없이 링크가 됐어요. 케이블은 전기적으로 멀쩡하고, Intel이 그 코딩 방식을 안 좋아하는 것뿐이에요.

결국 효과가 있었던 건 그냥 브랜드 없는 일반 SFP+ DAC로 바꾼 거였어요. 바로 링크가 뜨고, 모듈 옵션도 재부팅 씨름도 필요 없었어요. 지원 얘기를 하자면: Intel 코딩이 아닌 케이블은 어차피 Intel 매트릭스 밖이니까, 이 장비를 나중에 정식으로 지원받아야 한다면 HP 말고 Intel 코딩 DAC를 사세요.

4 Indiawaverunner21IN Show original (English) AI translation

카드를 포기하기 전에 테스트 하나만 해보세요. DAC를 케이지에서 완전히 빼고 rmmod ixgbe, modprobe ixgbe 한 다음 ip link를 다시 보세요. 케이지가 비어 있을 때 인터페이스가 나타나면, 카드랑 드라이버는 둘 다 멀쩡하고 그 체크가 걸리는 건 케이블 쪽이에요.

두 번째로 알아두면 좋은 건: 그 HP DAC가 다른 데서는 링크가 되나요? Intel이 아닌 NIC라면 보통 아무 불만 없이 받아줄 거예요. 그리고 그게 확실히 HP 코딩 케이블인가요, 아니면 비교해볼 만한 일반 케이블이 따로 있나요?

3 United Statesphotonrunner70US Show original (English) AI translation

X520이라 그나마 다행이라고 생각하세요, 안정적이진 않아도 드라이버 옵션이라도 있으니까요. X710이랑 XL710에서는 모듈 체크가 펌웨어 쪽으로 넘어가서 allow_unsupported_sfp가 i40e에는 아예 아무 효과가 없어요. X710-DA2에 Intel 아닌 모듈을 꽂으면 이렇게 나와요:

Rx/Tx is disabled on this device because an unsupported SFP module type was detected

그러면 대화는 거기서 끝이에요. 남은 선택지는 Intel 코딩 광모듈을 쓰거나, 커뮤니티에서 쓰는 xl710-unlocker 방식(Intel 자체 업데이터로 새 NVM 이미지를 올리고 나서 서드파티 툴로 EEPROM의 0x6800-0x7000 언저리 11비트 필드를 직접 건드리는 건데, 완전히 본인 책임이에요), 아니면 처음부터 OEM 버전을 고르는 거예요: HPE 562SFP+가 속은 X710인데, 펌웨어랑 i40e를 업데이트하고 나면 아무 해킹 없이도 서드파티 10G, 1G 구리 모듈을 그냥 받아들여요.

4 Spainqsfpwolf31ES Show original (English) AI translation

OEM 얘기가 나와서 말인데, Dell이랑 Lenovo 브랜드 X710-DA2 카드는 반대 방향으로 문제예요: 승인 안 된 SFP+랑 DAC를 거부하고, Intel 자체 툴에는 그 보드가 아예 목록에도 없어요. 사람들이 결국 택한 방법은 순정 Intel NVM을 플래시하는 거였어요. 먼저 Intel의 전체 BootUtil 패키지에 있는 QV 드라이버가 필요해요, 안 그러면 유틸리티가 보드랑 아예 통신을 못 해요. 옵션 ROM을 제일 먼저 교체하고, 그다음에야 카드를 인벤토리하고 플래시하는 거예요:

./bootutil64e -NIC=1 -up=combo
./nvmupdate64e -i -l
ethtool -i enp1s0f0
./nvmupdate64e -rd

인벤토리랑 플래시 사이에 nvmupdate.cfg를 카드의 SPI 플래시 용량(4MB 또는 8MB)에 맞는 X710 항목 하나만 남기고 다 잘라내세요. 용량을 잘못 고르면 저장해둔 NVM 이미지랑 하드웨어 플래셔가 있어야 복구할 수 있는 벽돌이 되니까, ETrackID부터 읽고 확실히 하세요. 그 뒤로 9.30-9.40대 펌웨어가 잘 됐다는 보고가 있었고, 덤으로 Lenovo 보드에서 SR-IOV도 쓸 수 있게 됐다고 해요. 그래도 저라면 잃어도 되는 카드에서만 시도할 것 같아요.

2 Italylambdapilot72IT Show original (English) AI translation

이 스레드에 크로스플래시나 EEPROM 패칭 얘기를 갖다 붙이는 건 조심해야 하는 게, 둘 다 여기 설명된 상황에는 도움이 안 돼요. X520 EEPROM의 OEM 플래그를 수정하려면 애초에 카드로 접근할 수 있는 작동하는 인터페이스가 필요한데, 여기는 케이블을 케이지에서 빼기 전까지 인터페이스 자체가 없잖아요. 그건 포트는 있는데 모듈 하나를 거부하는 상황에 쓰는 해법이지, 로딩 자체를 중단하는 드라이버에는 안 맞아요.

또 하나 과대해석하면 안 되는 게 다른 NIC에서의 테스트예요. 다른 호스트에서 모듈이 링크되는 건 그 모듈을 증명하는 거지, 실제로 쓰려는 그 호스트를 증명하는 게 아니에요. 저는 Ubiquiti UACC-CM-RJ45-MG 구리 모듈이 CCR2004랑 Debian 위의 Intel X520-DA2에서는 잘 돌아가는데, CRS309랑 CRS328의 SFP+ 케이지에서는 autonegotiation을 켜든 속도를 손으로 고정하든 아예 링크가 안 돼요. 호스트 의존성은 실재하니까, 뭘 무더기로 사기 전에 실제로 쓸 그 기계에서 확인하세요.

3 IndiasfpopsIN Show original (English) AI translation
Log in to comment. Log in