2014-09-18 7 views
4

리눅스에서는 어떤 PCI 카드가 어떤 PCI 슬롯에 연결되어 있는지 알아낼 방법이 있습니까?리눅스에서는 어떤 PCI 카드가 어떤 PCI 슬롯에 연결되어 있는지 알아낼 방법이 있습니까?

/sys/bus/pci/devices /는 장치가 아닌 여러 장치 (브리지, CPU 채널 등)를 포함하고 있으며 장치 디렉토리에서 슬롯 카드 매핑에 대한 정보를 찾을 수 없었습니다. 사용자가 지정한 슬롯에 연결 목록 장치에

lspci -s <slot number> 

명령을 실행 할 수있는 것보다

+0

은 udev 규칙을 설정할 가치가 있습니다. https://wiki.archlinux.org/index.php/udev – James

+0

고정 장치 심볼릭 링크에 사용 하시겠습니까? 흥미로운 것처럼 보이지만 물리적 매핑 (예 : "PCI card x"가 "Mainboard PCI slot y"에 연결됨)을 원합니다. – magmabyte

답변

9

당신은

dmidecode –t slot 

가능한 모든 PCI 슬롯 를 찾는 데 사용할 수 있습니다. 첫 번째 명령에서 버스 주소를 가져와 두 번째 명령의 매개 변수로이 주소를 사용해야합니다.

+1

슬롯 슬롯 1-3을 dmidecode로 얻습니다. 이 슬롯 번호가있는 lspci -s는 "PCI bridge"유형에서 두 개의 장치를 반환합니다 (따라서 총 6 개). "PCI bridge"에 대해 lspci와 grep을 사용하면 총 14 개의 장치를 얻을 수 있습니다. 나는 3 개의 물리적 인 슬롯이있어서 어떤 슬롯을 가지고 있나? – magmabyte

3

Nebojsa의 답변은 좋지만 여기에 대한 정보와 magmabyte의 의견에 대한 답변이 나와 있습니다.

dmidecode은 슬롯 수를 제공하지만 PCI 브리지를 사용하는 슬롯 만 사용하는 것이 아니기 때문에 슬롯보다 많은 장치가 표시됩니다.

둘째 슬롯 당 여러 개의 "장치"가 표시 될 수 있지만 동일한 카드의 여러 포트 일 가능성이 높습니다.

[email protected] $ lspci | grep 10Gb 
07:00.0 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02) 
07:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02) 

dmidecode

이 서버는 3 개의 슬롯이 있음을 나타냅니다 (그리고 않습니다) : 네트워크 인터페이스 카드 (NIC)를 사용하여 당신에게 예를 제공합니다. 슬롯 1에는 위의 10Gb NIC가 있고 (포트 2 개 있음을 알 수 있습니다) 슬롯 2에는 파이버 채널 카드 (포트 2 개가 있음)가 있으며 마지막으로 슬롯 3이 비어 있습니다.

서버에는 3 개의 물리적 슬롯이 있으며 하나는 비어 있고 2 개는 멀티 포트 카드 (HBA 및 NIC)로 채워집니다.

의견에 대한 질문에 대답하기 위해 가지고있는 슬롯은 dmidecode으로 표시되며 멀티 포트 인터페이스 카드로 채워질 수 있습니다.

+0

고맙지 만 dmidecode와 lspci를 사용하여 네트워크 카드를 포트와 확실히 일치시키는 신뢰할 수있는 방법을 아직 찾지 못했습니다. 나는 논리적 인 공제를 통해 내가 바라는 시스템에서만 그렇게했다. 카드는 PCI이고이 서버 모델에는 PCI 슬롯이 하나 뿐이다. –