Signing off…

I am signing off. Yup. A new week and a new challenge. Minutes away from strabismus surgery. After that the double vision troubles should be over and then I hope to go back to work a.s.a.p.

Note that I won’t return to the “IM Hackintosh Community” as it is. Not before we have some sort of trust system for forums and the like. That itself may be a problem, when not enough people are willing to share their details to gain a little extra trust/respect, but we’ll see how that works out in 2016.

Oh. We are also going on a holiday – leaving sometime next week – to see the Northern Lights. Never seen it myself, and since dad is there already, the rest of the family will join him. So for now…

Happy Holidays!!

Edit: Operation is done and it is a success. Thanks for the kind e-mails folks!

Note to Reinhard B. We refunded your donation. Please let me know when you received it. Thanks!

Advertisement

My Donation Page…

I would like to add some clarity to my donation page. First. I only asked for donation once before, and your donation was well spent.

So what happened with your money? We first doubled your donation and gave it to charity, then we took the same amount of money and saved it up until I could purchase some new PC hardware.

The reason for doing it like this is that I may not accept donations for personal gain, and thus we had to come up with a trick that was acceptable for my employers.

In short. Your donation(s) helped me to give away shoes, jackets and other cloths, as well as food and equipment that people in need were looking for. We only had to do it in an odd way… but I have seen many smiling faces of children that were otherwise not so happy, and thus we’d like to thank you for your generosity.

It also helped me to put poverty into a different perspective. It’s not always their own fault. Sometimes things go down fast, and children are paying the price for it. This really opened my eyes, and I want to do more for people in need.

No. We are not asking for (more) donations, but my family will start doing things a bit differently. We like what we have seen, and it gives us an incredible good feeling when we help a family that would otherwise be left alone… our next project is to donate a fridge to a family in need. That’s how simple it can be… a freaking fridge!

Thank you so much!

Patching AppleGraphicsDevicePolicy.kext

A long time ago (read seventeen months ago) I blogged about the changes in the AGDP (Apple Graphics Device Policy) and had to came up with a workaround for an issue in AppleGraphicsDevicePolicy.kext so that we could use a MacPro6,1 board-id/model combination, without the usual hang with a black screen.

Today I like to present an alternative route for this and this time it is a patch that can be used with Clover’s kext patching feature. Here it is:

<key>KextsToPatch</key>        
<array>
    <dict>
        <key>Comment</key>
        <string>AppleGraphicsDevicePolicy (board-id) Patch (c) Pike R. Alpha</string>
        <key>Find</key>
        <data>
        Ym9hcmQtaWQ=
        </data>
        <key>Name</key>
        <string>AppleGraphicsDevicePolicy</string>
        <key>Replace</key>
        <data>
        Ym9hcmQtaXg=
        </data>
</dict>
</array>

Basically what we do is search for “board-id” and replace it with “board-ix” – or anything that we want to use instead. Please give it a go and let me know if it works for you.

Please note that this is not my patch for the AMD discrete graphics problems!

Update: Folks. Let’s not reply to false copyright claims and other childish attacks from the same people who did that before. We know who they are…

Blog article cleaned up and a note about the (AMD) discrete graphics added.

Home sweet home…

Yah! Home sweet home again. Have missed the ‘fun parts’ like shaving my head and the operations, but the scar, headache, bruises and being bold now – for the time being – is a painful reminder of this all. Actually. It may as well have saved me from dying unexpectedly. I mean. No ordinary person would have known that I was suffering from a ruptured brain aneurysm. Luckily my mom was here and the doctor in her took control. She knew what I was going through.

And no. Of course not. This isn’t really me typing – duh – but I simply want to let my friends know that I am alright. Sure. I need some time to recover (Godspeed) and I want to go on a well deserved holiday with my wife and son some time soon, hopefully, but I also wanted to say thank you for all these kind and loving words. Thank you so much!!!

Yes. I am eager to return to work, but like I said… I need a little time. But to show you that I am serious about my return… here is something that some of you may want to try:

The AppleIntelSKLFBController binary checks for 0x19120000 in AppleIntelSKLFBController::getPlatformID() and that basically blocks the Intel Accelerator from loading. What you can do is search for B8 00 00 12 19 in the binary, and replace it with B8 01 00 12 19. Clover users can use this search and replace pattern in their configuration file:

<key>KextsToPatch</key>        
<array>
    <dict>
        <key>Comment</key>
            <string>Skylake IntelAccelerator Patch (c) Pike R. Alpha</string>
            <key>Find</key>
            <data>
            uAAAEhk=
            </data>
            <key>Name</key>
            <string>AppleIntelSKLGraphicsFramebuffer</string>
            <key>Replace</key>
            <data>
            uAEAEhk=
            </data>
    </dict>
</array>

After this the Intel Accelerator will load, but the frame buffer may still fail to work properly. Read reliable. In short. This check is added for a reason. My own personal view is that the Apple driver isn’t ready for prime time.

