无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 29988|回复: 48
打印 上一主题 下一主题

VGAShim 在部分机器上花屏/无效的修复

    [复制链接]
跳转到指定楼层
1#
发表于 2020-3-29 15:02:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2010driver1998 于 2020-5-30 18:32 编辑

提醒:
如果你的显卡驱动工作正常的话,你不一定能看到VGAShim导致的花屏/黑屏问题!
因为Windows有显卡驱动就直接用显卡驱动了,没驱动的情况下才会用VESA模式,VGAShim才会起作用!
如果要在装好的系统上测试VGAShim,进安全模式就好了,VGAShim不工作的话是会黑屏的!

在设备管理器卸载/禁用显卡驱动可能会黑屏,原因不明,但抹黑重启后就能正常显示!
Win7的蓝屏不用VESA模式(应该是用的640x480 16色VGA模式),因此VGAShim并不能解决蓝屏时屏幕黑屏的问题!
2020/4/8 更新 v0.98.1
尝试修复部分机器提示“No display adapter found”,VGAShim无效的问题


===================== 以下是 0.98 版本 =========================、不知道会出现这个bug的机器有多少,我的小新700,UEFI是Phoenix的,用原作者的v0.97会花屏


原因是这样的,现在很多机器上UEFI开机会把分辨率设置到最大,在我的笔记本上就是1920x1080
VGAShim启动的时候就试图在1920x1080的屏幕上模拟一个1024x768的屏幕(从代码看应该会显示在中间?)

但Win7的winload.efi一上来就会将分辨率改成1024x768并绘制启动动画(不知道为啥,系统的VGA驱动要用int 10h,但winload.efi却不用,估计它直接用的UEFI GOP)
于是当Windows VGA驱动通过VGAShim模拟的VBE BIOS初始化显卡的时候,得到的framebuffer就是错的,效果就是花屏,但鼠标啥的都能工作

于是我在VGAShim上也加入了类似动作,启动时切到1024x768再模拟VBE BIOS,这样就不会花屏了

github fork https://github.com/driver1998/VgaShim/
下载地址 https://github.com/driver1998/VgaShim/releases/tag/v0.98.1





评分

参与人数 4无忧币 +20 收起 理由
蓝星明月 + 5 赞一个!
zhczf + 5 楼主是技术大神,支持
wintoflash + 5
freesoft00 + 5

查看全部评分

2#
发表于 2020-3-29 15:10:04 | 只看该作者
如何自定义vgashim的启动路径?

点评

VGAShim只能自动执行同ESP内的EFI\Microsoft\Boot\bootmgfw.efi...  详情 回复 发表于 2020-3-29 15:26
回复

使用道具 举报

3#
 楼主| 发表于 2020-3-29 15:26:00 | 只看该作者
叮叮咚咚 发表于 2020-3-29 15:10
如何自定义vgashim的启动路径?

VGAShim只能自动执行同ESP内的EFI\Microsoft\Boot\bootmgfw.efi...

点评

我想到一个情况,烦请楼主开示: 您说的是本地硬盘上、纯UEFI启动 Win7 x64 的情况。那么,如果纯UEFI下启动基于 Win7 的 x64 WinPE,该怎么办呢? 我想,如果让 VGAShim.efi 调用相同目录下的  详情 回复 发表于 2020-12-29 19:57
回复

使用道具 举报

4#
发表于 2020-3-29 16:06:47 | 只看该作者
过来学学
回复

使用道具 举报

5#
发表于 2020-3-29 16:22:01 | 只看该作者
感谢分享,备用一个
回复

使用道具 举报

6#
发表于 2020-3-29 16:39:20 | 只看该作者
感谢分享,备用一个
回复

使用道具 举报

7#
发表于 2020-3-29 19:20:52 | 只看该作者
只是win7pe有这个问题吗
回复

使用道具 举报

8#
发表于 2020-3-30 09:48:39 | 只看该作者
好东西,谢谢分享
回复

使用道具 举报

9#
发表于 2020-3-30 11:16:15 | 只看该作者
楼主是技术大神,支持
回复

使用道具 举报

10#
发表于 2020-3-30 16:01:25 | 只看该作者
不错。终于你站出来讲话了。一直都是以为小问题没有说
回复

