Booting El Capitan with RevoBoot

I received e-mails, and posts that I blocked, from people asking for help with the installation of El Capitan. Ok. So they can’t get it to run with either Chameleon, Chimera or RevoBoot. Something had changed, and we needed to figure out what it was.

The good news is that a couple new guests arrived, former co-workers loving to hack so I am there also, and they just couldn’t sleep after their flight. Well. I have more good news for you because now, two hours later… and a lot of beer for my friends; We are pleased to announce that we got the OS X installer downloaded from the Apple Store, fired it up with a modified copy of RevoBoot and the new El Capitan kernel (15.0.0) and extensions are loaded and executed.

One thing that we had to fix is that the Installer app failed to install El Capitan on the new SSD, but that was only due to a previously (broken) installation on the drive. We solved this the next day by installing Yosemite before El Capitan. Everything works now. I was just too tired to push the update to my RevoBoot Github repository the first day, but that is now also completed.

A few notes. I did not use a USB memory stick to install El Capitan on the SSD, but launched the Install OS X 10.11 Developer Beta.app from the /Application folder. This copied files to the new ElCapitanSSD and then reboots afterwards. Not that I let it boot from ElCapitanSSD, because we first had to add extensions to /System/Library/Extensions/ and the kernel to /System/Library/Kernels. Files that we extracted from the packages with help of Pacifist. The next step was to add a couple of boot arguments to .IABootFiles/com.apple.Boot.plist Here is what we added:

-f -v cs_debug=1 amfi_get_out_of_my_way=1 -zinfop zalloc_debug rootless=0

A bit overkill, but it worked with the modified version of RevoBoot. By the way. We only changed this setting in: RevoBoot/i386/config/SETTINGS/Macmini71.h (the used configuration for my hack)

#define INSTALL_ESD_SUPPORT 1

This setting is set to 0 by default, but since we want to load the installer from ElCapitanSSD… By the way. This file was created for us after running: make MODEL=Macmini71 The next step was to copy boot0, boot1h and boot to ElCapitanSSD followed by a reboot. Please note that without the proper modifications to the boot loader, you end up seeing a zone_init panic before it reboots.

Anyway. The installer ran and installed El Capitan on ElCapitanSSD, but it failed to remove files like /.IABootFiles so we had to do that ourselfs. The next boot took a little longer, time used to recreate the prelinkedkernel and (old) kernel cache, and the Apple logo seems a little wider, but at least the desktop showed up. All without a single error/problem. Ok. Audio failed, but hey that is easily fixed.

Update: The slightly wider Apple logo was caused by an error on my side. This simple change in RevoBoot/i386/config/SETTINGS/Macmini71,h solved it:

_#define STATIC_SCREEN_WIDTH 1600
+#define STATIC_SCREEN_WIDTH 1680

Note: You may notice these lines in /var/log/system.log

Jun 20 11:21:14 localhost kernel[0]: mem_actual: 0x40000000
Jun 20 11:21:14 localhost kernel[0]: legacy sane_size: 0x400000000

Edit: I changed the value (0x40000000) right after the installation of El Capitan to 0xc0000000 and then 0x3f9cba000 but the legacy sane_size is still 0x400000000. In other words; legacy installers appear to be limited to 1 GB and the installer failed with values greater than 0x40000000. . Nope. I was wrong. I now changed the RevoBoot source code to let it use the detected amount of physical memory (see in function SetupSMBIOS) and that works just fine. Much better now.

Also. After the installation I removed all Kernel Flags, including rootless=0 and kext-dev-mode=1 and everything is A OK.

Edit: I added some text, and added new text, to clarify how I did it. This should help other people to get El Capitan booting with Chameleon/Chimera/RevoBoot ;)

p.s. Sorry. I forgot to mention that I also added a couple of files in /Extra on the ElCapitanSSD:

/Extra/ACPI/dsdt.aml (or a tiny SSDT.aml)
/Extra/ACPI/ssdt_pr.aml
/Extra/EFI/Macmini71.bin

The latter can be extracted from a working Yosemite setup, by using a little one liner script. See the RevoBoot WiKi for additional information. You can also compile and run smbios2struct3.c

Exclusive Bed and Breakfast

My wife and I have been thinking about a change of life, for months already, and we want to start a very very exclusive bed and breakfast / Hotel accommodation in Spain. Exclusive as in jetset expensive and thus I’m afraid that it won’t be affordable for everyone. Our target guests are looking for quality, glamour and exclusivity with the right amount of privacy in a relaxed environment, with a pool for every guest staying with us (four pools in total). The minimum stay is a weekend and starts at 1000 euro for two people (minimum). This includes our exclusive airport shuttle service with premium class cars (round trips). Breakfast is included for Bed and Breakfast stays. Lunch is also included for hotel guests, but dinner is served by professionals with hotel/restaurant style and quality, and is not included. Your stay will also be very very comfortable because for this we traveled a lot (several countries) for stuff like this designer coffee table.
CoffeeTable
Or these sun beds that my wife loves to pieces.
Sunbed
We also have several lounge beds with really beautiful sea- and mountain views for you to sit/relax on. Like this one for example.
LoungebedBlondie
Or this one.
LoungebedPeople
And every so often you will be joined by honourable guests like my father and his girlfriend who just like to sit down here and enjoy our views.
LoungebedDad
Who is always willing to sail away with a couple of guests to places like Ibiza and Mallorca where you can continue your trip in one of the two exclusive holiday homes he owns there.

