Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
@splifingate and anyone else testing

Here's the script I made for my friend to do the myriad of bootloader replacements during our quest to get El Capitan installed on his Mac Pro 1,1 (successful as of commit 70f77b1 with Legacy USB).

You can edit the default path at the top, or pass a quoted (non-escaped) path on the command line.

I assume to replace both your USB drives you'd want to do something like this:
Code:
$ ./replaceBootloader "Install OS X El Capitan"; ./replacebootloader "[legacy-BaseSystem.dmg-image]"

and then it will be in your history as a one-shot. Just have it in the same directory as the latest boot.efi.

I hope it proves of some use to somebody.

-clawfinger
Thanks. This is certainly useful, until we have a better solution in place, but don't forget to post it here also:

https://forums.macrumors.com/threads/2006-2007-mac-pro-1-1-2-1-and-os-x-el-capitan.1890435/page-41
 
I hope that there is someone that can compile and test something for me while I get some sleep.

1.) Open MachO.cpp and scroll down to line 1339.
2.) Uncomment that block of code.
3.) Change the line with startAddress = 0xffffffff to 0xffffff;
4.) Recompile and test.

If it gives you: "Kernelpatcher: readStartupExtensions found @ 0x..." then report the address here.

If that fails, then increase 'startAddress' and 'endAddress' until you found it.

Thanks!
 
Ok this is not working. Let me change something. Done. New commit available.

@randyoo ,

Nope. It's good.

commit a989e952

build fails...see attached

[edit]

un-commenting per suggestion @ Pike's post #603 creates a successful build

Still have yet to find/replace/edit/re-compile/&c.....
[/edit:edit/edit]
 

Attachments

  • image.jpeg
    image.jpeg
    4.3 MB · Views: 151
Last edited:
per post #602

MachO.cpp: line 1344

startAddress = 0x200000; // kldSegmentPhysicalAddress; . . .

MachO.cpp:line 1345

endAddress = 0xffffffff; // (startAddress + kldSegmentFileSize);

replaced with

endAddress = 0xfffffff; // (startAddress + kldSegmentFileSize);

(successful compile; pending copy/test(ing))

[edit]

re: 'Oops.': You (and I--let me tell you, Brother) need some sleep . . . .

[/edit]
 
per post #602

MachO.cpp: line 1344

startAddress = 0x200000; // kldSegmentPhysicalAddress; . . .

MachO.cpp:line 1345

endAddress = 0xffffffff; // (startAddress + kldSegmentFileSize);

replaced with

endAddress = 0xfffffff; // (startAddress + kldSegmentFileSize);

(successful compile; pending copy/test(ing))
You should really start without that block of code, and the line I commented out later on. But perhaps it finds the symbols already, and then that is not necessary anymore.

Edit: About sleep. Yeah sure, but it is people like you, with a Mac Pro and compiler setup that I rely one. Without that it takes ages to finish stuff.
 
per suggestions and re-placements, as above:

boot into createinstallmedia (slide=0), attached

...forces a re-boot....
 

Attachments

  • image.png
    image.png
    491.1 KB · Views: 165
per suggestions and re-placements, as above:

boot into createinstallmedia (slide=0), attached

...forces a re-boot....
Thanks. So it's indeed the address shown there. The fifth one that we should use as start address.

Edit: Does it find the first symbol, without that block and line I commented out, if you don't use slide=0? It used to work so I am a bit surprised to see it fail now. Can't remember to have changed anything there.
 
Last edited:
You should really start without that block of code, and the line I commented out later on. But perhaps it finds the symbols already, and then that is not necessary anymore.

You typed:

3.) Change the line with startAddress = 0xffffffff to 0xffffff;

...and I searched, and found, only one line with 0xffffffff, which was line 1345 of MachO.cpp

I understand very, very little of what I see.

Can you elabourate upon your first sentence (e.g., "You should really...")?

I am as lost as you, but on the flip-side wrt/coding... <smile>

Edit: About sleep. Yeah sure, but it is people like you, with a Mac Pro and compiler setup that I rely one. Without that it takes ages to finish stuff.

Timing is everything . . . my weekend is here . . . four hours difference makes for an awkward parlay <grin>
 
What do you get when you run:

nm /S*/L*/Kernel/kernel | grep __ZN6OSKext14loadExecutableEv

Here I get "ffffff800084b1e0 T __ZN6OSKext14loadExecutableEv"

It stops searching at 0x84b059 so that is too early. We need to change the 0x200 in this line:

endAddress = (startAddress + 0x200);

into:

endAddress = (startAddress + 0xffff);
 
Thanks. So it's indeed the address shown there. The fifth one that we should use as start address.

Line 1344 of MachO.cpp changed to:

startAddress = 0xb29000; // kldSegmentPhysicalAddress;

compiled; boot.efi copied (only to createinstallmedia, for simplicity); #nvram boot-args="" set; re-boot pending....

