けさらんぱの自由帳

とあるFF14プレイヤーがFF14のこととか関係ないことを書いていく予定のブログです。記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

LinuxでPCIeデバイスをリセットするには

Linuxの入っているPCにSound BlasterX AE-5というサウンドカードを接続しているのですが、一度s2idleでスリープするとスリープ解除しても音が出なくなります。その状態でもサウンドカードをリセットしてやると音が出る状態に復帰したので、その方法のメモです。

PCIeデバイスのリセット

下記を実行して、あらかじめPCIのアドレスを調べます。

% lspci -tv
-[0000:00]-+-00.0  Intel Corporation Device a700
(略
           +-1c.0-[04]----00.0  Creative Labs CA0132 Sound Core3D [Sound Blaster Recon3D / Z-Series / Sound BlasterX AE-5 Plus]
(略

上記の場合、サウンドカードのアドレスは0000:00:1c.0なので、下記を実行します。

% (echo "1" | sudo tee /sys/bus/pci/devices/0000:00:1c.0/remove) && (echo "1" | sudo tee /sys/bus/pci/rescan)

記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。