This all also means that I will have quit my job at Google, eventually, and that I will stop working on hackintosh related stuff, effectively immediately. Looking forward to our new future. A bright future, with eighty three former coworkers joining us this summer to testdrive our new Bed and Breakfast / Hotel which by the way was estimated at a value of 3.4 Million euro (co-owned by my father).

Edit

I got a couple of questions (per e-mail) and like to answer a few of them here.

Q: Is this B&B / Hotel located at your home?

A: No. The B&B / Hotel is not located at home. We live in a finca surrounded by a couple of acres of olive tries.

Q: Will you be there?

A: Sometimes. However. Management of our Bed and Breakfast / Hotel is under control of my wife Angélica – with help of my father as a mentor/advisor. I myself run the vineyard that we inherited from my late father in law.

Q: Where is this Bed and Breakfast located?

A: North of Marbella.

Q: You asked for donations, and I donated, and now this. What’s up with that?

A: My father bought the villa and had it finished for this purpose six months ago. I guess that he wanted to do something good with his hard earned money, part of his retirement plan, and then I fell off our roof and suffered a permanent handicap – damaged nerves – so I am sure that you get the picture.

Q: Is Internet available in your Bed and Breakfast / Hotel?

A: Yes. We have a 200 Mbit/s connection with 802.11 AC (WiFi). Guests can also use one of our iPads and/or MacBooks.

Q: What TV channels do you offer?

A: Several, including the most important Dutch/UK channels. There is also an Apple TV with Netflix in every room and the lounge / meeting area inside (downstairs) is also equipped with a 75 inch Ultra HD TV for special events like Formula one races and Football (soccer).

Q: Can I rent a car there?

A: Yes you can. Please note that the airport shuttle service is free, but you can opt to rent a car at the airport. Or one of the two new Tesla’s that should arrive in two weeks from now.

Q: Do people smoke there?

A: No, but we have a smoking area located at a few steps down the mountain.

Q: Is your dad still working for Apple?

A: No.

p.s. Thank you to all people who were so nice to me. I surely won’t forget you and your hard work. Please keep on going, while I float in one of our pools… looking back and remembering the great times we had. Thank you!

Been seeing you,

Pike, Angélica and Junior Alpha

Broken arm

I fell off our roof and broke my arm in two places, some time ago, and thus I cannot type or use a computer. Will be back in a couple of weeks.

Update

Thank you for the kind words. Things are much better already, but I am not fully recovered yet. Please hang in and wait for my next update, which should be in two weeks from now.

New Tiny SSDT example

David, also known as toleda in our community, asked me for help last year (October), but you know me… I am always busy. Or pretending to be too busy, and thus I forgot about his request for help. Then. A few days ago I received another e-mail about it and I thought… Oops I did it again. Sorry David. I complete forgot. Anyway. I have some good news, because we solved the last piece of the SSDT puzzle.

Let’s first go back in time. Look at the WiKi of my late sister Samantha. There you will find three really amazing Tiny SSDT examples. Her work in 2011 enabled us to keep the DSDT and/or SSDT tables and still be able to disable/hide and/or rename Devices. Which was a great step forward for running OS X on our hacks. Oh yeah. I almost forgot. She also found a way to decompress/compress the ZLIB files.

David, and many people with him, used her TinySSDT examples and came up with great solutions to make things even easier. Audio among others. But one thing was still impossible, and that was that we couldn’t simply rename Device (B0D3) to Device (HDAU) but I have good news because now we can. You can find my TinySSDT example, for a GA-Z87MX-D3H with F6 BIOS right here.

In short. We found a new way to disable individual devices, including LNKx, PS2n and ThermalZones. Something that was not possible before. David already confirmed that it is working for him, so let’s go have some more fun with it. Have a look at the code (the new TinySSDT example) it and please remember this; In case you asked for my help, and I forgot you, then feel free to remind me about it ;)

Edit

The last piece of the audio puzzle is to find a way to load patched copies of the XML files. A puzzle I tried to solve last year, but David was unable to reproduce my success, so I am still using my dummy AudioHDA.kext trick. Which is neat, but it is time for some improvements.

