barrykn / big-sur-micropatcher

A primitive USB patcher for installing macOS Big Sur on unsupported Macs
1.24k stars 174 forks source link

MBP 6,2/2010 Ethernet patching fails because of AMD graphics card #160

Open dgaastra opened 3 years ago

dgaastra commented 3 years ago

Dear Developers,

Thanks for making such a great tool to support Big Sur on older Macs.

We have a problem with a MBP 6,2/2010 where ethernet does not work, and unfortunately, it cannot be patched because of AMD graphics card errors during the patch process.

Could not use 'com.apple.kext.AMDRadeonX3000' because: Cannot find symbol...

kmutil failed. See above output...

Is there anyway to forget about the graphics card and just path the ethernet?

Thanks Dennis

IMG_5072

Ausdauersportler commented 3 years ago

A quick shot may be using the patch-kext.sh --2011 instead.

This excludes HD3000 and GeForce Tesla and the High Sierra nvenet extensions. Nevertheless you will not have a nice user feeling, your HD3000 has no acceleration with Big Sur and your may use the MacBook better remotely from the terminal than via the GUI.

You obviously were able to set up the fitting OpenCore config.

dgaastra commented 3 years ago

Hallo Ausdauer-Sportler,

Tried with --2011 and --2012. Still the same error ... and ethernet does not work. The graphics are not that important: they are OK. We really need ethernet to work. Is there another way? Thanks. Dennis.

Ausdauersportler commented 3 years ago

Hi!

Are you able to experiment a little bit and editing the patch-kext.sh script like this?

Comment out line 295: # INSTALL_HD3000="YES"

This would avoid the installation of the HD3000 kexts which IMHO only to be used if a user has such a CPU (SandyBridge) iMac 2011 and MacBookPro 2011 but using the complete 2010 extension stack.

dgaastra commented 3 years ago

Hallo Ausdauer-Sportler,

Thanks for your tip. Unfortunately, we have thrown the machine away, since it did not want to boot anymore beyond a grey screen. We tried everything we could, including recovery boot options, option key boot, resetting the various RAMs... but never got beyond the grey booting screen. Interesting side-note: this non-recoverable grey screen boot started after we tried booting with the left shift key held down for "Safe-Mode".

Greetings Dennis

gonvelho commented 3 years ago

I have the same problem. Tried commenting Install HD3000 didn't work. Same error.

Ausdauersportler commented 3 years ago

First of o all:

You cannot run the patch-kext.sh twice. If you already had a successful run you need to use thepatch-kext.sh -u to revert back to the original state (more or less, the seal will remain broken).

Possibly your system can be used with this patcher.

Ausdauersportler commented 3 years ago

Okay, if you are willing to edit the patch-kext.sh of the stock v0.5.1 micropatcher again please try this:

  1. Add this attachment in compressed form exactly as I uploaded it to the payloads/kexts folder (it is the High Sierra AMDRadeonX3000.kext). In case you cannot manage to download without extracting you need to compress it again using this command line zip -r -X AMDRadeonX3000.kext.zip AMDRadeonX3000.kext

AMDRadeonX3000.kext.zip

  1. Change this part in the patch-kext.sh as shown below add the two lines which unzips the AMDRadeonX3000.kext.
    if [ "x$INSTALL_HD3000" = "xYES" ]
    then
        echo 'Installing High Sierra Intel HD 3000 kexts'
        rm -rf AppleIntelHD3000* AppleIntelSNB*

        unzip -q "$IMGVOL/kexts/AppleIntelHD3000Graphics.kext-17G14033.zip"
        unzip -q "$IMGVOL/kexts/AppleIntelHD3000GraphicsGA.plugin-17G14033.zip"
        unzip -q "$IMGVOL/kexts/AppleIntelHD3000GraphicsGLDriver.bundle-17G14033.zip"
        unzip -q "$IMGVOL/kexts/AppleIntelSNBGraphicsFB.kext-17G14033.zip"
        fixPerms AppleIntelHD3000* AppleIntelSNB*

        unzip -q "$IMGVOL/kexts/AMDRadeonX3000.kext.zip"               
        fixPerms AMDRadeonX3000*
    fi
  1. Uncomment the HD3000 line again to get all these files installed.

  2. Make sure you have a unpatched systems as mentioned in the post before...

