有联想小新pro14 i9朋友装ubuntu的吗,交流下

CPU/显卡/打印机/USB设备等硬件问题
回复
zax0zax
帖子: 32
注册时间: 2012-06-02 14:42

有联想小新pro14 i9朋友装ubuntu的吗,交流下

#1

帖子 zax0zax » 2023-11-09 15:44

我的目前升级到了 6.2.0-36-generic 内核。一直都不能设置刷新率到120hz,只能固定60hz.
其它功能正常
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#2

帖子 astolia » 2023-11-14 16:03

提供点线索:
https://bbs.archlinux.org/viewtopic.php?id=289701 这篇帖子6楼里面提到小新pro14锐龙版的海外版本Ideapad Pro 5 14APH8,它的显示器的edid数据有错误。而从德国论坛的原始帖子看,出错的地方正好是120hz显示的配置。那个帖子的楼主也正是手动修正了错误数据后,恢复了120hz的显示功能

如果你确认和他是同样的原因,那么可以按同样的方式处理,在mkinitcpio之前的步骤应该都是一样的。ubuntu上没有mkinitcpio,用update-initramfs代替,
如果需要在initramfs里包含,在/etc/initramfs-tools/hooks下面创建个可执行shell脚本,内容可以参考/usr/share/initramfs-tools/hooks下面的kbd文件,不要PREREQ,用copy_exec把文件复制进去
zax0zax
帖子: 32
注册时间: 2012-06-02 14:42

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#3

帖子 zax0zax » 2024-06-20 16:29

astolia 写了: 2023-11-14 16:03 提供点线索:
https://bbs.archlinux.org/viewtopic.php?id=289701 这篇帖子6楼里面提到小新pro14锐龙版的海外版本Ideapad Pro 5 14APH8,它的显示器的edid数据有错误。而从德国论坛的原始帖子看,出错的地方正好是120hz显示的配置。那个帖子的楼主也正是手动修正了错误数据后,恢复了120hz的显示功能

如果你确认和他是同样的原因,那么可以按同样的方式处理,在mkinitcpio之前的步骤应该都是一样的。ubuntu上没有mkinitcpio,用update-initramfs代替,
如果需要在initramfs里包含,在/etc/initramfs-tools/hooks下面创建个可执行shell脚本,内容可以参考/usr/share/initramfs-tools/hooks下面的kbd文件,不要PREREQ,用copy_exec把文件复制进去
可惜,我看不懂
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#4

帖子 astolia » 2024-06-20 16:58

zax0zax 写了: 2024-06-20 16:29 可惜,我看不懂
看不懂你早说啊。

先安装edid-decode工具

代码: 全选

sudo apt install edid-decode
再检查显示器的edid数据。

代码: 全选

edid-decode < /sys/class/drm/card1-eDP-1/edid
你的机型上可能不是card1-eDP-1这个,可以用xrandr看看当前的是哪一个,也可以用/sys/class/drm/下面的挨个去试

看最后的部分有没有这么一段

代码: 全选

Block 1, DisplayID Extension Block:
  Version: 1.3
  Extension Count: 0
  Display Product Type: Extension Section
  Video Timing Modes Type 1 - Detailed Timings Data Block:
    DTD:  2880x1800  120.000207 Hz  16:10   228.720 kHz    695.310000 MHz (aspect 16:10, no 3D stereo)
               Hfront   48 Hsync  32 Hback   80 Hpol N
               Vfront    3 Vsync   6 Vback   97 Vpol N
  Checksum: 0xf0 (should be 0xf8)
Checksum: 0x98
看DTD开头那行,表示这段是针对2880x1800分辨率下120hz刷新率的设置,但后面的checksum校验码错了,所以linux认为这段是无效数据,忽略了这段,导致没有120hz的选项。

当确认是edid数据的问题后,就可以手动修复了。先确认edid原始数据是不是这样,一个字符都不能错。这个原始数据会显示在上面edid-decode命令执行后的最开始处

代码: 全选

00 ff ff ff ff ff ff 00 0e 6f 16 14 00 00 00 00
00 20 01 04 b5 1e 13 78 03 21 15 a8 53 49 9c 25
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 ce 87 40 a0 b0 08 6a 70 30 20
36 00 2d bc 10 00 00 18 00 00 00 fd 00 28 78 e5
e5 46 01 0a 20 20 20 20 20 20 00 00 00 fe 00 43
53 4f 54 20 54 33 0a 20 20 20 20 20 00 00 00 fe
00 4d 4e 45 30 30 37 5a 41 31 2d 35 0a 20 01 af

70 13 79 00 00 03 01 14 9a 0f 01 05 3f 0b 9f 00
2f 00 1f 00 07 07 69 00 02 00 05 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 98
如果有任何不一致,把你的数据发上来,不要继续再执行下面的命令
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#5

帖子 astolia » 2024-06-20 17:20

完全一致的话,就可以动手修正checksum,生成新的edid数据了。如果上一帖中edid-decode命令中的路径不是card1-eDP-1,这里也写实际的情况

代码: 全选

xxd -p /sys/class/drm/card1-eDP-1/edid | sed -E 's/f098$/f890/g' | xxd -p -r > edid_new.bin
为防万一,再用edid-decode检查一下生成的edid_new.bin文件,确认一下是不是修正了checksum的错误

代码: 全选

edid-decode < edid_new.bin
如果没问题,把生成的edid_new.bin文件复制到/lib/firmware目录下面

代码: 全选

sudo cp edid_new.bin /lib/firmware/
然后让内核启动时使用这个edid数据。

