无忧启动论坛

标题: grub2和qemu的 std显卡在uefi上有兼容性问题? [打印本页]

作者: hzyry2046    时间: 4 天前
标题: grub2和qemu的 std显卡在uefi上有兼容性问题?
如题。 grub2为github/a1ive/grub的release版本,qemu为pacman的QEMU emulator version 10.1.50 (v10.1.0-1314-gf3f2ad1193)
efi固件来自于zenemu。
grub2生成参数为release包的默认集成参数,grub.cfg内容如下
set pager=1
insmod all_video
insmod video_bochs
insmod video_cirrus
insmod efi_gop
insmod efi_uga
insmod font
insmod gfxterm
insmod gfxmenu
insmod gettext
insmod jpeg
insmod png

#加载unicode字体显示中文
loadfont ${prefix}/fonts/unicode.pf2
set locale_dir=${prefix}/locale
set lang=zh_CN
#设置分辨率
set gfxmode=1024x768
terminal_output gfxterm
#设置背景图片
background_image /boot/menu.jpg

#倒计时
set timeout=5

#颜色
set color_normal=green/black
set color_highlight=white/cyan

menuentry "启动winpe x64" {
ntboot --efi /boot/x86_64-efi /boot/x86_64.wim
}

menuentry "启动winpe x64(备用方法)" {
wimboot --rawwim --gui @:bootmgfw.efi:/boot/x86_64-efi @:boot.wim:/boot/x86_64.wim
}
menuentry "进入uefi设置" {
reset --fwui;
}
menuentry "test console" {
background_image
gfxterm console
terminal_output console
}

menuentry "转入bios启动" {
chainloader /boot/csmwrap.efi
}

menuentry "重启" {
reset
}

menuentry "关机" {
halt
}
只要以任何形式执行terminal_output console就会导致分辨率异常
ntboot/wimboot模块都出现这个问题,触发时屏幕异常,启动加载条在serial显示。
只有std显卡会出这个问题,cirrus在选择选项的时候有概率底部花屏,但是不会发生启动异常。virtio-vga,vmware显卡均无问题
如果没有terminal_output gfxterm就不会触发。
作者: hzyry2046    时间: 4 天前
BV13944zLExQ,这个是测试视频。
作者: a66    时间: 4 天前
不太了解
作者: wintoflash    时间: 4 天前
删掉这三行
insmod all_video
insmod video_bochs
insmod video_cirrus
也不要嵌入这三个模块。
https://lists.gnu.org/archive/ht ... 25-09/msg00265.html
作者: 面条渣渣    时间: 3 天前
技术贴,谢谢分享
作者: hzyry2046    时间: 3 天前
本帖最后由 hzyry2046 于 2025-10-15 10:15 编辑
wintoflash 发表于 2025-10-14 23:09
删掉这三行
insmod all_video
insmod video_bochs

好的,我上完早八回去试试
您附的那个网址我点进去显示403 forbidden =不使用all_video模块并重新打包,修改cfg之后解决了

作者: hzyry2046    时间: 3 天前
hzyry2046 发表于 2025-10-15 09:45
好的,我上完早八回去试试
您附的那个网址我点进去显示403 forbidden

acpi all_video blocklist boot cat chain configfile cpio echo efiload efi_gop exfat ext2 extcmd fat fb file font getkey gfxmenu gfxterm gfxterm_background gfxterm_menu gzio halt help hexdump iso9660 jpeg linux linuxefi loadenv loopback ls lzopio map minicmd newc normal ntboot ntfs part_gpt part_msdos png probe progress reboot regexp sbpolicy search tar terminal terminfo test tga udf vhd video video_colors video_fb videoinfo wimboot xzio
这个是模块列表arch/x64/buildin.txt的内容,里面没看到video_cirrus和video_bochs,只看到all_video video video_colors video_fb videoinfo
我的${prefix}里面没有放外置模块,只调用内置模块
作者: wintoflash    时间: 3 天前
hzyry2046 发表于 2025-10-15 10:10
acpi all_video blocklist boot cat chain configfile cpio echo efiload efi_gop exfat ext2 extcmd fat ...

把all_video换成efi_gop和efi_uga。
all_video是个假模块,就是所有图形驱动的意思。
作者: hzyry2046    时间: 3 天前
wintoflash 发表于 2025-10-15 10:59
把all_video换成efi_gop和efi_uga。
all_video是个假模块,就是所有图形驱动的意思。

原来如此,去掉就正常了(必须重新生成efi,cfg不加载还不行)
作者: guong    时间: 3 天前
来学习了
作者: a66    时间: 3 天前
看看
作者: 面条渣渣    时间: 前天 03:51
学习学习,感谢分享




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3