i915ドライバが165hz画面で40hzで停止する

i915ドライバが165hz画面で40hzで停止する

私のラップトップにはi7-10875Hプロセッサがあります。 NVIDIA dGPUを無効にしたため、Intelドライバでのみ問題が発生します。

私はDebian 11を使用しています。

カーネルを使ったテスト:

  • 5.10.0-9-amd64
  • 5.14.0-0.bpo.2-amd64

XorgとWaylandを使ってみましたが、ノートパソコンの画面は40hzで止まった。

しかし、画面は165hzです。

私はこれがXorg設定やxrandr設定とは関係がないので、ドライバレベルに関連していると思います。 xrandrのヘルツ値を165に設定しても、画面はまだ40hzで実行されます。

Windowsのように165hzでどのように実行することができますか?


私のlshw -cビデオは次のようになります。

*-display                 
       description: VGA compatible controller
       product: CometLake-H GT2 [UHD Graphics]
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       logical name: /dev/fb0
       version: 05
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm vga_controller bus_master cap_list fb
       configuration: depth=32 driver=i915 latency=0 mode=2560x1440 visual=truecolor xres=2560 yres=1440
       resources: iomemory:600-5ff iomemory:400-3ff irq:138 memory:6002000000-6002ffffff memory:4000000000-400fffffff ioport:6000(size=64) memory:c0000-dffff

これは私のlspci -kです。

00:02.0 VGA compatible controller: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05)
    DeviceName: Onboard - Video
    Subsystem: Tongfang Hongkong Limited UHD Graphics
    Kernel driver in use: i915
    Kernel modules: i915

これは私のglxinfoです。

OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.5
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.3.5
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.3.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

ベストアンサー1

長い努力の後、私はこの問題を解決しました。

解決策:

実際の解決策は、Intel Graphics(i915)ドライバを更新する必要があることです。

一時的な解決策は、ラップトップ画面のEDIDファイルを編集し、ピクセルレートを655MHzの制限に近づけることです。

EDIDファイルを変更するには:

  1. モニターのEDIDバイナリを取得します。cp /sys/devices/pci0000\:00/0000\:00\:02.0/drm/card0/card0-eDP-1/edid ~/edid.bin(eDP-1は画面で、0000:00:02.0はIntelドライバのPCIeバスIDです。velspciを使用してインポートできますxrandr。)
  2. 次のプログラムを使用して Windows または Wine で edid.bin ファイルを開きます。https://www.analogway.com/americas/products/software-tools/aw-edid-editor/
  3. 「詳細」タブの「CVT 1.2ウィザード」を使用して、144Hzのリフレッシュレートなどの内容を作成します。 (165hzは655Mhzよりもピクセルレートが高いため、165hzは許可されていないため、小さい値を入力する必要があります。)
  4. 編集したedid.binファイルを次の場所にコピーします。/lib/firmware/edid/edid.bin
  5. ファイルで/etc/default/grubquiet splashのように変更します。 quiet splash drm.edid_firmware=eDP-1:edid/edid.bin
  6. このスクリプトを保存し/etc/initramfs-tools/hooks/edidて実行してchmod +x /etc/initramfs-tools/hooks/edid実行可能にします。
#!/bin/sh
PREREQ=""
prereqs()
{
    echo "$PREREQ"
}

case $1 in
prereqs)
    prereqs
    exit 0
    ;;
esac

. /usr/share/initramfs-tools/hook-functions
# Begin real processing below this line
mkdir -p "${DESTDIR}/lib/firmware/edid"
cp -a /lib/firmware/edid/edid.bin "${DESTDIR}/lib/firmware/edid/edid.bin"
exit 0
  1. 実行しsudo update-initramfs -usudo update-grub
  2. 完璧!再起動..

源泉:

https://forums.developer.nvidia.com/t/165hz-internal-screen-stuck-at-40hz

https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1814938/comments/5

https://gitlab.freedesktop.org/drm/intel/-/issues/125#note_1068317

おすすめ記事