编辑/etc/default/grub文件,在GRUB_CMDLINE_LINUX那行后面加上drm.edid_firmware=eDP-1:edid_new.bin,改成这个样子

代码: 全选

GRUB_CMDLINE_LINUX="drm.edid_firmware=eDP-1:edid_new.bin"
如果不是card1-eDP-1,这里也别写eDP-1(前面的cardX的X可以不同),写实际的情况
也可以写在GRUB_CMDLINE_LINUX_DEFAULT里,但只会对每个内核的默认启动项有效

更新grub配置

代码: 全选

sudo update-grub
创建个可执行的/etc/initramfs-tools/hooks/edid脚本程序,内容如下

代码: 全选

#!/bin/sh
cp --parents /lib/firmware/edid_new.bin ${DESTDIR}
确保可执行权限

代码: 全选

sudo chmod 755 /etc/initramfs-tools/hooks/edid
然后更新initrd,如果只更新当前内核的,把后面的-k all去掉

代码: 全选

sudo update-initramfs -u -k all
该做的就做完了,可以重启看效果了
zax0zax
帖子: 32
注册时间: 2012-06-02 14:42

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#6

帖子 zax0zax » 2024-07-17 15:52

❯ edid-decode < /sys/class/drm/card1-eDP-1/edid

edid-decode (hex):

00 ff ff ff ff ff ff 00 0e 6f 16 14 00 00 00 00
00 20 01 04 b5 1e 13 78 03 21 15 a8 53 49 9c 25
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 d3 87 40 a0 b0 08 6a 70 30 20 -- 这里不一样
36 00 2d bc 10 00 00 18 00 00 00 fd 00 28 78 e5
e5 46 01 0a 20 20 20 20 20 20 00 00 00 fe 00 43
53 4f 54 20 54 33 0a 20 20 20 20 20 00 00 00 fe
00 4d 4e 45 30 30 37 5a 41 31 2d 35 0a 20 01 aa -- 这里不一样

70 13 79 00 00 03 01 14 9a 0f 01 05 3f 0b 9f 00
2f 00 1f 00 07 07 69 00 02 00 05 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 98

----------------

Block 0, Base EDID:
EDID Structure Version & Revision: 1.4
Vendor & Product Identification:
Manufacturer: CSO
Model: 5142
Made in: 2022
Basic Display Parameters & Features:
Digital display
Bits per primary color channel: 10
DisplayPort interface
Maximum image size: 30 cm x 19 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4
First detailed timing includes the native pixel format and preferred refresh rate
Display is continuous frequency
Color Characteristics:
Red : 0.6562, 0.3261
Green: 0.2851, 0.6103
Blue : 0.1445, 0.0595
White: 0.3134, 0.3291
Established Timings I & II: none
Standard Timings: none
Detailed Timing Descriptors:
DTD 1: 2880x1800 60.009596 Hz 8:5 114.378 kHz 347.710000 MHz (301 mm x 188 mm)
Hfront 48 Hsync 32 Hback 80 Hpol N
Vfront 3 Vsync 6 Vback 97 Vpol N
Display Range Limits:
Monitor ranges (Bare Limits): 40-120 Hz V, 229-229 kHz H, max dotclock 700 MHz
Alphanumeric Data String: 'CSOT T3'
Alphanumeric Data String: 'MNE007ZA1-5'
Extension blocks: 1
Checksum: 0xaa

----------------

Block 1, DisplayID Extension Block:
Version: 1.3
Extension Count: 0
Display Product Type: Extension Section
Video Timing Modes Type 1 - Detailed Timings Data Block:
DTD: 2880x1800 120.000207 Hz 16:10 228.720 kHz 695.310000 MHz (aspect 16:10, no 3D stereo)
Hfront 48 Hsync 32 Hback 80 Hpol N
Vfront 3 Vsync 6 Vback 97 Vpol N
Checksum: 0xf0 (should be 0xf8)
Checksum: 0x98
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#7

帖子 astolia » 2024-07-17 16:08

zax0zax 写了: 2024-07-17 15:52 00 ff ff ff ff ff ff 00 0e 6f 16 14 00 00 00 00
00 20 01 04 b5 1e 13 78 03 21 15 a8 53 49 9c 25
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 d3 87 40 a0 b0 08 6a 70 30 20 -- 这里不一样
36 00 2d bc 10 00 00 18 00 00 00 fd 00 28 78 e5
e5 46 01 0a 20 20 20 20 20 20 00 00 00 fe 00 43
53 4f 54 20 54 33 0a 20 20 20 20 20 00 00 00 fe
00 4d 4e 45 30 30 37 5a 41 31 2d 35 0a 20 01 aa -- 这里不一样
运气不错,不同的地方只有前面这段,也没有f098结尾的,你可以接着执行5楼的那些命令了
zax0zax
帖子: 32
注册时间: 2012-06-02 14:42

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#8

帖子 zax0zax » 2024-07-17 16:24

我好激动,版主 :em54 :em58 :em58 :em58 ........
稍后我试下.
zax0zax
帖子: 32
注册时间: 2012-06-02 14:42

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#9

帖子 zax0zax » 2024-07-18 10:25

成功了....

谢谢老大.操作一下舒服多了. 哈哈
sushl15
帖子: 1
注册时间: 2024-08-18 3:15
系统: ubuntu24.04

Re: 有联想小新pro14 i9朋友装ubuntu的吗,交流下

#10

帖子 sushl15 » 2024-08-18 3:17

大佬,太牛逼了,感谢
回复