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.

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Thanks for your help! It really works no matter what type of usb drive I use:)
Things would be better if using a usb hub as well, since it would always take up one usb plot.

May I ask another question about security update and SIP?

I understand that SIP can't be disabled for mb2,1's clone method
so every time when system installation changes happen, sound and graphic kexts won't work and i need to rebuild the kext cache again from another mac, in order to allow them running again.

But for taking the security update from Appstore, touchpad/mouse and keyboard won't function even if I rebuild the cache, which means I have to re-clone the entire system...

Would there be any other solution beside starting from zero, it's really time consuming for cloning HDDs:(

Thank you so much!:)

Hi everyone, long-time lurker here with a MacBook 2,1.

I have El Capitan currently on an external USB HDD, basically following all of SkyFly555's instructions word for word and having installed using a Clover bootable USB with an Asus UX305FA. The big problem as everyone knows is SIP keeps re-enabling itself due to the cloning and later updates.

On the MacBook internal HDD, I currently have Yosemite working very well and also CubLinux (an Ubuntu distro). I use ReFIND as the boot manager. Rod, the curator of ReFIND indicates that his software can disable SIP, so I plan to give that a try tonight. If it works, this might allow the MacBook 2,1 to be independent again, avoiding the need for the additional computer after initial installation.

I'll repost as soon as have tried it, but maybe someone already tried it? Does this seem viable?
 

skyfly555

macrumors member
Apr 26, 2016
95
22
Hi everyone, long-time lurker here with a MacBook 2,1.

I have El Capitan currently on an external USB HDD, basically following all of SkyFly555's instructions word for word and having installed using a Clover bootable USB with an Asus UX305FA. The big problem as everyone knows is SIP keeps re-enabling itself due to the cloning and later updates.

On the MacBook internal HDD, I currently have Yosemite working very well and also CubLinux (an Ubuntu distro). I use ReFIND as the boot manager. Rod, the curator of ReFIND indicates that his software can disable SIP, so I plan to give that a try tonight. If it works, this might allow the MacBook 2,1 to be independent again, avoiding the need for the additional computer after initial installation.

I'll repost as soon as have tried it, but maybe someone already tried it? Does this seem viable?
Hello, before creating my method I needed tones of hours of trying a lot of different things. I couldn't boot El Capitan with ReFIND but it you can contact to the creator of ReFIND maybe he can help you. I tried to find help but I couldn't.

The best we could get is having Pike modifying his boot.efi because he has created a boot.efi that disables SIP but it only works with MacPros, so we, MacBook owners, have to use his old Yosemite's boot.efi. This is the reason why we need to do these strange methods I've discovered, just to cheat El Capitan making it to believe our kexts have been SIP-approved, so as to say. We take advantage of this: El Capitan doesn't re-create caches if it finds an existing kext cache created, and it doesn't check these kexts to see if they are SIP-validated or not.
[doublepost=1482852467][/doublepost]

Thanks for your help! It really works no matter what type of usb drive I use:)
Things would be better if using a usb hub as well, since it would always take up one usb plot.

May I ask another question about security update and SIP?

I understand that SIP can't be disabled for mb2,1's clone method
so every time when system installation changes happen, sound and graphic kexts won't work and i need to rebuild the kext cache again from another mac, in order to allow them running again.

But for taking the security update from Appstore, touchpad/mouse and keyboard won't function even if I rebuild the cache, which means I have to re-clone the entire system...

Would there be any other solution beside starting from zero, it's really time consuming for cloning HDDs:(

Thank you so much!:)
Hello!

I described the idea you are asking for on Post #638 and on Post #502.
What I do:
1- I have an external HDD that boots El Capitan: the one I first created. I boot the MacBook from it.
2- I have a copy of /System/Library/Caches/com.apple.kext.caches/ on the desktop of the internal HDD.
3- I copy it (the folder I have on my desktop as a backup) into /System/Library/Caches/com.apple.kext.caches/ of the internal HDD.
4- I restore permissions from Terminal:
Code:
cd /Volumes/Capitann/System/Library/Caches/
sudo chown -R root:wheel *.*
I'm supposing your internal HDD is called "Capitann". Change the name if needed.