This isn’t everything I want to share, but not everything is so well documented and can be shared right now; Like my AMD (black screen) patch, USB patches, SATA (express) patches and NVMe support for Samsung 950 PRO NMVe.

Do I care? No. Not really. I have time to share it later on, and I also want some people to sweat over it first. That is all that matters for me right now. Anyway. Thanks again folks!

Warm Regards,

Pike, Junior and Angélica Alpha

I had everything… and now this…

You know. Almost everyone I know can watch TV, and I can too, but that is about to change. Big time! Thing is.

I am slowly turning blind.

Really? Yeah really. The Doctors can’t tell me when, but it is a fact of life. In short. I have to get used to darkness. Total darkness, but there is still so much that I want to see, and so many places to visit, but we have no idea how long I have.

This news was a slap in my face. Come on. I know that I have bad eyes, but this. This is something totally unexpected, and you cannot possibly prepare for something like this. Boy did I have a big panic attack. It’s like someone telling you that your current life is over. How the hell do you cope with turning blind?

I just don’t know what to do anymore. And the fact that I have a wife and a child to take care of, is scaring the crap out of me. And as a result, I cannot sleep or eat anything. I’m just so worried about our future. How it is to be totally dependant on other people?

About my projects? Well. To be honest. That is really the least I worry about. I have other hobbies as well, that one day soon I will have to let go, but not being able to see… Man. That is scary. I mean. Not being able to drive a car. To no longer being able to see my son grow up. How on earth do you, as a young father, cope with something like this?

Update: Our son, who you know by the name Pike, needed immediate medical attention after a sudden loss of consciousness. He was flown over – at a low altitude above water – to a nearby private clinic last night, and operated (ruptured brain aneurysm) to stop him from dying.

Now he need rest and time to recover from this operation. May God be on our side this time. Losing two children (before) is all I can take.

New Update: Yeah!!! I have some very good news to share with you. Thank God for that.

Pike woke up last Friday and the operation went well. It wasn’t a cancer after all. It was a ‘simple‘ abscess filled with blood and other fluids around a skull splinter. One that must have been sitting there ever since his accident. How did they miss that? Anyway. Pike may even see better now, and that with his so called ‘bad eye’. We are so happy, and it appears that Pike and his wife are getting another little one. We are over the moon with this news!!!

MC out. Over to Pike now…

p.s. Pike can only return after a break… so you will have to wait for stuff like this:

Skylake IntelAccelerator Demo

– Ralf aka Master Chief (father of Pike).

AppleAPIC.kext binary patch for Skylake

El Capitan (OS X 10.11.1) could only be installed – on a Skylake based hackintosh – with certain BIOS versions, and for this you had to disable a setting with the cryptic description: “IOAPIC 24-119 Entries“.

Asus BIOS test settings

Well cryptic perhaps for most people reading this, but for me it was a real eye opener. I immediately knew what it was. How come you ask? Well. I did read the Intel® 100 Series Chipset Family Platform Controller Hub (PCH) datasheet when it came out. And both volumes of it. That however was only the easy part, as I did not know how AMI implemented it, and what they do when you flip that setting. I had a hunch, sure, but I went on coding and asked others to confirm my findings, but let’s just skip the boring part and jump right to it. Here’s what you can find in the Intel® datasheet about the APIC Version Register at offset 1:

APIC Version Register

The default value is 0x770020, but that was 0x170020 on Haswell and before. And even Intel is somewhat confused because they wrote:

In PCH this field is defaulted to 17h to indicate 24 interrupts.”

And that may as well have contributed to the changed value, because what should be used? 0x170020 or indeed 0x77020? Fact is that Apple is still using/expecting 0x170020 and thus that is what my patch does. We give the AppleAPIC binary what it expects… 0x170020 Well. Actually. It expects 0x17 and that is exactly what we give it.

1.) Open /System/Library/Extensions/AppleAPIC.kext/Contents/AppleAPIC

2.) Search for: C1 E8 10 0F B6 F0

3.) Replace it with: BE 17 00 00 00 90

0000000000001254	movl	$0x1, (%rax)     // Load offset 1
000000000000125a	movq	0xb8(%r15), %rax // Write offset (select version register)
0000000000001261	movl	0x10(%rax), %eax // Read data (0x770020)
––––––––––––––––––––––––––––––––––––––––––––––––
0000000000001264	shrl	$0x10, %eax      // shift value from 0x770020 to 0x77 
0000000000001267	movzbl	%al, %esi      // Load 0x77 in al register
––––––––––––––––––––––––––––––––––––––––––––––––
000000000000126a	movl	%esi, 0xd8(%r15) // Move 0x77 into esi register
0000000000001271	cmpl	$0xff, %esi      // Check for dead end

Which my patch changes into:

