Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

Athanti

macrumors newbie
Nov 20, 2018
27
23
Don't know if this was just a problem that I had on my system or it was a general 'bug' on our unsupported Macs. If I clicked on any of the icons on the top right hand corner of the menu bar ( battery , wifi , notifications Siri ....it still crashes when I click on time though ) it would crash my system and take me back to sign in screen. I fixed this by going into System Preferences - Accessibility - and then setting reduce transparency and setting Menu Bar to large.

I have since noted when using Kext Droplet that when the process is complete I get a notification that is has done it's magic and get the pop up to reboot. Prior to finding this fix it would just crash back to the sign in screen. May not make that much difference to Kext being ' dropletted ' but just thought I would mention it.
This fix worked for me too on MBP 8.2
 

Attachments

  • Screenshot 2020-07-05 at 8.28.51 PM.png
    Screenshot 2020-07-05 at 8.28.51 PM.png
    44.8 KB · Views: 305

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
I just made a new prelinkedkernel fix that should work for any "non-APFS and legacy USB Mac", it works without opencore, it includes the AppleHDA.kext (HighSierra) the patched IO80211Family.kext (for AirPortBrcm4331 Wifi cards) and Ethernet for Nvidia chipset Mac.

edit:
From BigSur beta 3 use this instead: BigSur Penryn beta3 prelinkedkernel fix.command.zip
 
Last edited:

justperry

macrumors G5
Aug 10, 2007
12,631
9,967
I'm a rolling stone.
Update: That is likely a dead end as...

sudo kextcache -I /Volumes/BigSur/Users/howarth/mntpoint/

produces...

KernelCache ID: 0CFA9ECE9A2232F12F7F1F3F83A6C6C5
symlink("../../../PrelinkedKernels/prelinkedkernel", "/Volumes/BigSur/Users/howarth/mntpoint/Library/Apple/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache") failed 2 (No such file or directory)

There seems to be a bug in terminal or whatever, I typed the command and path, a no go, I than typed:
sudo kextcache -I and dragged the folder to it, oddly that did work./Confused
 

quaccOS

macrumors regular
Apr 19, 2020
126
208
I just made a new prelinkedkernel fix that should work for any "non-APFS and legacy USB Mac", it works without opencore, it includes the AppleHDA.kext (HighSierra) the patched IO80211Family.kext (for AirPortBrcm4331 Wifi cards) and Ethernet for Nvidia chipset Mac.

To install it directly from BigSur use the "BigSur prelinkedkernel fix4", from other APFS macOS use the "prelinkedkernel fix4 beta1", otherwise you can also replace it manually.
prelinkedkernel fix4 beta1 script fixed Wi-Fi instantly! – and I ran it from my Catalina partition too. I thought non-BS volumes couldn't understand the BS APFS system, e.g. Cat shows the BS System volume as Update etc.

Internal audio devices are still not detected, and I'm worried it might be because my speakers & mic aren't the original Apple ones. I had to replace them with some cheap replica years ago due to liquid damage – but they work fine in Catalina.

Next thing would be enabling graphics acceleration…but I have NVIDIA GeForce 320M, and everyone has different GPUs – it will probably take forever.

Menu Bar clock is definitely a software bug. Any click on it logs you out, and the Date & Time preferences for the Menu Bar clock are all greyed out. Beta 2 will probably fix it
 

Alex-Microsmeta

macrumors 6502
Jul 14, 2018
376
630
Rome
Can you briefly describe exactly which kext you replaced in Big Sur to create the prelinkedkernel from...

legacy usb prelinkedkernel b
Can you briefly describe exactly which kext you replaced in Big Sur to create the prelinkedkernel from...

legacy usb prelinkedkernel beta1

On my MacPro 3,1, with AppleHDA.kext and IO80211Family.kext removed from /System/Library/Extensions and Kext-droplet used to install...

LegacyUSBInjector.kext
LegacyUSBVideoSupport.kext
AppleHDA.kext 281.52
AppleIntelPIIXATA.kext

from those in the Catalina Patcher app and with...

IO80211Family.kext 1200.12.2