5- I reboot the MB booting from the internal HDD with restored kexts.

So, you save a lof of time, you don't need to clone the whole HDD every time, neither doing the whole process from zero.
 
Last edited:
  • Like
Reactions: winipcfg

vsbalint70

macrumors newbie
Oct 24, 2016
28
4
I don't have my source code but you can download Pike R. Alpha's fork from github. You'll need The Netwide Assembler in the VB.net bin folder but I don't think it's possible to just copy over the SIP variable.
Hi

In the binary boot.efi used for Yosemite in your MacPostFactor I found the following stamo for the generated pdb file. I see a user name "Kelian" using probably an Acer 5635Z laptop. Do you know who is this person?

PDB File Name : C:\Users\Kelian.Extensa-5635Z\Documents\OS X Patched boot.efi\macosxbootloader-master\bin\x86\Release\boot.pdb
 

TMRJIJ

macrumors 68040
Original poster
Dec 12, 2011
3,530
6,713
South Carolina, United States
Hi

In the binary boot.efi used for Yosemite in your MacPostFactor I found the following stamo for the generated pdb file. I see a user name "Kelian" using probably an Acer 5635Z laptop. Do you know who is this person?

PDB File Name : C:\Users\Kelian.Extensa-5635Z\Documents\OS X Patched boot.efi\macosxbootloader-master\bin\x86\Release\boot.pdb
Kelian Dumarais (@MLforAll) is the main developer of MacPostFactor
 

skyfly555

macrumors member
Apr 26, 2016
95
22
Hi

In the binary boot.efi used for Yosemite in your MacPostFactor I found the following stamo for the generated pdb file. I see a user name "Kelian" using probably an Acer 5635Z laptop. Do you know who is this person?

PDB File Name : C:\Users\Kelian.Extensa-5635Z\Documents\OS X Patched boot.efi\macosxbootloader-master\bin\x86\Release\boot.pdb

Hi,

I compiled boot.efi from the Master Branch (Yosemite) and it worked, nothing to solve as you say, boot.efi compiled correctly. I even changed some things and made a question to Pike on Github: I never got an answer.
The question I made was just before trying Yosemite boot.efi, which was the pillar of my installation method.
 

vsbalint70

macrumors newbie
Oct 24, 2016
28
4
Hi,

I compiled boot.efi from the Master Branch (Yosemite) and it worked, nothing to solve as you say, boot.efi compiled correctly. I even changed some things and made a question to Pike on Github: I never got an answer.
The question I made was just before trying Yosemite boot.efi, which was the pillar of my installation method.
Hi
Strange. I have tried again, downloaded the master branch (Yosemite)
https://github.com/Piker-Alpha/macosxbootloader/branches/master

When I try to compile with MSVC 2015 I get 9 errors, the first is

VOID* tableArray = acpiRsdt + 1;
for(UINT32 i = 0; i < tableCount; i ++, tableArray = Add2Ptr(tableArray, itemSize, VOID*))
{
UINT64 tableAddress = itemSize == sizeof(UINT64) ? *static_cast<UINT64*>(tableArray) : *static_cast<UINT32*>(tableArray);
EFI_ACPI_DESCRIPTION_HEADER* theTable = ArchConvertAddressToPointer(tableAddress, EFI_ACPI_DESCRIPTION_HEADER*);
if(theTable->Signature == signature)
return theTable;
}
C4456: declaration of 'theTable' hides previous local declaration.
 

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Hello, before creating my method I needed tones of hours of trying a lot of different things. I couldn't boot El Capitan with ReFIND but it you can contact to the creator of ReFIND maybe he can help you. I tried to find help but I couldn't.