gonvelho commented 3 years ago

Thanks, but no luck. Chow and chmod not such file or directory AMDRadeonX3000* (it's compressed as zip on the kext folder inside the installer drive) I did a -u before and it uninstalled. The patch always gave a dmutil error. Never worked clean. Anyway, dmutil complains about different fails of dependency on com.apple.AppleGraphicsDeviceControl not found It keeps changing which driver feels to meet dependency issues each time I run the patch.

Ausdauersportler commented 3 years ago

There is still an uncorrected error within the patch-kext.sh from the v0.5.1. It deletes accidentally the AppleGraphicsDeviceControl.kext on the -u run. Please check out my fork and use the dev-v0.5.5 (latest development release).

You need to install Big Sur again.

If you use an Big Sur version 11.2 or later you can skip the OpenCore and use the install-setvars.sh as described on the original 0.5.1 GitHub page.

gonvelho commented 3 years ago

Thanks. Formatted the drive, installed and everything works. Did a mistake and not installed in the usb drive the 0.5.5 version. From scratch, the patch worked (some error messages while processing, but running like a charm and with wifi). Now the big dream is to have Metal on the HD3000 or possibility of changing the GPU.

Ausdauersportler commented 3 years ago

Thanks for coming back! I will leave this change in the current dev and possibly port it back to 0.5.4.Another little step forward.

hworksinc commented 3 years ago

@dgaastra @Ausdauersportler

I also experienced the error on my 2012 MacBook Pro (non-retina) when running the post-install kext patch:

Error 1x1
Password:a BootKernelExtensions.kc
a SystemKernelExtensions.kc
Error occurred while building a collection:
1: One or more binaries has an error which prevented linking. See other errors.
2: Could not use 'com.apple.kext.AMDRadeonX3000' because: Cannot find symbol for metaclass pointed to by '__ZN37AMDRadeonX3000_AMDAccelDisplayMachine10superClassE'. Expected symbol '__ZN22IOAccelDisplayMachine210gMetaClassE' to be defined in another kext
com.apple.kext.AMDRadeonX3000 specific:
1: Cannot find symbol for metaclass pointed to by '__ZN37AMDRadeonX3000_AMDAccelDisplayMachine10superClassE'. Expected symbol '__ZN22IOAccelDisplayMachine210gMetaClassE' to be defined in another kext
...
...
Checking for KernelCollections backup...
Backup not found. Performing backup now. This may take a few minutes.
Backing up original KernelCollections to:
/System/Volumes/Update/mnt1/System/Library/KernelCollections/KernelCollections-20D91.tar.lz4
Beginning patched IO80211Family.kext installation
Installing mojave-hybrid WiFi patch
Using kmutil to rebuild boot collection...
Using kmutil to rebuild system collection...
kmutil failed. See above output for more information.
patch-kexts.sh cannot continue

I was scratching my head for the best part of this past weekend, since I can't find any mention of AMD Radeon X3000 anywhere in the BenSova patch script, only the Intel HD3000. Saw a few reports of the error on Google with the only fix being a complete erase and reinstall.

Then I realized, this Catalina install that I'm upgrading has been steadily upgraded (or restored from Time Machine backups) from El Cap on forward. I used to use the DosDude patchers when this install was on my Late 2008 MacBook Pro. Those patchers DID contain patched kexts for the AMD Radeon X3000. I also ALWAYS restore the system settings from the Time Machine backups, which would bring those kexts forward even after a clean install. So I looked in my /Library/Extensions folder and low and behold there was the full set of X3000 kexts as well as a few others that I haven't needed for upwards of 5 years. I cleaned those out and Patched Sur was able to complete the kext patch with no issues!

Ausdauersportler commented 3 years ago

Moving from 32bit to 64bit one should not reinstall system settings from Time Machine. Additionally you just may install software and libs not running at all. It is time for a clear cut.

Possibly we should add a warning about this in the docs.

If you use Patched Sur you should open an issue on the Patched Sur Github page.

BTW: You should really check out OpenCore Legacy Patcher. This is the future.