from Catalina 10.15.5 installed, booting under your prelinkedkernel works. However when I try to rebuild my own local copy of a prelinkedkernel with 'sudo kextcache -I /; sudo kcditto', that prelinked kernel reboots in the middle of the boot process.

When booted under your prelinkedkernel, I see that neither LegacyUSBInjector.kext nor LegacyUSBVideoSupport.kext appears to be loaded (which is the same behavior as under patched Catalina). The loaded AppleHDA.kext has the same 281.52 version. AppleIntelPIIXATA.kext is loaded and the DVD drive works. IO80211Family.kext is loaded and has the same 1200.12.2 version.

The size of my prelinkedkernel.bad, attached, is larger than...

legacy usb prelinkedkernel beta1
-rw-r--r--@ 1 howarth staff 19702112 Jul 5 06:54 prelinkedkernel

result from 'sudo kextcache -I /; sudo kcditto' for the above kexts
-rw-r--r-- 1 howarth staff 25749489 Jul 5 09:31 prelinkedkernel.bad

Dropbox link to download the problem prelinkedkernel (compressed).
prelinkedkernel.bad.zip

Since there ia also a
eta1

On my MacPro 3,1, with AppleHDA.kext and IO80211Family.kext removed from /System/Library/Extensions and Kext-droplet used to install...

LegacyUSBInjector.kext
LegacyUSBVideoSupport.kext
AppleHDA.kext 281.52
AppleIntelPIIXATA.kext

from those in the Catalina Patcher app and with...

IO80211Family.kext 1200.12.2

from Catalina 10.15.5 installed, booting under your prelinkedkernel works. However when I try to rebuild my own local copy of a prelinkedkernel with 'sudo kextcache -I /; sudo kcditto', that prelinked kernel reboots in the middle of the boot process.

When booted under your prelinkedkernel, I see that neither LegacyUSBInjector.kext nor LegacyUSBVideoSupport.kext appears to be loaded (which is the same behavior as under patched Catalina). The loaded AppleHDA.kext has the same 281.52 version. AppleIntelPIIXATA.kext is loaded and the DVD drive works. IO80211Family.kext is loaded and has the same 1200.12.2 version.

The size of my prelinkedkernel.bad, attached, is larger than...

legacy usb prelinkedkernel beta1
-rw-r--r--@ 1 howarth staff 19702112 Jul 5 06:54 prelinkedkernel

result from 'sudo kextcache -I /; sudo kcditto' for the above kexts
-rw-r--r-- 1 howarth staff 25749489 Jul 5 09:31 prelinkedkernel.bad

Dropbox link to download the problem prelinkedkernel (compressed).
prelinkedkernel.bad.zip

Can you briefly describe exactly which kext you replaced in Big Sur to create the prelinkedkernel from...

legacy usb prelinkedkernel beta1

On my MacPro 3,1, with AppleHDA.kext and IO80211Family.kext removed from /System/Library/Extensions and Kext-droplet used to install...

LegacyUSBInjector.kext
LegacyUSBVideoSupport.kext
AppleHDA.kext 281.52
AppleIntelPIIXATA.kext

from those in the Catalina Patcher app and with...

IO80211Family.kext 1200.12.2

from Catalina 10.15.5 installed, booting under your prelinkedkernel works. However when I try to rebuild my own local copy of a prelinkedkernel with 'sudo kextcache -I /; sudo kcditto', that prelinked kernel reboots in the middle of the boot process.

When booted under your prelinkedkernel, I see that neither LegacyUSBInjector.kext nor LegacyUSBVideoSupport.kext appears to be loaded (which is the same behavior as under patched Catalina). The loaded AppleHDA.kext has the same 281.52 version. AppleIntelPIIXATA.kext is loaded and the DVD drive works. IO80211Family.kext is loaded and has the same 1200.12.2 version.

The size of my prelinkedkernel.bad, attached, is larger than...

legacy usb prelinkedkernel beta1
-rw-r--r--@ 1 howarth staff 19702112 Jul 5 06:54 prelinkedkernel

result from 'sudo kextcache -I /; sudo kcditto' for the above kexts
-rw-r--r-- 1 howarth staff 25749489 Jul 5 09:31 prelinkedkernel.bad

Dropbox link to download the problem prelinkedkernel (compressed).
prelinkedkernel.bad.zip