The best we could get is having Pike modifying his boot.efi because he has created a boot.efi that disables SIP but it only works with MacPros, so we, MacBook owners, have to use his old Yosemite's boot.efi. This is the reason why we need to do these strange methods I've discovered, just to cheat El Capitan making it to believe our kexts have been SIP-approved, so as to say. We take advantage of this: El Capitan doesn't re-create caches if it finds an existing kext cache created, and it doesn't check these kexts to see if they are SIP-validated or not.
[doublepost=1482852467][/doublepost]


Hello!

I described the idea you are asking for on Post #638 and on Post #502.
What I do:
1- I have an external HDD that boots El Capitan: the one I first created. I boot the MacBook from it.
2- I have a copy of /System/Library/Caches/com.apple.kext.caches/ on the desktop of the internal HDD.
3- I copy it (the folder I have on my desktop as a backup) into /System/Library/Caches/com.apple.kext.caches/ of the internal HDD.
4- I restore permissions from Terminal:
Code:
cd /Volumes/Capitann/System/Library/Caches/
sudo chown -R root:wheel *.*
I'm supposing your internal HDD is called "Capitann". Change the name if needed.

5- I reboot the MB booting from the internal HDD with restored kexts.

So, you save a lof of time, you don't need to clone the whole HDD every time, neither doing the whole process from zero.

Thanks for answering. I was able to boot using ReFIND and the Pikified-EFI from Yose/ElCap. ReFIND was able to correctly modify the csr-status-enable variable in the NVRAM. Unfortunately, it makes no difference because if using the PikeYose Boot.EFI as you recommended for stability, this variable is ignored. If you use the PikeElCap Boot.EFI, the MacBook 2,1 crashes very soon after login. I'm honestly not sure if the SIP was actually disabled in the second case.

Clearly we will have to modify Pike's EFI, as it seems several others are working on. I will also try. Good luck to us!
 

blackfreccia

macrumors newbie
Jul 30, 2012
7
0
Don't press skip ad in MPF just drag the URL from Safari into the window


Hey guys,

I've been trying to install using MPF, but when I get to the "skip ad" part, it just shows a "please wait" screen after I click it and it sticks there forever. I tried using the fix in post 672, but when I drag the "please wait" url from safari to MPF it just gets stucked, just like if I had done it in the MPF window.

Is there any way to get around this?

EDIT: Problem kind of sorted out itself. I tried the same method a couple of hours later and voilà! Not sure why it happened, guess it's caused on the server's side. It could also be because the first time I tried, I ran MPF from its dic image, whereas I copied to the applications folder the second time.
 
Last edited:

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Hi
Strange. I have tried again, downloaded the master branch (Yosemite)
https://github.com/Piker-Alpha/macosxbootloader/branches/master

When I try to compile with MSVC 2015 I get 9 errors, the first is

VOID* tableArray = acpiRsdt + 1;
for(UINT32 i = 0; i < tableCount; i ++, tableArray = Add2Ptr(tableArray, itemSize, VOID*))
{
UINT64 tableAddress = itemSize == sizeof(UINT64) ? *static_cast<UINT64*>(tableArray) : *static_cast<UINT32*>(tableArray);
EFI_ACPI_DESCRIPTION_HEADER* theTable = ArchConvertAddressToPointer(tableAddress, EFI_ACPI_DESCRIPTION_HEADER*);
if(theTable->Signature == signature)
return theTable;
}
C4456: declaration of 'theTable' hides previous local declaration.

Just tried exactly this using VS2015 -- It did work, after:
1. Changing the Properties...Build...TreatWarningAsErrors from Yes->No.
2.) Adding the NASM in the correct location, I used V2.11.08 without seeing any issues.

Note that I haven't actually tried booting yet from the resulting BOOT.EFI, only saying that the build did finish compiling.
 

vsbalint70

macrumors newbie
Oct 24, 2016
28
4
Just tried exactly this using VS2015 -- It did work, after:
1. Changing the Properties...Build...TreatWarningAsErrors from Yes->No.
2.) Adding the NASM in the correct location, I used V2.11.08 without seeing any issues.