使用道具 举报

11#
发表于 2020-3-30 16:01:32 | 只看该作者
不错。终于你站出来讲话了。一直都是以为小问题没有说
回复

使用道具 举报

12#
发表于 2020-4-3 08:36:39 | 只看该作者
请问如何修改引导这个文件,我直接在BCD中编辑将引导文件设置为\EFI\BOOT\VGAShim.efi 开机启动报错误0x0000007b,efi\boot\vgashim.efi不存在或者损坏

点评

这是UEFI程序,不是Windows Boot App(winload.efi、memtest.efi是这种类型),所以不能从bootmgr启动 直接在EFI环境下运行它即可(最简单的方法是把它改名为bootx64.efi然后覆盖掉EFI\Boot下的原文件) VGAShim执  详情 回复 发表于 2020-4-8 22:57
回复

使用道具 举报

13#
 楼主| 发表于 2020-4-8 22:57:33 | 只看该作者
kaixiin0917 发表于 2020-4-3 08:36
请问如何修改引导这个文件,我直接在BCD中编辑将引导文件设置为\EFI\BOOT\VGAShim.efi 开机启动报错误0x000 ...

这是UEFI程序,不是Windows Boot App(winload.efi、memtest.efi是这种类型),所以不能从bootmgr启动
直接在EFI环境下运行它即可(最简单的方法是把它改名为bootx64.efi然后覆盖掉EFI\Boot下的原文件)
VGAShim执行完后会自动寻找同ESP下的bootmgfw.efi启动Windows
回复

使用道具 举报

14#
发表于 2020-4-10 12:24:18 | 只看该作者
麻烦能说的详细一些么,论坛上都是发的用他启动,但是没写怎么实现,不需要去改BCD这个玩意么,如果不改BCD的话 怎么能实现通过vgashim.efi启动,我可以理解为把vgashim.eif直接替换掉bootx64.efi就可以,不用修改任何东西,对么
回复

使用道具 举报

15#
发表于 2020-4-11 03:11:52 | 只看该作者
大神是否方便在帖子中共享一下新版本的vgashim.efi和vgashim.bmp文件?
  特殊地区 打不开原版的网址 没法下载
回复

使用道具 举报

16#
发表于 2020-4-12 13:07:30 来自手机 | 只看该作者
大神的0.98.1版本确实修复了h81与h97芯片组主板报错找不到显卡的问题,实际测试现在关闭csm后win7pe可正常显示桌面了。
回复

使用道具 举报

17#
发表于 2020-4-12 16:05:34 | 只看该作者
不错,试试能否工作
回复

使用道具 举报

18#
发表于 2020-5-9 09:23:32 | 只看该作者
提示adapter found         no display 是啥问题

点评

0.98.1依然报错吗?开机时按键盘V键进debug模式看看有没有详细信息?、 另外试试refind在你的机器上能不能正常显示,修adapter not found参考了他们的代码  详情 回复 发表于 2020-5-30 18:29
回复

使用道具 举报

19#
 楼主| 发表于 2020-5-30 18:29:16 | 只看该作者
kaixiin0917 发表于 2020-5-9 09:23
提示adapter found         no display 是啥问题

0.98.1依然报错吗?开机时按键盘V键进debug模式看看有没有详细信息?、

另外试试refind在你的机器上能不能正常显示,修adapter not found参考了他们的代码
回复

使用道具 举报

20#
发表于 2020-7-6 09:42:15 来自手机 | 只看该作者
你好,0.98版vgashim我在zbook15g1上已经成功实现win7纯uefi启动,在此表示感谢。但是新买的锐龙4600H笔记本用三个版本的vgashim都未能成功启动win7,感觉是没有生效,无论是用win10的bootx64.efi,还是vgashim改名,启动win7都是卡四叶草。如果可能的话,还烦请抽空研究一二。

点评

开机的时候按V打开VGAShim的调试模式,然后按一次回车继续 应该会输出一些信息,拍照发上来看看  详情 回复 发表于 2020-8-16 23:05
回复

使用道具 举报

21#
发表于 2020-7-10 17:49:23 | 只看该作者
感谢您的分享。
回复