@jackluke since there is also a video kext and I have the same Nvidia Geforce 320M, do you thing that it could also fix my acceleration on Macmini4,1 ? Thank you!
 
  • Like
Reactions: webg3

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
Internal audio devices are still not detected, and I'm worried it might be because my speakers & mic aren't the original Apple ones. I had to replace them with some cheap replica years ago due to liquid damage – but they work fine in Catalina.

If the replaced audio board worked on Catalina it should work on BigSur too, for AppleHDA.kext , try the @jhowarth method, that is to remove it from BigSur System, in this way also the snapshot should ignore it using instead the one embedded in the prelinkedkernel, try these steps:

mount
(detect your diskXsYsZ)

sudo mount -o nobrowse -t apfs /dev/diskXsY /Volumes/AnyDisk/AnyEmptyFolder/

cd /Volumes/AnyDisk/BigSur/System/Library/Extensions/

sudo rm -R AppleHDA.kext

reboot and maybe Sound works through the AppleHDA.kext in my prelinkedkernel.
[automerge]1593978191[/automerge]
@jackluke since there is also a video kext and I have the same Nvidia Geforce 320M, do you thing that it could also fix my acceleration on Macmini4,1 ? Thank you!

Without the binary exec in the Frameworks folder it is very hard (maybe through prelinkedkernel method BigSur could understand a bit the Catalina Frameworks replaced with their binaries), you only could get framebuffer video and brightness control, but I haven't yet tested this because I need for now stock IOGraphicsFamily.kext .
 

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
telemetrap.kext 0.22 is the version I used, as I already told I have an untethered, unsealed, non-snapshot BigSur, and I don't know how delete snapshots on an non-APFS (or legacy USB) Mac, I make these prelinkedkernel from different machines.

Anyway if you use the ASentientBot Hax3.dylib and install BigSur directly from Catalina desktop on your MacPro but on internal SATA disk, this should work to disable BigSur snapshots and use "sudo mount -uw /" from normal booting or single user mode.

Here is the link: https://forums.macrumors.com/thread...unsupported-macs-thread.2242172/post-28619108

You need an "Install macOS Beta.app" BigSur stock (9,58 GB), and copy it in Catalina /Applications/ , then run the ASentientBot Hax3.app to install it on your internal SATA disk.

Okay. I am starting to get a handle on the situation. It appears that for snapshots, the built prelinkedkernel stays in /Library/Apple/System/Library/PrelinkedKernels/.

-rw-r--r-- 1 root wheel 18086854 Jul 5 11:37 prelinkedkernel

which differed from what is present in /System/Library/PrelinkedKernels that kcditto installs under snapshots.

-rw-r--r-- 1 root wheel 25749489 Jan 1 2020 prelinkedkernel

The timestamp on the prelinkedkernel in /Library/Apple/System/Library/PrelinkedKernels/ matches the time when I dropped AAAMouSSE.kext onto Kext-droplet. So it looks like Kext-droplet just needs enhanced to find a way to get the prelinkedkernel moved over from /Library/Apple/System/Library/PrelinkedKernels/ to /System/Library/PrelinkedKernels so kcditto finds it.
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
Okay. I am starting to get a handle on the situation. It appears that for snapshots, the built prelinkedkernel stays in /Library/Apple/System/Library/PrelinkedKernels/.

-rw-r--r-- 1 root wheel 18086854 Jul 5 11:37 prelinkedkernel

which differed from what is present in /System/Library/PrelinkedKernels that kcditto installs under snapshots.

-rw-r--r-- 1 root wheel 25749489 Jan 1 2020 prelinkedkernel

The timestamp on the prelinkedkernel in /Library/Apple/System/Library/PrelinkedKernels/ matches the time when I dropped AAAMouSSE.kext onto Kext-droplet. So it looks like Kext-droplet just needs enhanced to find a way to get the prelinkedkernel moved over from /Library/Apple/System/Library/PrelinkedKernels/ to /System/Library/PrelinkedKernels so kcditto finds it.

