私のラップトップには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ファイルを変更するには:
- モニターの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
。) - 次のプログラムを使用して Windows または Wine で edid.bin ファイルを開きます。https://www.analogway.com/americas/products/software-tools/aw-edid-editor/
- 「詳細」タブの「CVT 1.2ウィザード」を使用して、144Hzのリフレッシュレートなどの内容を作成します。 (165hzは655Mhzよりもピクセルレートが高いため、165hzは許可されていないため、小さい値を入力する必要があります。)
- 編集した
edid.bin
ファイルを次の場所にコピーします。/lib/firmware/edid/edid.bin
- ファイルで
/etc/default/grub
次quiet splash
のように変更します。quiet splash drm.edid_firmware=eDP-1:edid/edid.bin
- このスクリプトを保存し
/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
- 実行し
sudo update-initramfs -u
てsudo update-grub
- 完璧!再起動..
源泉:
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
答え2
Archを使用している場合は、eminfedarの手順6と7を次のように置き換えます。
スクリプトをに保存せず/etc/initramfs-tools/hooks/edid
に保存してください/etc/initcpio/install/edid
。
スクリプト:
#!/bin/bash
build() {
add_file /lib/firmware/edid/edid.bin
}
help() {
cat <<HELPEOF
This hook add support for 165Hz
HELPEOF
}
実行可能にしてくださいchmod +x /etc/initcpio/install/edid
。
今追加アディド/etc/mkinitcpio.conf
このようにフック配列の末尾にHOOKS=(... fsck edid)
。
最後に、rebuild initramfsを使用しsudo mkinitcpio -P
てupdate grubを使用してくださいsudo grub-mkconfig -o /boot/grub/grub.cfg
。
PSリフレッシュ頻度がedid.bin
変更されていることを確認してください。私のもの読み取り専用わかりません。
このソリューションをより多くの人と共有してください。ノートブックでよく見られる問題を非常に効果的に解決します。