0000000000001254	movl	$0x1, (%rax)
000000000000125a	movq	0xb8(%r15), %rax
0000000000001261	movl	0x10(%rax), %eax
––––––––––––––––––––––––––––––––––––––––––––––––
0000000000001264	movl	$0x17, %esi      // Move 0x17 into esi register
0000000000001269	nop                      // Filler byte (do nothing)
––––––––––––––––––––––––––––––––––––––––––––––––
000000000000126a	movl	%esi, 0xd8(%r15)
0000000000001271	cmpl	$0xff, %esi

And now AppleAPIC thinks to have read 0x170020 from the version register, insteads of our (broken) value of 0x770020, but using a HexEditor is so old school. Nowadays you can do something like this in Clover:

<key>KextsToPatch</key>        
<array>
            <dict>
                <key>Comment</key>
                <string>Skylake AppleAPIC Patch (c) Pike R. Alpha</string>
                <key>Find</key>
                <data>
                wegQD7bw
                </data>
                <key>Name</key>
                <string>AppleAPIC</string>
                <key>Replace</key>
                <data>
                vhcAAACQ
                </data>
</dict>
</array>

I of course first fixed RevoBoot. Other boot loaders like Chameleon (Enoch branch) should soon be fixed.

Anyway. Now you know who (me) did what (see above) to get your Skylake going without having to mess up your factory original BIOS or going back to a BIOS version with the setting.

Thanks to iStigPL and Tonymacx86 for their help with data and test results!

Update

A few tips for folks who are still getting the dreadful: “Still waiting for root device“. First. Make sure that you have XHCI hand-off enabled in the BIOS and dropping ACPI tables like SaSsdt.aml may cause boot issues with SATA devices!

What a MAD day…

Man. Yesterday was nuts with all traffic about me finding trails of a possible new Mac Pro, but today was even more crazy. I have had eight hours of traveling, for two short meetings at BEEP BEEP BEEP in Ireland.

Thanks for the MAD day Jonny 🙂

p.s. Now you may go nuts and try to figure out what ‘MAD’ actually stands for hihihi …

First Signs Of New MacPro7,1 Found In El Capitan

Dear Ladies and Gents.

You may remember this Geekbench benchmark result back in the day, the first public appearance of the 2013 Mac Pro, and I found a similar (AAPLJ951) model identifier in El Capitan. In short. Apple may surprise us, soon, with a brand new and very powerful MacPro7,1 with a couple of new Intel Xeon processors.

Edit: I found it in AppleUSBXHCIPCI.kext/Contents/Info.plist when I was working on XHCI compatibility issues, and here is the XML snippet:

<key>AAPLJ951,1-XHCI</key>
<dict>
	<key>CFBundleIdentifier</key>
	<string>com.apple.driver.AppleUSBMergeNub</string>
	<key>IOClass</key>
	<string>AppleUSBMergeNub</string>
	<key>IONameMatch</key>
	<string>XHC1</string>
	<key>IOProviderClass</key>
	<string>AppleUSBXHCIPCI</string>
	<key>IOProviderMergeProperties</key>
	<dict>
		<key>port-count</key>
		<data>GgAAAA==</data>
		<key>ports</key>
		<dict>
			<key>HS02</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>AgAAAA==</data>
			</dict>
			<key>HS03</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>AwAAAA==</data>
			</dict>
			<key>HS04</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>BAAAAA==</data>
			</dict>
			<key>HS05</key>
			<dict>
				<key>UsbConnector</key>
				<integer>255</integer>
				<key>port</key>
				<data>BQAAAA==</data>
			</dict>
			<key>HS06</key>
			<dict>
				<key>UsbConnector</key>
				<integer>255</integer>
				<key>port</key>
				<data>BgAAAA==</data>
			</dict>
			<key>HS10</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>CgAAAA==</data>
			</dict>
			<key>SSP1</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>EQAAAA==</data>
			</dict>
			<key>SSP4</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>FAAAAA==</data>
			</dict>
			<key>SSP5</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>FQAAAA==</data>
			</dict>
			<key>SSP6</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>FgAAAA==</data>
			</dict>
		</dict>
	</dict>
	<key>model</key>
	<string>AAPLJ951,1</string>
</dict>

The data is identical to that of the late 2015 (iMac17,1 in the same file) so it may as well be a remnant of the new iMac, but the strange thing is that the XHCI data for the late 2015 iMac is also there, which is why I believe that this is not/was not added for the/a new iMac but another Mac.

And like I said earlier in the comments, there are too many USB 3 ports defined to fit on a MacBook (Pro) and Mac Mini. This and the fact that there is already support for newer graphics chips baked into El Capitan… is why I think that it was added for a new Mac Pro. I personally sure hope so.

Note:Hey. I’m no Wizard of Oz and I don’t have a Crystal ball, and maybe I am wrong, completely, but don’t forget; only Apple knows if a new Mac Pro is around the corner or not. I only report my findings here 😉

Edit: Typo fixed.