prelinkedkernel since Catalina is copied in that "Data Volume" (writable) path and "kcditto" double copies it to System and Preboot, I guess Kext-droplet is mainly for BootKernelExtensions.kc and the kext copied in /Library/Extensions/ are /Library/KernelCollections/AuxiliaryKernelExtensions.kc , when you use the prelinkedkernel those are ignored, so to use properly Kext-droplet you should don't use the prelinkedkernel method, but currently seems this is the only way to boot with a non-APFS and legacy usb Mac.

The prelinkedkernel that I uploaded are also for some APFS Mac that have a sealed snapshot Volume, because it can override some system Extensions for example the Wifi and telemetry plugin.
 

hvds

macrumors 6502a
Sep 1, 2017
852
2,032
Switzerland
prelinkedkernel fix4 beta1 script fixed Wi-Fi instantly! – and I ran it from my Catalina partition too. I thought non-BS volumes couldn't understand the BS APFS system, e.g. Cat shows the BS System volume as Update etc.

Internal audio devices are still not detected, and I'm worried it might be because my speakers & mic aren't the original Apple ones. I had to replace them with some cheap replica years ago due to liquid damage – but they work fine in Catalina.

Next thing would be enabling graphics acceleration…but I have NVIDIA GeForce 320M, and everyone has different GPUs – it will probably take forever.

Menu Bar clock is definitely a software bug. Any click on it logs you out, and the Date & Time preferences for the Menu Bar clock are all greyed out. Beta 2 will probably fix it
Success with prelinkedkernel fix4 beta1 also here on MBP5,2: Ethernet works now!
Internal audio not yet, I'll follow your advice to remove AppleHDA.kext.

Thanks jackluke!
 

Attachments

  • Bildschirmfoto 2020-07-05 um 21.47.37.png
    Bildschirmfoto 2020-07-05 um 21.47.37.png
    84.5 KB · Views: 171

quaccOS

macrumors regular
Apr 19, 2020
126
208
I removed AppleHDA.kext, but unfortunately no audio devices detected.
No Audio.png

I wonder if other people can't change their Menu Bar Clock preferences either (and if they click it, does it log them out too). And I also About This Mac shows I have a 21-inch display…rather than 13.3 inch.
Menu Bar Clock Bug.png
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
I removed AppleHDA.kext, but unfortunately no audio devices detected.
View attachment 930980

I wonder if other people can't change their Menu Bar Clock preferences either (and if they click it, does it log them out too). And I also About This Mac shows I have a 21-inch display…rather than 13.3 inch.
View attachment 930981

Then remount as before the BigSur System and copy the HighSierra AppleHDA.kext in that path (anyway I guess you should make a new snapshot with the removed or replaced AppleHDA.kext )

Menu bar clock is a common BigSur beta issue, the 21 inch display is because there are not yet Nvidia GeForce Tesla drivers installed for Framebuffer video, but ASentientBot already tested them and worked.
 

webg3

macrumors 6502a
Jul 19, 2018
508
774

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
Okay. I am starting to get a handle on the situation. It appears that for snapshots, the built prelinkedkernel stays in /Library/Apple/System/Library/PrelinkedKernels/.

-rw-r--r-- 1 root wheel 18086854 Jul 5 11:37 prelinkedkernel

which differed from what is present in /System/Library/PrelinkedKernels that kcditto installs under snapshots.

-rw-r--r-- 1 root wheel 25749489 Jan 1 2020 prelinkedkernel

The timestamp on the prelinkedkernel in /Library/Apple/System/Library/PrelinkedKernels/ matches the time when I dropped AAAMouSSE.kext onto Kext-droplet. So it looks like Kext-droplet just needs enhanced to find a way to get the prelinkedkernel moved over from /Library/Apple/System/Library/PrelinkedKernels/ to /System/Library/PrelinkedKernels so kcditto finds it.

I have tested this approach which requires multiple reboots [updated]...

Code:
Disable authenticated-root in nvram using csrutil from Big Sur from the root level of a patched Catalina usb installer with..

sudo csrutil2 authenticated-csr disable

Also make sure to set...

sudo nvram boot-args="-no_compat_check"

Install Big Sur on an external drive from a supported machine. Attach this drive under Catalina mount it's Preboot volume.

