Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【deepin_V23_beta2】【一般】【有空】【集成测试】【安装器】新装系统重启后,grub界面位置中间偏左 #5436

Open
luodeepin opened this issue Sep 5, 2023 · 15 comments
Assignees
Labels
P3 一般优先

Comments

@luodeepin
Copy link

SUMMARY | 问题概要

  1. 与开发沟通,这个为位置显示问题
  2. 本问题对应集成链接:deepin-installer 6.0.27版本集成 #5427

SOFTWARE/OS VERSIONS | 软件/系统版本信息

https://cdimage.uniontech.com/daily-iso/image-beige/CUSTOM/mengyutao/20230905/deepin-23-beige-beta2-amd64-20230905-095314.iso

PRE-REQUIREMENT | 预置条件

安装镜像:https://cdimage.uniontech.com/daily-iso/image-beige/CUSTOM/mengyutao/20230905/deepin-23-beige-beta2-amd64-20230905-095314.iso

STEPS TO REPRODUCE | 复现步骤

  1. 新装镜像:https://cdimage.uniontech.com/daily-iso/image-beige/CUSTOM/mengyutao/20230905/deepin-23-beige-beta2-amd64-20230905-095314.iso
  2. 系统安装完成后,点击立即重启 拔掉U盘 - 等待进入grub界面,查看界面显示

OBSERVED RESULT | 观察到的结果

grub界面位置中间偏左

video.2.mp4

EXPECTED RESULT | 期望的结果

grub界面显示正常

ADDITIONAL INFORMATION | 额外补充

No response

@luodeepin luodeepin added the P3 一般优先 label Sep 5, 2023
@babyfengfjx babyfengfjx assigned Zeno-sole and unassigned babyfengfjx Sep 5, 2023
@babyfengfjx
Copy link

@Zeno-sole 请优先处理~

@hotime
Copy link

hotime commented Sep 5, 2023

这可能是因为dde-api项目中的adjust-grub-theme在生成grub主题时,如果参数为"auto"或"",会返回错误,并按照1024x768来生成主题。
https://github.com/linuxdeepin/dde-api/blob/master/adjust-grub-theme/main.go
490-500行
https://github.com/linuxdeepin/dde-api/blob/master/adjust-grub-theme/util.go
201-204行

应该需要优化一下adjust-grub-theme项目中的相关代码吧,如果为"auto"时想办法获取具体的分辨率数值。

@UTsweetyfish
Copy link
Member

UTsweetyfish commented Sep 5, 2023

这可能是因为dde-api项目中的adjust-grub-theme在生成grub主题时,如果参数为"auto"或"",会返回错误,并按照1024x768来生成主题。 https://github.com/linuxdeepin/dde-api/blob/master/adjust-grub-theme/main.go 490-500行 https://github.com/linuxdeepin/dde-api/blob/master/adjust-grub-theme/util.go 201-204行

应该需要优化一下adjust-grub-theme项目中的相关代码吧,如果为"auto"时想办法获取具体的分辨率数值。

感谢持续反馈!

这个问题的话,adjust-grub-theme 其实只会运行一次,而且是在安装器构建过程中运行的,不在用户的电脑的安装过程上。而安装器构建的时候是没有桌面的,也没有用户的语言信息。所以才会语言是英文,且分辨率错误。

如果用户手动运行的话,确实是会有你说的 1024x768 的问题,adjust-grub-theme 读取了 /etc/default/grub 下的 GRUB_GFXMODE

此前安装器会把 /etc/default/grubGRUB_GFXMODE 设置成 1024x768,而新版安装器会把 /etc/default/grubGRUB_GFXMODE 设置成 auto

可以让 adjust-grub-theme 运行 xrandr,获取 primary 分辨率。(这个行为是安装器之前的行为)可以参考 https://github.com/martyr-deepin/deepin-installer-reborn/blob/b3fa4a16f0634a1c162e5358922c7abfc2798254/hooks/before_chroot/31_get_screen_resolution.job#L6-L22

@Zeno-sole Zeno-sole assigned UTsweetyfish and unassigned Zeno-sole Sep 5, 2023
@hotime
Copy link

hotime commented Sep 5, 2023

这可能是因为dde-api项目中的adjust-grub-theme在生成grub主题时,如果参数为"auto"或"",会返回错误,并按照1024x768来生成主题。 https://github.com/linuxdeepin/dde-api/blob/master/adjust-grub-theme/main.go 490-500行 https://github.com/linuxdeepin/dde-api/blob/master/adjust-grub-theme/util.go 201-204行
应该需要优化一下adjust-grub-theme项目中的相关代码吧,如果为"auto"时想办法获取具体的分辨率数值。

感谢持续反馈!

这个问题的话,adjust-grub-theme 其实只会运行一次,而且是在安装器构建过程中运行的,不在用户的电脑的安装过程上。而安装器构建的时候是没有桌面的,也没有用户的语言信息。所以才会语言是英文,且分辨率错误。

如果用户手动运行的话,确实是会有你说的 1024x768 的问题,adjust-grub-theme 读取了 /etc/default/grub 下的 GRUB_GFXMODE

