Debianアップデート後のi915のIOMMUパススルー問題

Debianアップデート後のi915のIOMMUパススルー問題

昨日の6ヶ月間の安定した運用の後、Debian 10ボックスをDebian 4.19.98-1+deb10u1(2020-04-27)にアップグレードしました。私はこのマシンでKVMハイパーバイザーとWindows 10 Proを仮想マシンとして実行しています。 Win VMは、Intel(R)Core(TM)i5-9600K CPUのi915グラフィックアダプタを使用します。この設定は比較的簡単で魅力的です。

仮想マシンマネージャのPCIパススルーはまだ機能します(つまり、PCIアドレスが認識され、アダプタをVMに追加できます)、WindowsはPCIグラフィックスデバイスを一般的な「ビデオコントローラ」としてのみ認識し、適切なドライバを見つけることができません。 。問題は、Debian が PCI デバイスを正しく認識しないことに関連している可能性があると思います。

アップグレード中に、Debian システムログにある次のメッセージが私の注意を引いたが、この *ERROR* メッセージがどのように関連しているかを完全に理解していません。どうやらi915グラフィックスカードと関係があるようですが、正確に何が問題でしょうか?接続されたモニターがないことがわかります(RDPを使用してWindows 10 Pro VMに接続しています...)。

どんなアドバイスも本当にありがとうございます。

Aug 15 10:56:10 server kernel: [9133931.108810] vfio-pci 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
Aug 15 10:56:10 server kernel: [9133931.129199] DMAR: Setting identity map for device 0000:00:02.0 [0x8b800000 - 0x8fffffff]
Aug 15 10:56:10 server kernel: [9133931.129248] [drm] VT-d active for gfx access
Aug 15 10:56:10 server kernel: [9133931.129249] [drm] Replacing VGA console driver
Aug 15 10:56:10 server kernel: [9133931.130210] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
Aug 15 10:56:10 server kernel: [9133931.130211] [drm] Driver supports precise vblank timestamp query.
Aug 15 10:56:10 server kernel: [9133931.131579] i915 0000:00:02.0: firmware: direct-loading firmware i915/kbl_dmc_ver1_04.bin
Aug 15 10:56:10 server kernel: [9133931.131912] [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
Aug 15 10:56:11 server kernel: [9133932.247060] [drm] failed to retrieve link info, disabling eDP
Aug 15 10:56:11 server kernel: [9133932.247340] [drm:intel_power_domains_verify_state [i915]] *ERROR* power well always-on refcount/domain refcount mismatch (refcount
 8/domains refcount 0)
Aug 15 10:56:11 server kernel: [9133932.247352] [drm:intel_power_domains_verify_state [i915]] *ERROR* power well DC off refcount/domain refcount mismatch (refcount 8/
domains refcount 0)
Aug 15 10:56:11 server kernel: [9133932.247363] [drm:intel_power_domains_verify_state [i915]] *ERROR* power well power well 2 state mismatch (refcount 8/enabled 0)
Aug 15 10:56:11 server kernel: [9133932.247372] [drm:intel_power_domains_verify_state [i915]] *ERROR* power well power well 2 refcount/domain refcount mismatch (refco
unt 8/domains refcount 0)
Aug 15 10:56:11 server kernel: [9133932.247382] [drm:intel_power_domains_verify_state [i915]] *ERROR* power well DDI A/E IO power well refcount/domain refcount mismatch (refcount 8/domains refcount 0)
Aug 15 10:56:11 server kernel: [9133932.247392] [drm:intel_power_domains_verify_state [i915]] *ERROR* power well DDI B IO power well refcount/domain refcount mismatch (refcount 8/domains refcount 0)
Aug 15 10:56:11 server kernel: [9133932.247401] [drm:intel_power_domains_verify_state [i915]] *ERROR* power well DDI C IO power well refcount/domain refcount mismatch (refcount 8/domains refcount 0)
Aug 15 10:56:11 server kernel: [9133932.247411] [drm:intel_power_domains_verify_state [i915]] *ERROR* power well DDI D IO power well refcount/domain refcount mismatch (refcount 8/domains refcount 0)
Aug 15 10:56:11 server kernel: [9133932.261129] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.261765] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.262406] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.263041] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.263682] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.264355] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.265029] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.265679] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.266374] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.267072] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.267751] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.268436] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.269117] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.269814] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.270511] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.271192] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.271870] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.272542] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.273258] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.273952] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.274605] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.275284] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.275972] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.276592] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.277287] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.277981] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.278682] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.279458] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.280238] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.280986] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.281725] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.282517] [drm:intel_dp_aux_xfer [i915]] *ERROR* dp_aux_ch not done status 0x00000000
Aug 15 10:56:11 server kernel: [9133932.282593] [drm] Initialized i915 1.6.0 20180719 for 0000:00:02.0 on minor 2
Aug 15 10:56:11 server kernel: [9133932.283978] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
Aug 15 10:56:11 server kernel: [9133932.284039] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input31
Aug 15 10:56:11 server kernel: [9133932.284142] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Aug 15 10:56:11 server kernel: [9133932.301972] [drm] Cannot find any crtc or sizes
Aug 15 10:56:11 server kernel: [9133932.319310] [drm] Cannot find any crtc or sizes
Aug 15 10:56:11 server kernel: [9133932.336871] [drm] Cannot find any crtc or sizes