cd /Volumes/Preboot/*/System/Library/CoreServices/
curl https://github.com/jacklukem/BigSurfixes/raw/master/prelinkedkernel%20fix/com.apple.Boot.plist --progress-bar -L -o /private/tmp/com.apple.Boot.plist
sudo cp -a /private/tmp/com.apple.Boot.plist .
curl "https://raw.githubusercontent.com/jacklukem/BigSurfixes/master/legacy%20usb%20prelinkedkernel%20beta1/prelinkedkernel?raw=true" --progress-bar -L -o /private/tmp/prelinkedkernel
sudo mv PlatformSupport.plist PlatformSupport.plist2
sudo cp -a /private/tmp/com.apple.Boot.plist .
cd ../PrelinkedKernels
sudo cp -a /private/tmp/prelinkedkernel .

Attach a usb memory stick with Kext-droplet.dmg and the following kexts files

from Catalina Patchers kext)
AppleHDA.kext
AppleIntelPIIXATA.kext
LegacyUSBInjector.kext
LegacyUSBVideoSupport.kext

(from 10.15.5)
IO80211Family.kext

AAAMouSSE.kext v0.93
telemetrap.kext v0.22

*** commands below remove the incompatible kext ****

mkdir /Users/howarth/mntpoint
sudo mount -o nobrowse -t apfs /dev/disk7s5 /Volumes/BigSur/Users/howarth/mntpoint
cd /Volumes/BigSur/Users/howarth/mntpoint/System/Library/Extensions
sudo rm -fr IO80211Family.kext
sudo rm -fr AppleHDA.kext
cd ~
bless --folder /Volumes/BigSur/Users/howarth/mntpoint/System/Library/CoreServices --bootefi --create-snapshot

*** reboot to make modified snapshot active root ***

*** Use Kext-Droplet to add above kext files and reboot as requested ***

*** TODO: find reliable command to trigger prelinked kernel build 

*** commands to rebuild and move new prelinkedkernel to /System/Library/PrelinkedKernels for kcditto to find ***

sudo mount -o nobrowse -t apfs /dev/disk7s5 /Volumes/BigSur/Users/howarth/mntpoint
cd /Volumes/BigSur/Users/howarth/mntpoint/System/Library/PrelinkedKernels
sudo cp /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel prelinkedkernel
sudo cp /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel immutablekernel
cd ~
sudo bless --folder /Volumes/BigSur/Users/howarth/mntpoint/System/Library/CoreServices --bootefi --create-snapshot

*** reboot to make modified snapshot active root ***

sudo kcditto

I also restored PlatformSupport.plist by adding this change for MacPro 3,1

Code:
--- PlatformSupport.plist2    2020-06-18 03:45:15.000000000 -0400
+++ PlatformSupport.plist    2020-07-05 08:00:40.000000000 -0400
@@ -66,6 +66,7 @@
         <string>Mac-35C5E08120C7EEAF</string>
         <string>Mac-E43C1C25D4880AD6</string>
         <string>Mac-53FDB3D8DB8CA971</string>
+        <string>Mac-F42C88C8</string>
     </array>
     <key>SupportedFeatures</key>
     <array>
@@ -112,6 +113,7 @@
         <string>MacBookAir6,2</string>
         <string>Macmini8,1</string>
         <string>MacPro7,1</string>
+        <string>MacPro3,1</string>
         <string>iMacPro1,1</string>
     </array>
</dict>
 
Last edited:
  • Like
Reactions: TimothyR734

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
I have tested this approach which requires multiple reboots...

Code:
Disable authenticated-root in nvram using csrutil from Big Sur from the root level of a patched Catalina usb installer with..

sudo csrutil2 authenticated-csr disable

Also make sure to set...

sudo nvram boot-args="-no_compat_check"

Install Big Sur on an external drive from a supported machine. Attach this drive under Catalina mount it's Preboot volume.

cd /Volumes/Preboot/*/System/Library/CoreServices/
curl https://github.com/jacklukem/BigSurfixes/raw/master/prelinkedkernel%20fix/com.apple.Boot.plist --progress-bar -L -o /private/tmp/com.apple.Boot.plist
sudo cp -a /private/tmp/com.apple.Boot.plist .
curl "https://raw.githubusercontent.com/jacklukem/BigSurfixes/master/legacy%20usb%20prelinkedkernel%20beta1/prelinkedkernel?raw=true" --progress-bar -L -o /private/tmp/prelinkedkernel
sudo mv PlatformSupport.plist PlatformSupport.plist2
sudo cp -a /private/tmp/com.apple.Boot.plist .
cd ../PrelinkedKernels
sudo cp -a /private/tmp/prelinkedkernel .