此前安装器会把 /etc/default/grubGRUB_GFXMODE 设置成 1024x768,而新版安装器会把 /etc/default/grubGRUB_GFXMODE 设置成 auto

可以让 adjust-grub-theme 运行 xrandr,获取 primary 分辨率。(这个行为是安装器之前的行为)可以参考 https://github.com/martyr-deepin/deepin-installer-reborn/blob/b3fa4a16f0634a1c162e5358922c7abfc2798254/hooks/before_chroot/31_get_screen_resolution.job#L6-L22

也就是说,后续需要调整一下adjust-grub-theme的运行时机,让他在系统安装阶段去运行,而非安装器构建过程中运行;并且同时,在adjust-grub-theme中增加相应代码获取primary分辨率(参考你给的链接)。这样理解对吗?

@UTsweetyfish
Copy link
Member

          xrandr是只有x可以跑的吧。能不能做到无论如何列表都居中呢,如果是台式机换了屏幕,那么是不是又偏移了呢

Originally posted by @Decodetalkers in linuxdeepin/dde-api#107 (comment)

@SuperEffie
Copy link

【问题备注】:grub界面显示偏小
【截图信息】:
grub

@hotime
Copy link

hotime commented Sep 5, 2023

          xrandr是只有x可以跑的吧。能不能做到无论如何列表都居中呢,如果是台式机换了屏幕,那么是不是又偏移了呢

Originally posted by @Decodetalkers in linuxdeepin/dde-api#107 (comment)

居中问题可以解决,在从theme.txt.tpl模板获取到初步计算出的数据后,可以先将启动菜单的宽、高都转换为最接近的非奇数百分比数值(根据这两个百分比相应调整left、top的百分比使启动菜单绝对居中),根据转换后的宽、高百分比对应的像素数值进行启动菜单的背景图绘制,这样可以保证居中。
只是这种情况下,因为启动菜单背景本身的一些特效是按相应分辨率生成的,如果实际分辨率改变,那效果会稍微打些折扣。

另外,因为字体大小、图标大小等是按原分辨率确定并生成的,这些不会随屏幕更换而改变,在极端情况下可能会造成显示问题。比如从4k屏幕换成1366x768的老屏幕,那字体会显得大的不得了(但这么极端应该少见吧)。
感觉可以考虑在控制中心 - 通用 - 启动菜单这里增加一个按钮,点击后在后台执行adjust-grub-theme,重新生成当前grub分辨率下对应的主题。

@UTsweetyfish
Copy link
Member

UTsweetyfish commented Sep 5, 2023

居中问题可以解决,在从theme.txt.tpl模板获取到初步计算出的数据后,可以先将启动菜单的宽、高都转换为最接近的非奇数百分比数值(根据这两个百分比相应调整left、top的百分比使启动菜单绝对居中),根据转换后的宽、高百分比对应的像素数值进行启动菜单的背景图绘制,这样可以保证居中。 只是这种情况下,因为启动菜单背景本身的一些特效是按相应分辨率生成的,如果实际分辨率改变,那效果会稍微打些折扣。

相对百分比这个我昨天就想改掉了。。。非奇数那个我觉得可能问题倒不是很大

另外,因为字体大小、图标大小等是按原分辨率确定并生成的,这些不会随屏幕更换而改变,在极端情况下可能会造成显示问题。比如从4k屏幕换成1366x768的老屏幕,那字体会显得大的不得了(但这么极端应该少见吧)。

但是就怕你说的“极端情况”..要么我昨天就直接改掉了

@UTsweetyfish
Copy link
Member

Grub 在部分环境下使用 GFXMODE=auto 不会选择可用的最高分辨率,adjust-grub-theme 生成的主题会不可用,因此回滚相关提交,Beta 2 发布使用此前默认行为。

Beta 2 暂时不解决该问题

@UTsweetyfish
Copy link
Member

UTsweetyfish commented Sep 8, 2023

此 bug 是因为解决高分屏引起的。Beta 2 不解决高分屏 Grub 糊的问题,因此已回滚相关代码。
目前大于 1024x768 分辨率下的行为是:grub 界面不偏,但是可能会模糊

对应集成:#5459

@kobe337 kobe337 removed their assignment Sep 11, 2023
@UTsweetyfish
Copy link
Member

此单暂不关闭,Beta 3 后继续跟踪

@kobe337
Copy link

kobe337 commented Sep 11, 2023

与研发同事确认,beta2版本使用原有配置,不作修改更新,待后续版本(beta3)继续修复动作

@UTsweetyfish
Copy link
Member

感觉可以考虑在控制中心 - 通用 - 启动菜单这里增加一个按钮,点击后在后台执行adjust-grub-theme,重新生成当前grub分辨率下对应的主题。

@meiyixiang 这个是不是可以考虑在正式版做一下

@UTsweetyfish
Copy link
Member

@meiyixiang 这个是不是可以考虑在正式版做一下

在控制中心做还是有点奇怪,可以在 deepin-tweak 做。转一下吧 @babyfengfjx

@babyfengfjx
Copy link

@meiyixiang 这个可以转成一个需求,待需求建立后,提供一下需求地址,然后指派回测试确认关闭issue。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P3 一般优先
Projects
Status: No status
Development

No branches or pull requests

8 participants