Too bad that I lost the code, because now I have to do it all over again, but I can’t help it that my main SSD decided that it had enough of me and all my read/write attempts. Well. If only I had made backups, or pushed it to some repository, but I didn’t. Stupid but anyway. You know me. I may be slow, from time to time, but I think that I can pull it off again. Let me see what I can come up with ;)

New IONVMeFamily.kext

Well hello. I checked the latest pre-release package of Yosemite 10.10.3 (build 14D98g) and this is a pleasant surprise. Look here.

IONVMeFamily

This kext is for internal Apple PCI-Express SSD Controllers, with NVMe support, and that may be (in part) why the Samsung flash storage in the new Apple MacBook Pro (13-inch) is so much faster.

Correction iFixit found a Samsung S4LN058A01-8030 controller on the SSD during their teardown of the new MacBook Pro (13-inch). That is the same controller that can be found on the Samsung SM951. The ACPI only version, and thus the SSD is not the one with NVMe support. It would have been nice if Apple had used the Samsung S4LN058X01-8030 (used for the Samsung SM953) but that is not the case. Apparently. This makes me think that the kext is there for a future update. Anyway.

More good news. I also located the model/board-id’s of the new MacBook, MacBook Air and MacBook Pro:

Mac-9F18E312C5C2BF0B.plist / MacBookAir7,1 (Early 2015)
Mac-937CB26E2E02BB01.plist / MacBookAir7,2 (Early 2015)
Mac-BE0E8AC46FE800CC.plist / MacBook8,n (Early 2015)
Mac-E43C1C25D4880AD6.plist / MacBookPro12,1 (Early 2015)
Mac-F305150B0C7DEEEF.plist / MacBook8,n (Early 2015)

I also see that the new – yet to be released – MacBook with Broadwell processor will use an even better, more efficient power management. There are also a couple of new Broadwell specific files, like for graphics support:

AppleIntelBDWGraphics.kext
AppleIntelBDWGraphicsFramebuffer.kext
AppleIntelBDWGraphicsGLDriver.kext
AppleIntelBDWGraphicsVADriver.kext
AppleIntelBDWGraphicsVAME.bundle

Still using property AAPL,ig-platform-id and a local update of AppleIntelFramebufferAzul.sh – which I will rename/release one day soon – gives me this list of frame buffers for supported devices:

[ 1] : 0x16060000 – Broadwell GT1
[ 2] : 0x160e0000 – Broadwell GT1
[ 3] : 0x16160000 – Broadwell GT2
[ 4] : 0x161e0000 – Broadwell GT2 (MacBook)
[ 5] : 0x16260000 – Broadwell GT3 (MacBook Air)
[ 6] : 0x162b0000 – Broadwell GT3 (MacBook Pro)
[ 7] : 0x16220000 – Broadwell GT3
[ 8] : 0x160e0001 – Broadwell GT1
[ 9] : 0x161e0001 – Broadwell GT2 (MacBook)
[10] : 0x16060002 – Broadwell GT1
[11] : 0x16160002 – Broadwell GT2
[12] : 0x16260002 – Broadwell GT3 (MacBook Air)
[13] : 0x16220002 – Broadwell GT3
[14] : 0x162b0002 – Broadwell GT3 (MacBook Pro)
[15] : 0x16120003 – Broadwell GT2
[16] : 0x162b0004 – Broadwell GT3 (MacBook Pro)
[17] : 0x16260004 – Broadwell GT3 (MacBook Air)
[18] : 0x16260005 – Broadwell GT3 (MacBook Air)
[19] : 0x16260006 – Broadwell GT3 (MacBook Air)

The layout of the frame buffer data itself has also changed. This sucks, because it means more work for me. Stuff for another blog post. Need to fix something in our kitchen now. Later folks…

Edit There is also a new entry in System Profiler for NVMExpress devices, but on the Early 2015 MacBook Pro (13-inch) it shows this text:

This computer doesn’t contain any NVMExpress devices. If you installed NVMExpress devices, make sure they are connected properly and powered on.

Ok. This confirms it. The SSD is not NVMe compatible.

Apple services under attack?

Something is going on with Apple services – services are down – and they may be (have been) under attack, because visiting the system status page brings up some interesting news:

Customers may be unable to make purchases from the App Store, iTunes Store, iBooks Store, or Mac App Store.

As in all Apple services with (links to) credit card information went off-line. It may be that hackers are exploiting a recently disclosed security issue. This can’t be a coincidence. Smells like rotten apples to me.

Without Jeremy Clarkson there is no Top Gear

I love Top Gear and the way that Jeremy Clarkson, Richard Hammond and James May present their show, but seriously… without Jeremy Clarkson there is NO Top Gear. Not for me. Not for many of us who like the show as is, so if the BBC is going to ax him… then the BBC lost me as a fan. And with me many viewer. It’s that simple. Period.

p.s. I had the pleasure of meeting the Top Gear crew in Spain when we were looking for a plot for our new house. Fabulous folks!