dmesg | grep i915再起動後、i915グラフィックアダプタが認識されるように見えるフラグメントも添付しました。興味深いことに、これは起動中にモニターを接続した場合にのみ発生し、そうでない場合は同じコマンドがnilを返します。 Debian は、モニターが接続されていない状態で i915 グラフィックスカードを認識または無効にできませんか?

モニタが接続されていないときにLinuxがグラフィックアダプタを無効にするのを防ぐ方法はありますか?

Aug 15 13:13:49 server kernel: [    1.749350] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
Aug 15 13:13:49 server kernel: [    1.749376] i915 0000:00:02.0: firmware: direct-loading firmware i915/kbl_dmc_ver1_04.bin
Aug 15 13:13:49 server kernel: [    1.749661] [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
Aug 15 13:13:49 server kernel: [    2.298395] [drm] Initialized i915 1.6.0 20180719 for 0000:00:02.0 on minor 0
Aug 15 13:13:49 server kernel: [    3.235635] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])

修正する

私はDebianが以前にインストールした無料ではなくIntelグラフィックドライバを使用していないことに気づきました。そして、このlshwフラグメントに見られるように、一般的なIntelドライバも使用します。

*-display
     description: VGA compatible controller
     product: Intel Corporation
     vendor: Intel Corporation
     physical id: 2
     bus info: pci@0000:00:02.0
     version: 00
     width: 64 bits
     clock: 33MHz
     capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
     configuration: driver=vfio-pci latency=0
     resources: irq:134 memory:aa000000-aaffffff memory:90000000-9fffffff ioport:6000(size=64) memory:c0000-dffff

アップデート2

「初心者の間違い」を悟り、一歩さらに進みます。私はapt-get dist-upgradeただ走るのではなく走る必要がありますapt-get upgrade。現在システムが稼働しています。Debian 4.19.132-1 (2020-07-24)

アンインストールして再インストールしましたが、firmware-misc-nonfree「すでに最新バージョン(20190114-2)」のみを受け取りました。これは本当に最新バージョンですか?しかし、i915ドライバはDebianで認識されているようです(最後の2行目を参照)。

  *-display
       description: VGA compatible controller
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 00
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:132 memory:aa000000-aaffffff memory:90000000-9fffffff ioport:6000(size=64) memory:c0000-dffff

アップデート3

Buster-backportsから完全なファームウェア-linux-nonfreeパッケージをインストールした後でも:

deb http://deb.debian.org/debian buster-backports main contrib non-free

apt-get update
apt-get -t buster-backports install firmware-linux-nonfree

アップデート前のようにグラフィックアダプタをウィンドウに正しく渡すことができません。 :(

私が注目したものの1つは日付です。20180719私が実行しているとき、行4からdmesg | grep i915

[    1.791551] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[    1.791733] i915 0000:00:02.0: firmware: direct-loading firmware i915/kbl_dmc_ver1_04.bin
[    1.799002] [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[    3.684845] [drm] Initialized i915 1.6.0 20180719 for 0000:00:02.0 on minor 0
[    4.856056] i915 0000:00:02.0: fb1: inteldrmfb frame buffer device
[    5.601611] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])

apt list --installed | grep nonfree帰国日にもかかわらず20190717:

firmware-linux-nonfree/buster-backports,now 20190717-2~bpo10+1 all [installed]
firmware-misc-nonfree/buster-backports,now 20190717-2~bpo10+1 all [installed]

ベストアンサー1

おすすめ記事