NVIDIAグラフィックカードが一時停止状態で再起動される問題をデバッグしようとしています。このスレッドHDMIカードを出力するオーディオ機器に問題があると考えられます。デバイスを無効にしたいが、udevルールとカーネルパラメータは何もしません。これらの方法が機能しない問題を解決するには、または他の方法を使用してデバイスが問題を引き起こす可能性を完全に排除できるように無効にするにはどうすればよいですか。
sudo lspci -vv
私の関連デバイスへの出力(無関係なフィールドが削除されました):
58:00.1 Audio device: NVIDIA Corporation Device 10fa (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] Device 3800
Control: (...)
Status: (...)
Latency: 0
Interrupt: pin B routed to IRQ 18
IOMMU group: 19
Region 0: Memory at 61080000 (32-bit, non-prefetchable) [size=16K]
Capabilities: (...)
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
lspci -nns 58:00.1
:
58:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10fa] (rev a1)
私が試したこと:
- udevルール:
cat /etc/udev/rules.d/10-remove-nvidia-audio.rules
ACTION==“add”, KERNEL=="0000:58:00.1", SUBSYSTEM=="pci", RUN="/bin/sh -c ‘echo 1 > /sys/bus/pci/devices/0000:58:00.1/remove’"
RUNコマンドを手動で実行すると、デバイスの接続が切断されますが、停止の問題が持続し、デバイスの再開時に再接続されるかどうかはわかりません(再開に関する内容は記録されず、停止journalctl
操作のみが記録されます。)コンピュータを再利用する前に強制的に電源を切るには)。 udevルールを適用するには、さらに行う必要がありますか?
- カーネルパラメータを試してください。この方法:
pcistub=pci-stub.ids=10de:10fa
私が検討した回答に記載されている他の方法は、snd_hda_intel
実際のオーディオ出力にも使用されるため使用できません。
どんな提案にも感謝します。ありがとうございます!
答え1
起動時にデバイスを削除するシステムサービスを作成し、これを行いました。
サービスの本文は次のとおりです。
# systemctl cat remove-nvidia
# /etc/systemd/system/remove-nvidia.service
[Unit]
Description=removes pci nvidia upon boot
[Service]
Type=oneshot
User=root
RemainAfterExit=true
ExecStart=/usr/bin/bash -c "echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove"
[Install]
WantedBy=multi-user.target
デーモンを再ロードする必要があります。
# systemctl daemon-reload
サービスを有効にして
# systemctl enabled remove-nvidia
その結果、PCI VGAの別のサービスが削除されます(私の場合)。
pciデバイスのIDは次のようになります。lspci -vv
幸運を祈る
答え2
すべてがほぼ正確です。最後に入れないでください'
。必ずそこにいるはずです。
- ファイルを生成します
/etc/udev/rules.d/99-zz.rules
(最後のルールで実行するため) - 次に、次を追加します。
ACTION==“add”, KERNEL=="0000:58:00.1", SUBSYSTEM=="pci", RUN="/bin/sh -c ‘echo 1 > /sys/bus/pci/devices/0000:58:00.1/remove"
0000:58:00.1/remove'"
- 動作しません。0000:58:00.1/remove"
- いいね