Hi everyone. I'll describe my setup and what I have already tried first.
I have installed Big Sur on MacBookPro6,2 (15'' mid-2010) via OCLP. Then I decided to install Windows 10 in (U)EFI mode. Officially my mbp supports only 8.1 via non-UEFI (legacy) mode.
Currently Windows works fine, both Nvidia and Intel video adapters are visible in Device Manager, both use MS Basic Display Driver. I've also disabled the Nvidia adapter there since it's failing. Only screen brightness can't be changed (I believe that porting nvidia_bl.c to WinAPI would fix it). But visual artefacts still appear on the screen from time to time - I believe Nvidia adapter is still trying to do something, but fortunately it doesn't kill windows (unlike macOS, where kernel panic takes place immediately in such case).
Now I'd like to run Windows on iGPU completely to avoid those artefacts, but I can't seem to understand how to achieve that. I've found an excellent thread about Windows+EFI, but too bad it's quite big and the most important info isn't given in the first post. I've managed to find required info there (maybe there's more, I didn't read all 40+ pages):
Elsewhere I found Linux instructions how to force iGPU:
which for EFI would be:
Once I execute the second statement in EFI shell, the screen goes black. Executing next commands and booting windows doesn't power the screen on.
I've also tried the following:
but the last command makes screen black with the same result as above. Even powering down iGPU with
My PCI devices:
Unfortunately, I'm completely unfamiliar with low-level hardware stuff like PCI, bridge, bus etc., all those commands are basically magic to me. Although the above links from the Windows+EFI thread slightly enlightened me, I still don't understand what I need to do to solve this.
Potentially I can convert windows to legacy booting, although I'm not sure if that'd work fine with OCLP. But if I remember correctly, in legacy mode windows can access only dGPU.
I have installed Big Sur on MacBookPro6,2 (15'' mid-2010) via OCLP. Then I decided to install Windows 10 in (U)EFI mode. Officially my mbp supports only 8.1 via non-UEFI (legacy) mode.
First, I tried using Winclone's command line utilities to deploy install.wim to the prepared volume. That seemed to have worked, I booted into the initial Windows setup screen (region, keyboard layout etc.), but every time I reached MS account login, Mac suddenly rebooted and after that I could no longer enter Windows or start the setup again. Tried the whole procedure twice - with the same result.
Then, I decided to try deploying install.wim with dism.exe directly. Found very detailed instruction for that, all worked fine, also deployed some Bootcamp drivers like it says and finally managed to bypass the MS account login screen. This time Windows setup crashed again (BSOD because of igdkmd64.sys - Intel graphics driver), but at later point. However, this time I was able to boot into Safe Mode (it showed me the OOBE screen again which I couldn't complete due to errors, but in the end managed to kill it and see the desktop) and delete graphics drivers - this finally let me boot Windows normally. Installed all Bootcamp drivers, but the same BSOD was back. Safe mode and delete drivers again. Then I installed DDU and deleted all drivers properly with it, also disabled Windows Update driver downloads to prevent the failing drivers being installed again.
Then, I decided to try deploying install.wim with dism.exe directly. Found very detailed instruction for that, all worked fine, also deployed some Bootcamp drivers like it says and finally managed to bypass the MS account login screen. This time Windows setup crashed again (BSOD because of igdkmd64.sys - Intel graphics driver), but at later point. However, this time I was able to boot into Safe Mode (it showed me the OOBE screen again which I couldn't complete due to errors, but in the end managed to kill it and see the desktop) and delete graphics drivers - this finally let me boot Windows normally. Installed all Bootcamp drivers, but the same BSOD was back. Safe mode and delete drivers again. Then I installed DDU and deleted all drivers properly with it, also disabled Windows Update driver downloads to prevent the failing drivers being installed again.
Currently Windows works fine, both Nvidia and Intel video adapters are visible in Device Manager, both use MS Basic Display Driver. I've also disabled the Nvidia adapter there since it's failing. Only screen brightness can't be changed (I believe that porting nvidia_bl.c to WinAPI would fix it). But visual artefacts still appear on the screen from time to time - I believe Nvidia adapter is still trying to do something, but fortunately it doesn't kill windows (unlike macOS, where kernel panic takes place immediately in such case).
Now I'd like to run Windows on iGPU completely to avoid those artefacts, but I can't seem to understand how to achieve that. I've found an excellent thread about Windows+EFI, but too bad it's quite big and the most important info isn't given in the first post. I've managed to find required info there (maybe there's more, I didn't read all 40+ pages):
- https://forums.macrumors.com/thread...ia-efi-no-bios-emulation.696523/post-20529412
- https://forums.macrumors.com/thread...ia-efi-no-bios-emulation.696523/post-14101770
Elsewhere I found Linux instructions how to force iGPU:
Code:
outb 0x728 1 # Switch select
outb 0x710 2 # Switch display
outb 0x740 2 # Switch DDC
outb 0x750 0 # Power down discrete graphics
which for EFI would be:
Code:
mm 728 1 -io
mm 710 2 -io
mm 740 2 -io
mm 750 0 -io
Once I execute the second statement in EFI shell, the screen goes black. Executing next commands and booting windows doesn't power the screen on.
I've also tried the following:
Code:
mm 000001003e 8 -pci
mm 0001000004 7 -pci
mm 750 0 -io
mm 750 2 -io
results in black screen for some reason... Although in EFI shell I see that the screen runs on dGPU.My PCI devices:
Code:
00 00 01 00 - bridge (pci/pci) - 10d device handle
00 01 00 00 - Nvidia VGA - 10e device handle
00 00 02 00 - Intel VGA - 110 device handle
Unfortunately, I'm completely unfamiliar with low-level hardware stuff like PCI, bridge, bus etc., all those commands are basically magic to me. Although the above links from the Windows+EFI thread slightly enlightened me, I still don't understand what I need to do to solve this.
Potentially I can convert windows to legacy booting, although I'm not sure if that'd work fine with OCLP. But if I remember correctly, in legacy mode windows can access only dGPU.
Last edited: