LinuxでのPCIデバイスの操作

投稿者: | 4月 29, 2021

誰得なのかわからないけど、PCIデバイスの削除をやってみた。

とわいえ、本物のデバイスをもっているわけではないので、VMwareにパラレルSCSIとディスクをつけて検証。VMwareのパラレルSCSIを増設するとブートオーダーが変わることがあるので、BIOSで確認しておいたほうがいい。

というわけで

LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPTを消したい。

[root@localhost ~]# lspci | grep SCSI
02:02.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
03:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)

間違って他のデバイスを消さないように念入りに情報は調べておく。
[root@localhost ~]# lspci -tv
-[0000:00]-+-00.0  Intel Corporation 440BX/ZX/DX – 82443BX/ZX/DX Host bridge
           +-01.0-[01]–
           +-07.0  Intel Corporation 82371AB/EB/MB PIIX4 ISA
           +-07.1  Intel Corporation 82371AB/EB/MB PIIX4 IDE
           +-07.3  Intel Corporation 82371AB/EB/MB PIIX4 ACPI
           +-07.7  VMware Virtual Machine Communication Interface
           +-0f.0  VMware SVGA II Adapter
           +-11.0-[02]–+-01.0  VMware SATA AHCI controller
           |            \-02.0  LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI
           +-15.0-[03]—-00.0  VMware PVSCSI SCSI Controller
       
[root@localhost ~]# lspci -v
02:02.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
    Subsystem: VMware LSI Logic Parallel SCSI Controller
    Physical Slot: 34
    Flags: bus master, medium devsel, latency 64, IRQ 16
    I/O ports at 2000 [size=256]
    Memory at fd5a0000 (64-bit, non-prefetchable) [size=128K]
    Memory at fd5c0000 (64-bit, non-prefetchable) [size=128K]
    [virtual] Expansion ROM at e7b10000 [disabled] [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: mptspi
    Kernel modules: mptspi

PCIデバイスの削除               
[root@localhost ~]# echo “1” > /sys/devices/pci0000\:00/0000\:00\:11.0/0000\:02\:02.0/remove
[root@localhost ~]# lspci | grep SCSI
消えてる!
03:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)

再起動してみると
[root@localhost ~]# reboot

復活している
[root@localhost ~]# lspci | grep SCSI
02:02.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
03:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)

ちなみに、復活は再起動しなくてもできる。
もう一度消してみる
[root@localhost ~]# echo “1” > /sys/devices/pci0000\:00/0000\:00\:11.0/0000\:02\:02.0/remove
[root@localhost ~]#  lspci | grep SCSI
03:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)

一つ上のバスでリスキャンをかける
[root@localhost ~]# echo 1 > /sys/devices/pci0000\:00/0000\:00\:11.0/rescan
[root@localhost ~]#  lspci | grep SCSI

見事復活
02:02.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
03:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)

まぁ、PCMCIAカードとかCardBusを使っていた人には懐かしい話かもしれない。

ちなみに。。。この作業。別にPCIデバイスの電源までは落としていないかもしれないので、ホットスワップだぁと言っていきなり抜くと最悪は燃えるかもしれないので自己責任で。ホットスワップデバイスって、GNDの端子だけが微妙に長くなっていたりするので。

というわけでおわり。

コメントを残す