Note that I haven't actually tried booting yet from the resulting BOOT.EFI, only saying that the build did finish compiling.
Yes, you are right, if I accept the warnings MSVC 2015 can build an executable.
I added the code to disable SIP and now it seems it works well on my Mac Mini.
It boots, loads all the kexts correctly, SIP is disabled and hasn't crashed since at least 10 minutes...
Try with my boot.efi from Google Drive link
https://drive.google.com/open?id=0B3xWIRz1McYkWFVtZi1TMTVBaGM
 

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Yes, you are right, if I accept the warnings MSVC 2015 can build an executable.
I added the code to disable SIP and now it seems it works well on my Mac Mini.
It boots, loads all the kexts correctly, SIP is disabled and hasn't crashed since at least 10 minutes...
Try with my boot.efi from Google Drive link
https://drive.google.com/open?id=0B3xWIRz1McYkWFVtZi1TMTVBaGM

Great work. Very stable on my ElCap MacBook 2,1. But I also hit a problem after doing the SoftwareUpdate to Version 10.11.6. Now all I get is the Prohibited sign. None of the various boot.efi can get past this. Even so, you've made excellent progress for all of us.
 

vsbalint70

macrumors newbie
Oct 24, 2016
28
4
Great work. Very stable on my ElCap MacBook 2,1. But I also hit a problem after doing the SoftwareUpdate to Version 10.11.6. Now all I get is the Prohibited sign. None of the various boot.efi can get past this. Even so, you've made excellent progress for all of us.
Hi
I will try to add step by step the additional features which make the difference between the original Yosemite and present El Capitan version. This way we will see which feature of the original El Capitan efi causes problem to our Macs. At the moment I concentrated on SIP only.

I think your problem might be related with the Relinked Kernel cache. Try to boot into single user mode and force the cache to rebuild. Or maybe even possible to delete it.
 

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Hi
I will try to add step by step the additional features which make the difference between the original Yosemite and present El Capitan version. This way we will see which feature of the original El Capitan efi causes problem to our Macs. At the moment I concentrated on SIP only.

I think your problem might be related with the Relinked Kernel cache. Try to boot into single user mode and force the cache to rebuild. Or maybe even possible to delete it.

The problem is caused by lack of USB support after the update. My ElCapitan was running on an external USB drive. The update removed the USB support KEXT. When I went to reboot, this caused the 'PROHIBITED SIGN'.

So I moved the drive internally, which allows it to boot. Unfortunately, once it reaches the login, there is no keyboard/mouse, since these require working USB to function on a MacBook 2,1. Booting into single-user mode is same problem, not keyboard/mouse.

On a positive note, I used your BOOT.EFI in the recovery partition, and it actually booted correctly. However, again no keyboard/mouse. Plugging in an external USB is same. I really would like to fix this so only one computer is required.

It's great that you're working on fixing Pike's ElCapitan script. I started on it last week, but didn't solve it. From what I can tell, everything acts the same from his V2.0 release onward (Sept 25,2015) so the problem commit must be one of the earlier ones before that.
 

atvusr

macrumors 6502
Apr 5, 2010
442
39
The problem is caused by lack of USB support after the update. My ElCapitan was running on an external USB drive. The update removed the USB support KEXT. When I went to reboot, this caused the 'PROHIBITED SIGN'.

Have you replaced the USB-Kexts again after the Update to Version 10.11.6 ?

It's very likely that the 10.11.6-Update has overwritten the patched USB-Kexts with the Apple Standard-versions.
 

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Have you replaced the USB-Kexts again after the Update to Version 10.11.6 ?

It's very likely that the 10.11.6-Update has overwritten the patched USB-Kexts with the Apple Standard-versions.

I replaced all the Kexts in the internal ElCap HDD manually while booted from Yosemite (now in external USB enclosure).

my issue now is that rebuilding permissions and kextcaches from in Yosemite to the EC doesn't fix it.

A solution might be to force EC to rebuild everything on next reboot, but not certain how to force it to do this. Any ideas? I think we are nearly there...
 

vsbalint70

macrumors newbie
Oct 24, 2016
28
4
I replaced all the Kexts in the internal ElCap HDD manually while booted from Yosemite (now in external USB enclosure).

