csmwrap icon indicating copy to clipboard operation
csmwrap copied to clipboard

ACPI passthrough fails on a generic laptop

Open ChariskRichy opened this issue 2 months ago • 15 comments

I have a no-name Celeron N3450 laptop with an HD Graphics 500 integrated graphics card and a no-name, knock-off motherboard BIOS. The SeaVGABIOS provided by CSMWrap worked amazingly. I could switch boot devices using ESC, and even USB 3.0 flash drives were recognized! However, things didn't go smoothly. I subsequently ran Windows 11 PE and then Windows 2003 PE, and both resulted in ACPI-related BSoDs (ACPI_BIOS_ERROR and 0x000000A5). Some versions of DOS would display a "Divide Error," while others worked fine.

I then installed Windows 7, and it still had the A5 BSoD. However, it's a bit strange that CSMWrap only passes the UEFI ACPI table directly to the legacy environment. I tried installing Windows 7 purely using UEFI, but I couldn't get the HD 500 graphics driver to work properly under Win7. It got stuck at the boot animation, but everything else worked perfectly! I even heard the Windows 7 startup sound. I blindly typed shutdown /s /t 000, and the computer played the shutdown sound followed by a black screen. At least this shows that Windows 7 is working properly, but the HD 500 driver isn't working, causing the startup animation to get stuck.

So if CSMWrap can pass through ACPI directly, the A5 BSoD shouldn't occur. Any way to fix it, please?

I hope your project continues to improve!

Image

Image

ChariskRichy avatar Oct 06 '25 03:10 ChariskRichy

See this https://github.com/FlyGoat/CSMWrap/issues/109

SeaVGABIOS needs a patch to load the VBT required by Intel GPU driver.

Some others have tried workarounds of using Intel VBIOS from a similar system but there are risks of damaging the panel or broken output with that method.

xCuri0 avatar Oct 07 '25 16:10 xCuri0

@xCuri0 Causes hardware damage? Interesting XD So, you're saying that even without the ACPI issue, I wouldn't see Windows 7 running flawlessly at 1920x1080 on my laptop as I expect? Well, that's not the main issue, at least. The key issue is ACPI. This BSOD occurs during the early boot phase, before Intel VBT should appear, as far as I know. Windows tries to access the ACPI tables to initialize some things, and then it crashes. Does this seem like a problem on my end? After all, it seems everyone else has successfully installed Windows using CSMWrap without any early or late boot issues :( Do you have any suggestions? If so, I can provide you with any relevant data, such as a complete acpidump (AML file). I wonder if the ACPI issue here can be fixed with a minor modification and a bootloader injection, like the Hackintosh SSDT hotpatch. Regardless, thank you and the team for your great contribution!

ChariskRichy avatar Oct 09 '25 12:10 ChariskRichy

@ChariskRichy weren't you able to install Windows 7 without ACPI BSOD ?

What OS did it originally come with and how was it installed ?

xCuri0 avatar Oct 09 '25 13:10 xCuri0

@xCuri0 Granted, I can install Windows 7 without the BSod, but that's only under UEFI boot conditions, which doesn't use the basic vga.sys driver. And I'm having trouble getting the HD 500 driver working. So, I'm hoping CSMWrap will allow me to access the desktop for some debugging, perhaps configuring Remote Desktop? Then, after switching back to UEFI boot, I can connect via Remote Desktop and try to install the HD 500 driver. In other words, is there any hope for the HD 500 running on Windows 7? Is there any other way to use vga.sys to achieve basic screen output while booting purely in UEFI?

It came with Windows 10 installed, which, after all, has the best support for this "malformed" device. Installation is a normal process, since this device only supports UEFI.

ChariskRichy avatar Oct 09 '25 14:10 ChariskRichy

My guess is that this has something to do with memory mapping; when I was working on getting Windows running on the original Apple TV, I had this BSOD due to the ACPI table being overwritten by Windows' memory manager on the TV real hardware but not in a VM.

Can you see the BSOD on Windows 7? If so, what are the 4 numbers that follow it? See https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0xa5--acpi-bios-error as a reference.

DistroHopper39B avatar Oct 09 '25 19:10 DistroHopper39B

@ChariskRichy

So even without using CSMWrap you can't install the Intel iGPU driver on Windows 7 ? It's weird that it would work on 10 but not 7 on hardware from that era.

CSMWrap with SeaVGABIOS cannot install the Intel iGPU driver because of missing VBT it's a known issue even on coreboot SeaBIOS.

xCuri0 avatar Oct 10 '25 02:10 xCuri0

@xCuri0 Yeah, that's really strange. This machine has an N3450 Celeron CPU and HD500 graphics, and it struggles to even run Windows 10, but it won't let me install Windows 7. It's a real headache. My usual approach to Windows 7 is to install it in Windows PE first, then manually delete vga.sys and modify the registry so that the VgaSave driver will never be loaded. Then, I use dism.exe to inject the HD500 driver I found for Windows 7 (which is questionable). Then, I boot the machine and wait for it to deploy after getting stuck at the boot animation. However, after the first reboot, it's still stuck at the boot animation, seemingly completely inoperable. I've also tried open source projects like VgaShim and UefiSeven, but they don't seem to be much use; the machine still gets stuck at the boot animation (four-leaf clover). Maybe I should just give up 😂. Perhaps running a lightweight Linux distribution on this machine is the best idea.

ChariskRichy avatar Oct 10 '25 15:10 ChariskRichy

@DistroHopper39B With CSMWrap, I can see the BSod Screen. Without CSMWrap, the output will freeze at the boot animation with the system actually finishing booting.

Makes me look forward to tinkering with this wacky laptop sometime soon. Anyway, thanks for the advice!

ChariskRichy avatar Oct 10 '25 15:10 ChariskRichy

@ChariskRichy Maybe deleting the vga.sys and modifying registry is causing the issue, have you tried just using UefiSeven alone ?

xCuri0 avatar Oct 11 '25 14:10 xCuri0

@xCuri0 Of course I tried. Then a small colored stripe appeared at the top of the boot animation caused by screen distortion. Then the system froze and would not even continue deploying (waited half an hour without a reboot, caps lock indicator did not respond)

ChariskRichy avatar Oct 11 '25 15:10 ChariskRichy

@DistroHopper39B With CSMWrap, I can see the BSod Screen. Without CSMWrap, the output will freeze at the boot animation with the system actually finishing booting.

What are the 4 numbers next to the STOP code in parentheses?

DistroHopper39B avatar Oct 11 '25 20:10 DistroHopper39B

@DistroHopper39B I'm sorry I can't reproduce the BSod in a short time, because I'm busy recently and don't have much time to play with that stupid laptop. Please wait a little longer, thank you for your understanding!

ChariskRichy avatar Oct 12 '25 05:10 ChariskRichy

@ChariskRichy No worries.

DistroHopper39B avatar Oct 12 '25 13:10 DistroHopper39B

@ChariskRichy use FlashBoot 3.3n bootx64.efi for win7 UEFI64 booting.

It emulates the VGA and generally doesn't stuck at boot splash screen.

ages2001 avatar Oct 13 '25 00:10 ages2001

@ages2001 I tried this many years ago, but it didn't work. There was no improvement except that the display area of ​​the boot animation was limited to the middle of the screen.

ChariskRichy avatar Oct 13 '25 17:10 ChariskRichy