web-dev-qa-db-ja.com

Linuxでは、どのPCIカードがどのPCIスロットに接続されているかを確認する方法はありますか?

Linuxでは、どのPCIカードがどのPCIスロットに接続されているかを確認する方法はありますか?

/ sys/bus/pci/devices /には、カードではない多くのデバイス(ブリッジ、CPUチャネルなど)が含まれており、デバイスディレクトリでスロットとカードのマッピングに関する情報を見つけることができませんでした。

15
magmabyte

使用できます

dmidecode –t slot

実行可能なすべてのPCIスロットを見つける

lspci -s <slot number>

指定されたスロットに接続されたデバイスをリストするコマンド。最初のコマンドからバスアドレスを取得し、このアドレスを2番目のコマンドのパラメーターとして使用する必要があります。

18
Nebojsa Susic

Nebojsaの答えは良いですが、マグマバイトのコメントに対するもう少しの情報と答えがあります。

dmidecodeはスロットの数を示しますが、PCIブリッジを使用するのはそれらのスロットだけではありません。そのため、スロットよりも多くのデバイスが表示されます。

次に、スロットごとに複数の「デバイス」が表示されることがありますが、それらはおそらく同じカード上の複数のポートにすぎません。ネットワークインターフェイスカード(NIC)を使用した例を示します。

megaman@someserver $ 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つのスロットがあることを示します(実際にあります)。スロット1には10Gb NIC=(2つのポートがあることがわかります)、スロット2にはファイバーチャネルカード(2つのポートもある)があり、最後にスロット3が空になっていることがわかります) 。

サーバーには3つの物理スロットがあり、1つは空で、2つはマルチポートカード(HBAとNIC)で埋められています。

コメントであなたの質問に答えるために、あなたが持っている3つのスロットはdmidecodeで示されているものであり、おそらくマルチポートインターフェイスカードが装着されています。

4
kodywilson