my issue now is that rebuilding permissions and kextcaches from in Yosemite to the EC doesn't fix it.

A solution might be to force EC to rebuild everything on next reboot, but not certain how to force it to do this. Any ideas? I think we are nearly there...

Maybe I have asked already. Have you tried to boot into text based single user mode? There with touch S/L/E and kextcache -u commands you can rebuild the prelinked kernel. After with exit you can continue to boot into graphical part
 

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Maybe I have asked already. Have you tried to boot into text based single user mode? There with touch S/L/E and kextcache -u commands you can rebuild the prelinked kernel. After with exit you can continue to boot into graphical part

Thanks for replying. I did boot into the EC single-user mode, but there wasn't any keyboard support, so I wasn't able to execute any commands. I also tried adding a launch-daemon script to the recovery partition, but that also didn't work.

There are several other methods I will try later today (I think these are based on posts several months ago here by Fred57):
1.) http://www.insanelymac.com/forum/files/file/521-usb-fix-for-el-capitan/
2.) https://github.com/RehabMan/OS-X-USB-Inject-All

Will post back again if anything changes.
 

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Maybe I have asked already. Have you tried to boot into text based single user mode? There with touch S/L/E and kextcache -u commands you can rebuild the prelinked kernel. After with exit you can continue to boot into graphical part

Can you help me with something: Does your MacMini have the USB port not recognized issue with the USB installer? Or another way of asking the same question, if you replace the boot.efi in your Recovery partition with your new Boot.efi from post #786, are you able to boot recovery and have working keyboard/mouse?
 

atvusr

macrumors 6502
Apr 5, 2010
442
39
[...] if you replace the boot.efi in your Recovery partition with your new Boot.efi from post #786, are you able to boot recovery and have working keyboard/mouse?

There're no working Input-devices because the USB-recognition has nothing to do with the Boot.efi (except SIP=off), rather with the new USB-Stack of OSX 10.11+. Possible solutions: see Post #716.
 
Last edited:

vsbalint70

macrumors newbie
Oct 24, 2016
28
4
Can you help me with something: Does your MacMini have the USB port not recognized issue with the USB installer? Or another way of asking the same question, if you replace the boot.efi in your Recovery partition with your new Boot.efi from post #786, are you able to boot recovery and have working keyboard/mouse?
Hi
I tried to update to 10.11.6 and has failed.. no mouse at login screen. Neither when booting to recovery partition. When I start to single user, there are visibly error messages saying that USB drivers were not loaded due to some naming issues.i don't remember such messages from previous versions
I will try to move back to to 10.11.5 I am afraid :-(
[doublepost=1484168743][/doublepost]See the photo of the boot screen when booting to single user
 

Attachments

  • IMG_2260.JPG
    IMG_2260.JPG
    2.3 MB · Views: 199

mattschwantes

macrumors newbie
Dec 27, 2016
27
3
Hi
I tried to update to 10.11.6 and has failed.. no mouse at login screen. Neither when booting to recovery partition. When I start to single user, there are visibly error messages saying that USB drivers were not loaded due to some naming issues.i don't remember such messages from previous versions
I will try to move back to to 10.11.5 I am afraid :-(
[doublepost=1484168743][/doublepost]See the photo of the boot screen when booting to single user

Mine had similar issues. For 10.11.6, using Ver.3 of the USB Fix from here (http://www.insanelymac.com/forum/files/file/521-usb-fix-for-el-capitan/) made it work again on MacBook 2,1. I think these are just revised versions of the same kexts SkyFly555 used.
 

fanfzero

macrumors member
Oct 8, 2016
57
6
For all the people saying they're having troubles with mouse and things not being recognized after upgrade, try creating an unibeast usb stick and booting the hard drive from the boot efi that is on the stick
 

fanfzero

macrumors member
Oct 8, 2016
57
6
I've finally decided to upgrade to a MacBook Air early 2014 for 645€, the white unibody 3.1 will probably go to my father. So I won't be seen too often in those threads.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.