使用道具 举报

22#
 楼主| 发表于 2020-8-16 23:05:45 | 只看该作者
zxshxz 发表于 2020-7-6 09:42
你好,0.98版vgashim我在zbook15g1上已经成功实现win7纯uefi启动,在此表示感谢。但是新买的锐龙4600H笔记 ...

开机的时候按V打开VGAShim的调试模式,然后按一次回车继续
应该会输出一些信息,拍照发上来看看
回复

使用道具 举报

23#
发表于 2020-12-9 19:22:41 | 只看该作者
这个在OVMF反而用不了……

PS:
十代的WIN7驱动,问题还是太多
姑且搁置

点评

OVMF可以自己弄csm啊  详情 回复 发表于 2020-12-9 19:33
回复

使用道具 举报

24#
发表于 2020-12-9 19:33:38 | 只看该作者
求道者 发表于 2020-12-9 19:22
这个在OVMF反而用不了……

PS:

OVMF可以自己弄csm啊

点评

姑且还没那么无聊。 整了哪天坏了也只能自己兜着,毫无收益可言  详情 回复 发表于 2020-12-14 19:14
回复

使用道具 举报

25#
发表于 2020-12-14 19:14:21 | 只看该作者
wintoflash 发表于 2020-12-9 19:33
OVMF可以自己弄csm啊
Does OVMF support legacy booting, legacy option ROMs, CSM?

No. While OVMF may have UEFI firmware drivers for some legacy hardware, there is no planned legacy compatibility for OVMF. One reason for this is that there is currently no open source CSM module which could be used within OVMF. Another reason is that we would like to use OVMF to help drive out some legacy assumptions which might be made by software layers above the system firmware.


姑且还没那么无聊。
整了哪天坏了也只能自己兜着,毫无收益可言

点评

SeaBIOS 支持作为 OVMF 的 CSM 模块使用。 https://www.seabios.org/Build_overview [attachimg]470678[/attachimg]  详情 回复 发表于 2020-12-14 21:25
回复

使用道具 举报

26#
发表于 2020-12-14 21:25:03 | 只看该作者
求道者 发表于 2020-12-14 19:14
姑且还没那么无聊。
整了哪天坏了也只能自己兜着,毫无收益可言

SeaBIOS 支持作为 OVMF 的 CSM 模块使用。
https://www.seabios.org/Build_overview

回复

使用道具 举报

27#
发表于 2020-12-29 19:57:33 | 只看该作者
2010driver1998 发表于 2020-3-29 15:26
VGAShim只能自动执行同ESP内的EFI\Microsoft\Boot\bootmgfw.efi...

我想到一个情况,烦请楼主开示:

      您说的是本地硬盘上、纯UEFI启动 Win7 x64 的情况。那么,如果纯UEFI下启动基于 Win7 的 x64  WinPE,该怎么办呢?

      我想,如果让 VGAShim.efi 调用相同目录下的 bootmgfw.efi ,便捷、适用范围是不是可以更好一些?

点评

这想法很好,希望能改进  发表于 2020-12-30 22:54
回复

使用道具 举报

28#
发表于 2021-2-3 16:44:58 来自手机 | 只看该作者
27楼说的也很好,能不能设2个启动顺序,找不到第一个,可从第二个启动。
回复

使用道具 举报

29#
发表于 2021-2-3 16:54:59 来自手机 | 只看该作者
比如我的主板,设VGAShim.efi第一启动,每次开机只要发现有bootmgfw.efi,就会改成bootmgfw.efi第一启动。这样只有VGAShim.efi支持另一启动文件名,才能使用。
回复

使用道具 举报

30#
发表于 2021-2-3 16:59:57 来自手机 | 只看该作者
例如,我bootmgfw.efi改名win.efi或其他名称,VGAShim.efi找不到bootmgfw.efi,而选第二顺序启动win.efi,另类主板没发现bootmgfw.efi,就不会篡改启动顺序,就可使用VGAShim.efi了。

点评

你可以写一个startup.nsh脚本放在efi\boot\下面,这个一般情况下是优先级最高的 内容可以这么写  详情 回复 发表于 2022-10-10 16:02
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 04:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表