Edit: Does it find the first symbol, without that block and line I commented out, if you don't use slide=0? It used to work so I am a bit surprised to see it fail now. Can't remember to have changed anything there.
 
Line 1344 of MachO.cpp changed to:

startAddress = 0xb29000; // kldSegmentPhysicalAddress;

compiled; boot.efi copied (only to createinstallmedia, for simplicity); #nvram boot-args="" set; re-boot pending....
Thank you for testing this. And the latest commit should take care of the 'endAddress' error. Once and for all. Well. So I hope.

Edit: I seriously need to buy a larger SSD for my friends computer (constantly getting startup disk on low space notifications (with 1.58 GB left on the SSD). The one that I am using remote for this kind of work. That and upgrade his computer to El Capitan. I think that he deserves it. Heck even a new computer!

Edit2: LOL I just realise something. I am using his computer, in his bedroom, when he sleeps. Well so I hope.
 
Last edited:
  • Like
Reactions: splifingate
Line 1344 of MachO.cpp changed to:

startAddress = 0xb29000; // kldSegmentPhysicalAddress;

compiled; boot.efi copied (only to createinstallmedia, for simplicity); #nvram boot-args="" set; re-boot pending....
What do you get when you run:

nm /S*/L*/Kernel/kernel | grep __ZN6OSKext14loadExecutableEv

Here I get "ffffff800084b1e0 T __ZN6OSKext14loadExecutableEv"

It stops searching at 0x84b059 so that is too early. We need to change the 0x200 in this line:

endAddress = (startAddress + 0x200);

into:

endAddress = (startAddress + 0xffff);

Need to get a booting build (latest don't establish a working environment)...
 
Thank you for testing this. And the latest commit should take care of the 'endAddress' error. Once and for all. Well. So I hope.

commit c3a092a5 compiled, and added to createinstallmedia (slide=0); output, attached

Edit: I seriously need to buy a larger SSD for my friends computer (constantly getting startup disk on low space notifications (with 1.58 GB left on the SSD). The one that I am using remote for this kind of work. That and upgrade his computer to El Capitan. I think that he deserves it. Heck even a new computer!

IIRC, I can get a working (albeit, basic) MacPro 1,1 here in the States off eBay for ~300 Euro... <s>
 

Attachments

  • image.png
    image.png
    318.5 KB · Views: 155
Last edited:
What was the latest commit that worked for you?

I have 3747a95a zipped, so that might be it...

[edit]

commit 3747a95a copied over-into createinstallmedia, and I get a forced re-boot, same as previous (recent) builds . . .

attempting further regression...

[/edit]
 
Last edited:
Hm. It still stops prematurely. New commit available for compilation/testing.

Edit: You have 3747a95a? What's that? Am I really that tired?
 
Last edited:
Hm. It still stops prematurely. New commit available for compilation/testing.

#fsck'ing Win10 is still a bit, er, raw, around the edges, and it take a good minute to get the server shares working . . . weh-hell, low-and-behold! There it is....

copy; re-boot; etc.
 
commit c3a092a5 in createinstallmedia; output, attached

force-restart short into boot sequence....
 

Attachments

  • image.png
    image.png
    345.1 KB · Views: 152
One question. Are you calling: xattr -d com.apple.quarantine boot.efi in your script?

I'm not currently as that issue didn't come up (we were using Dropbox), but it's probably a good idea so I'll update my previous post....and here I thought you were going to sleep ;-).
 
You have 3747a95a? What's that? Am I really that tired?

I have bo/u/t/t-loads of commits littered-around, here...3747a95a "Fix start address", added 10/22/2015 (moot-point, as it fails to boot, also).

I can't cognate any more, Pike: see you tomm........….......
 
I have bo/u/t/t-loads of commits littered-around, here...3747a95a "Fix start address", added 10/22/2015 (moot-point, as it fails to boot, also).

I can't cognate any more, Pike: see you tomm........….......
LOL Just when I found the error. It stops... after it located the symbol, but it couldn't output the text (DEBUG_KERNEL_PATCHER = 0). Thanks man. Later!

Edit: @clawfinger, Do you have Windows/Compiler setup? If yes, please compile and test my latest commit.
 
I can certainly get setup to provide builds. Unfortunately the Mac Pro 1,1 i was working on is located at a friends house halfway across the country (USA) and he has small kids etc. Given the heart palpitations I put him through trying to get a successful install I'm not sure he'd want to mess with it either.

I have a Mac Pro 3,1 here locally, but I assume you have something similar (with 64-bit EFI) and would test if able so I don't think that helps much.

Edit: @pike You know, I just realized I do have access to a older poly-carbonate MacBook 4,1 that my brother just sent me to re-image. I think I should at least be able to boot from install media, if you just added the board-id: Mac-F22788A9.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.