Attach a usb memory stick with Kext-droplet.dmg and the following kexts files

from Catalina Patchers kext)
AppleHDA.kext
AppleIntelPIIXATA.kext
LegacyUSBInjector.kext
LegacyUSBVideoSupport.kext

(from 10.15.5)
IO80211Family.kext

AAAMouSSE.kext v0.93
telemetrap.kext v0.22

*** commands below remove the incompatible kext ****

mkdir /Users/howarth/mntpoint
sudo mount -o nobrowse -t apfs /dev/disk7s5 /Volumes/BigSur/Users/howarth/mntpoint
cd /Volumes/BigSur/Users/howarth/mntpoint/System/Library/Extensions
sudo rm -fr IO80211Family.kext
sudo rm -fr AppleHDA.kext
bless --folder /Volumes/BigSur/Users/howarth/mntpoint/System/Library/CoreServices --bootefi --create-snapshot

*** reboot to make modified snapshot active root ***

*** Use Kext-Droplet to add above kext files and reboot as requested ***

*** commands to move newly built prelinkedkernel to /System/Library/PrelinkedKernels for kcditto to find ***

cd /Volumes/BigSur/Users/howarth/mntpoint/System/Library/PrelinkedKernels
sudo cp /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel prelinkedkernel
sudo cp /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel immutablekernel
bless --folder /Volumes/BigSur/Users/howarth/mntpoint/System/Library/CoreServices --bootefi --create-snapshot

*** reboot to make modified snapshot active root ***

sudo kcditto

I also restored PlatformSupport.plist by adding this change for MacPro 3,1

Code:
--- PlatformSupport.plist2    2020-06-18 03:45:15.000000000 -0400
+++ PlatformSupport.plist    2020-07-05 08:00:40.000000000 -0400
@@ -66,6 +66,7 @@
         <string>Mac-35C5E08120C7EEAF</string>
         <string>Mac-E43C1C25D4880AD6</string>
         <string>Mac-53FDB3D8DB8CA971</string>
+        <string>Mac-F42C88C8</string>
     </array>
     <key>SupportedFeatures</key>
     <array>
@@ -112,6 +113,7 @@
         <string>MacBookAir6,2</string>
         <string>Macmini8,1</string>
         <string>MacPro7,1</string>
+        <string>MacPro3,1</string>
         <string>iMacPro1,1</string>
     </array>
</dict>

In my simple command script I used instead "cd /Volumes/Preboot/*/boot/System/Library/KernelCollections/" because this surely is not present in any Catalina or Mojave Preboot, as you written: "cd /Volumes/Preboot/*/System/Library/CoreServices/" this is used also from APFS Catalina and Mojave, so replacing wrongly prelinkedkernel in any Preboot could make them unbootable.

For what is used LegacyUSBVideoSupport.kext ?
 
  • Like
Reactions: iMac-iPad

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
In my simple command script I used instead "cd /Volumes/Preboot/*/boot/System/Library/KernelCollections/" because this surely is not present in any Catalina or Mojave Preboot, as you written: "cd /Volumes/Preboot/*/System/Library/CoreServices/" this is used also from APFS Catalina and Mojave, so replacing wrongly prelinkedkernel in any Preboot could make them unbootable.

For what is used LegacyUSBVideoSupport.kext ?

I included LegacyUSBVideoSupport.kext because it is part of the core set of patches in Catalina patcher.

In any case, it appears that dropping kext in Kext-droplet doesn't always trigger the prelinkedkernel build. Still trying to figure how to make that occur reliably. I guess I could do a manual call with 'sudo kextcache -prelinked-kernel' but I can't find any examples of the complete set of arguments to pass.
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
I included LegacyUSBVideoSupport.kext because it is part of the core set of patches in Catalina patcher.

