Linuxでは、どのPCIカードがどのPCIスロットに接続されているかを確認する方法はありますか?
/ sys/bus/pci/devices /には、カードではない多くのデバイス(ブリッジ、CPUチャネルなど)が含まれており、デバイスディレクトリでスロットとカードのマッピングに関する情報を見つけることができませんでした。
使用できます
dmidecode –t slot
実行可能なすべてのPCIスロットを見つける
lspci -s <slot number>
指定されたスロットに接続されたデバイスをリストするコマンド。最初のコマンドからバスアドレスを取得し、このアドレスを2番目のコマンドのパラメーターとして使用する必要があります。
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
で示されているものであり、おそらくマルチポートインターフェイスカードが装着されています。