Proxmox 7.1의 Supermicro AOC-STGN-i1S (X520): HP DAC를 꽂으면 ip link에 인터페이스가 안 뜸
집에서 작은 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
말씀하신 증상이 딱 ixgbe에서 EEPROM 화이트리스트에 걸렸을 때 나오는 모습이에요. 드라이버가 모듈 ID를 읽고 Intel이 허용한 목록에 없다고 판단해서 netdev를 등록하기도 전에 중단해버리는 거라, 그래서
lspci에는 카드가 보이는데ip link에는 아무것도 안 뜨는 거예요. 이건 하드웨어 결함이 전혀 아니고, 그래서 케이지에서 모듈을 빼는 순간 포트가 바로 돌아오는 것도 같은 이유예요.문서에 나오는 탈출구는 이미 써보신 그거예요:
5.15에서는 그 옵션이 그냥 안정적이지 않아요. 저도 이 커널에서 똑같이 아무 변화가 없었으니까, 다시 해보거나 conf 파일 오타 찾는 데 시간 쓸 필요 없어요.
제 쪽에서 결론이 난 건: 케이지를 비운 상태로
modprobe ixgbe를 하면 인터페이스가 올라오고, HP 케이블을 다시 꽂으면 또 사라지고, 그런데 같은 HP 케이블이 Mellanox ConnectX-2에서는 아무 문제 없이 링크가 됐어요. 케이블은 전기적으로 멀쩡하고, Intel이 그 코딩 방식을 안 좋아하는 것뿐이에요.결국 효과가 있었던 건 그냥 브랜드 없는 일반 SFP+ DAC로 바꾼 거였어요. 바로 링크가 뜨고, 모듈 옵션도 재부팅 씨름도 필요 없었어요. 지원 얘기를 하자면: Intel 코딩이 아닌 케이블은 어차피 Intel 매트릭스 밖이니까, 이 장비를 나중에 정식으로 지원받아야 한다면 HP 말고 Intel 코딩 DAC를 사세요.
카드를 포기하기 전에 테스트 하나만 해보세요. DAC를 케이지에서 완전히 빼고
rmmod ixgbe,modprobe ixgbe한 다음ip link를 다시 보세요. 케이지가 비어 있을 때 인터페이스가 나타나면, 카드랑 드라이버는 둘 다 멀쩡하고 그 체크가 걸리는 건 케이블 쪽이에요.두 번째로 알아두면 좋은 건: 그 HP DAC가 다른 데서는 링크가 되나요? Intel이 아닌 NIC라면 보통 아무 불만 없이 받아줄 거예요. 그리고 그게 확실히 HP 코딩 케이블인가요, 아니면 비교해볼 만한 일반 케이블이 따로 있나요?
X520이라 그나마 다행이라고 생각하세요, 안정적이진 않아도 드라이버 옵션이라도 있으니까요. X710이랑 XL710에서는 모듈 체크가 펌웨어 쪽으로 넘어가서
allow_unsupported_sfp가 i40e에는 아예 아무 효과가 없어요. X710-DA2에 Intel 아닌 모듈을 꽂으면 이렇게 나와요:그러면 대화는 거기서 끝이에요. 남은 선택지는 Intel 코딩 광모듈을 쓰거나, 커뮤니티에서 쓰는 xl710-unlocker 방식(Intel 자체 업데이터로 새 NVM 이미지를 올리고 나서 서드파티 툴로 EEPROM의 0x6800-0x7000 언저리 11비트 필드를 직접 건드리는 건데, 완전히 본인 책임이에요), 아니면 처음부터 OEM 버전을 고르는 거예요: HPE 562SFP+가 속은 X710인데, 펌웨어랑 i40e를 업데이트하고 나면 아무 해킹 없이도 서드파티 10G, 1G 구리 모듈을 그냥 받아들여요.
OEM 얘기가 나와서 말인데, Dell이랑 Lenovo 브랜드 X710-DA2 카드는 반대 방향으로 문제예요: 승인 안 된 SFP+랑 DAC를 거부하고, Intel 자체 툴에는 그 보드가 아예 목록에도 없어요. 사람들이 결국 택한 방법은 순정 Intel NVM을 플래시하는 거였어요. 먼저 Intel의 전체 BootUtil 패키지에 있는 QV 드라이버가 필요해요, 안 그러면 유틸리티가 보드랑 아예 통신을 못 해요. 옵션 ROM을 제일 먼저 교체하고, 그다음에야 카드를 인벤토리하고 플래시하는 거예요:
인벤토리랑 플래시 사이에 nvmupdate.cfg를 카드의 SPI 플래시 용량(4MB 또는 8MB)에 맞는 X710 항목 하나만 남기고 다 잘라내세요. 용량을 잘못 고르면 저장해둔 NVM 이미지랑 하드웨어 플래셔가 있어야 복구할 수 있는 벽돌이 되니까, ETrackID부터 읽고 확실히 하세요. 그 뒤로 9.30-9.40대 펌웨어가 잘 됐다는 보고가 있었고, 덤으로 Lenovo 보드에서 SR-IOV도 쓸 수 있게 됐다고 해요. 그래도 저라면 잃어도 되는 카드에서만 시도할 것 같아요.
이 스레드에 크로스플래시나 EEPROM 패칭 얘기를 갖다 붙이는 건 조심해야 하는 게, 둘 다 여기 설명된 상황에는 도움이 안 돼요. X520 EEPROM의 OEM 플래그를 수정하려면 애초에 카드로 접근할 수 있는 작동하는 인터페이스가 필요한데, 여기는 케이블을 케이지에서 빼기 전까지 인터페이스 자체가 없잖아요. 그건 포트는 있는데 모듈 하나를 거부하는 상황에 쓰는 해법이지, 로딩 자체를 중단하는 드라이버에는 안 맞아요.
또 하나 과대해석하면 안 되는 게 다른 NIC에서의 테스트예요. 다른 호스트에서 모듈이 링크되는 건 그 모듈을 증명하는 거지, 실제로 쓰려는 그 호스트를 증명하는 게 아니에요. 저는 Ubiquiti UACC-CM-RJ45-MG 구리 모듈이 CCR2004랑 Debian 위의 Intel X520-DA2에서는 잘 돌아가는데, CRS309랑 CRS328의 SFP+ 케이지에서는 autonegotiation을 켜든 속도를 손으로 고정하든 아예 링크가 안 돼요. 호스트 의존성은 실재하니까, 뭘 무더기로 사기 전에 실제로 쓸 그 기계에서 확인하세요.