In any case, it appears that dropping kext in Kext-droplet doesn't always trigger the prelinkedkernel build. Still trying to figure how to make that occur reliably. I guess I could do a manual call with 'sudo kextcache -prelinked-kernel' but I can't find any examples of the complete set of arguments to pass.

sudo kextcache -prelinked-kernel /path/prelinkedkernel -kernel /path/kernel -local-root -- /path/Extensions/

typical path (that on a snapshot are slightly different):

/System/Library/PrelinkedKernels/
/System/Library/Kernels/
/System/Library/Extensions/
 

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
sudo kextcache -prelinked-kernel /path/prelinkedkernel -kernel /path/kernel -local-root -- /path/Extensions/

typical path (that on a snapshot are slightly different):

/System/Library/PrelinkedKernels/
/System/Library/Kernels/
/System/Library/Extensions/

I believe I found the trick that enabled the prelinkedkernel to be built under snapshots. I've re-edited my prior recipe to change this step...

Code:
*** Use Kext-Droplet to add above kext files and reboot as requested ***

*** commands to move newly built prelinkedkernel to /System/Library/PrelinkedKernels for kcditto to find ***

sudo mount -o nobrowse -t apfs /dev/disk7s5 /Volumes/BigSur/Users/howarth/mntpoint
sudo kextcache -i /Volumes/BigSur/Users/howarth/mntpoint/
cd /Volumes/BigSur/Users/howarth/mntpoint/System/Library/PrelinkedKernels
sudo cp /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel prelinkedkernel
sudo cp /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel immutablekernel
cd ~
sudo bless --folder /Volumes/BigSur/Users/howarth/mntpoint/System/Library/CoreServices --bootefi --create-snapshot

*** reboot to make modified snapshot active root ***

sudo kcditto

So the trick is to use...

sudo kextcache -i /Volumes/BigSur/Users/howarth/mntpoint/

on a mounted snapshot. I had removed AAAMouSSE.kext from /Library/Extensions in a prior snapshot but wasn't seeing the prelinkedkernel rebuilt. Now it is rebuilt and reduced in size as expected from...

Code:
% ls -l /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel
-rw-r--r--  1 root  wheel  18086854 Jul  5 11:37 /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel

to

Code:
% ls -l ~/mntpoint//Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel
-rw-r--r--  1 root  wheel  18079274 Jul  5 16:52 /Users/howarth/mntpoint//Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel

Update: Apparently this screws up the kernel cache because it doesn't have legacy usb support. I'll just have to keep poking as I know I triggered at least one successful build after I added the AAAMouSSE.kext.
 
Last edited:

Barry K. Nathan

macrumors 6502
Jul 6, 2018
387
1,145
Irvine, CA, USA
I am still baffled how jackluke ever got 'sudo mount -uw /' to work under Big Sur. Every single clean install that I have done resulted in a snapshot for an update being present at disk7s6. My understanding is that the presence of snapshots will block the 'sudo mount -uw /' command so that you would have to undo the update by removing its snapshot under a Big Sur recovery volume (which doesn't exist yet for unsupported Macs). Even if you could do remove the snapshot, removing an update doesn't seem like a good idea.

So I think if we ever get to a dosdude1-type installer, it will have to assume that the user has disabled 'authenticated-root' with a Big Sur csrutil under a Catalina recovery partition so that the patched Big Sur installer can be created. We are going have to learn to tolerate the snapshots as part of the process.
Regarding "Big Sur recovery volume (which doesn't exist yet for unsupported Macs)", both ParrotGeek's patcher and my own patcher allow the Big Sur installer USB to boot on 2011-2013 Macs. That USB stick boots into a Big Sur recovery environment, similar to the recovery partition.

There's a trick that ParrotGeek's patcher uses so that you can start the Installer like normal and it'll automatically inject Hax.dylib. It should be possible to adapt that trick to disable authenticated-root at the same time. (My patcher currently requires the user to open Terminal and run a shell script before starting the installer -- the shell script disables authenticated-root and SIP as well as injecting the dylib. For the moment I've left it that way (as opposed to using a trick like ParrotGeek's), for a variety of reasons. It's something I plan to address sometime while Big Sur is still in beta, but there are other improvements I want to make to my patcher first.)
[automerge]1593994532[/automerge]
This is kind of unrelated and might sound like a silly question, but is there a way of installing Big Sur on a separate partition without having to create a new computer account/ having to re-sign into iCloud?
It might be possible to use Migration Assistant (from within Setup Assistant) to transfer your account from a previous macOS installation. It'll probably require you to sign into iCloud again still, but at least you won't have to create a new computer account. (I'll probably test this at some point, but I don't expect to get a chance before beta 2 comes out.)
 
Last edited:

Larsvonhier

macrumors 68000
Aug 21, 2016
1,611
2,983
Germany, Black Forest
It might be possible to use Migration Assistant (from within Setup Assistant) to transfer your account from a previous macOS installation. It'll probably require you to sign into iCloud again still, but at least you won't have to create a new computer account. (I'll probably test this at some point, but I don't expect to get a chance before beta 2 comes out.)
I tested it: The migration assistant in 10.16 (ahem, 11.0) works again - after it broke on Catalina somehow.

Side question (only loosely related to the migration): How can I get rid of the "free space" that does not map to any container any more after my migration of user settings from Cat to BS? I´d like to reclaim it and add it to the container disk1...
Neither GUI disk util nor terminal use of it do the trick. Any suggestions here?

Bildschirmfoto 2020-07-06 um 09.38.14.png
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
Hey! I figured out kext loading and got the nVidia Tesla framebuffer (including brightness and sleep) working.

I've tried to add the GeForceTesla drivers (your patched ones from Mojave), also with the DualGPUs AGC*.kext but I still get this prelinking error :

Code:
Could not use 'com.apple.nvidia.classic.NVDAResmanTesla'
because: Failed to bind '_VSLGestalt' in 'com.apple.nvidia.classic.NVDAResmanTesla'
(at offset 0x1e9c84 in __TEXT, __text) as could not find a kext which exports this symbol

    com.apple.nvidia.classic.NVDAResmanTesla:

        Failed to bind '_VSLGestalt' in 'com.apple.nvidia.classic.NVDAResmanTesla'
(at offset 0x1e9c84 in __TEXT, __text) as could not find a kext which exports this symbol

The GeForceTesla.kext is loaded and UI is a bit more responsive, but the display isn't detected and also no brightness control.

When using instead also the HighSierra IOGraphicsFamily.kext and IONDRVSupport.kext , I get some warnings about AMD kext error prelinking (this with BootKernelExtensions.kc) , while using prelinkedkernel, just before loginUI, I get a kp on WindowServer process, probably because legacy prelinkedkernel searches for some OpenGL Frameworks exec ?

That on BigSur I don't know where they are located, maybe embedded here:
/System/Library/KernelCollections/SystemKernelExtensions.kc (about 500 MB)

Which kext group do you used for Tesla Framebuffer, brightness control and correct display ?
 
Last edited:

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
I wonder if we can solve the issue of using kextcache under snapshots with something like...

Code:
sudo mount -o nobrowse -t apfs /dev/disk7s5 /Volumes/BigSur/Users/howarth/mntpoint
sudo chroot /Volumes/BigSur/Users/howarth/mntpoint kextcache -i /
sudo chroot /Volumes/BigSur/Users/howarth/mntpoint kextcache -prelinked-kernel /Library/Apple/System/Library/PrelinkedKernels/prelinkedkernel -kernel /System/Library/Kernels/kernel -local-root --  /Library/Extensions/  /System/Library/Extensions/
sudo bless --folder /Volumes/BigSur/Users/howarth/mntpoint/System/Library/CoreServices --bootefi --create-snapshot

That approach seems feasible in theory, although I am still unclear on the details of when kextcache triggers the building of a prelinked kernel. I noticed this article which suggests that whole process can be rather buggy on recent Darwin.

How Kernel Prelinking Works on macOS Catalina (or not)

Perhaps I would need to add a call to kextcache that purges its caches first if the directory touching method is unreliable? Assuming that Apple hasn't blocked chroot from operating on snapshots, the trick would seem to be

1) touching SLE in the mounted snapshot
2) using kextcache via chroot to rebuild the kernel caches without hitting any files outside of the snapshot
3) blessing and rebooting
4) using kextcache to build the prelinked kernel without touching any files inside the snapshot
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.