Sharing Code Snippets at GithubGist…

Sometimes something bad has to happen before you realise that something need to change. It’s stupid. I know. But for me that light bulb moment came after my last drive failure. You know. Losing stuff is such a waste of time and energy, so let me introduce you to my new GithubGist where I will share code snippets. So that nothing gets lost anymore.

It’s only two four for now, but more goodies are on its way to you.

Happy hacking!

Advertisements

Grr. Another Backup Drive Failure…

I don’t know what it is, but the backup drives that I use, from various vendors, on different motherboards, they all end up giving me IO errors, and some time after that, then they are gone. They won’t show up in the BIOS anymore. Even DiskWarrior can’t fix them anymore.

Lots of work gone. Again. I need to think this over. I need a break. Enough is enough…

Where are the i7-8800(K) processors?

So far I have seen over fifteen motherboards, from various brands, with the Intel Z-370 chipset, but not one of them is what I need. No. Sorry about this, but I want a motherboard without old tech on it. And two of the things I certainly don’t want to see on my next motherboard is:

1.) A D-SUB (DE-9) VGA connector.
2.) PS/2 connectors.

USB 3.1 Gen 2

What I do need is proper USB 3.1 Gen 2 support. With any least two type C ports. Possibly four of them.

Note: the Z-370 chipset only supports USB 3.1 Gen 1. As in. Vendors will have to make use of the Asmedia chip for full Gen 2 support.

Thunderbolt

Grr. This is depressing. Why is there no Thunderbolt support on the new motherboards? Not even on motherboards with a price tag of (well) over 400 euro. With stupid names like “godlike gaming“. To me the only ‘god like’ part is the price tag. Complete madness. It’s not even the fastest motherboard.

Display Port

I also want at least one DP port.

HDMI

Motherboards with one or more HDMI connectors should at least support 2.0. HDMI 1.4 is no longer good enough.

And what’s up with all the plastic (covers) and added LED (strips) on so-called “pro” motherboards?

More importantly. Intel did release the Coffee Lake S/K processors, but it has no real answer, yet, that can compete one-to-one with the AMD Ryzen. Still not.

But hold on. Did you ever wonder why there is no Intel i7-8800(K)?

There may be a good reason for this. Maybe it needs a new chipset. The Z-390 that will become available some time next year, and maybe then we will get to see Intel’s answer to AMD Ryzen. We know that the Intel 8 core/16 threads Coffee Lake models are in the pipe line, but on which chipset they will be supported… I don’t know. But one thing is for sure. It’s just a matter of time that the 8-Core Coffee Lake will be released. I can’t wait, and thus I will skip the current/new motherboards with Z-370 chipset, because it’s not what I need.

Note: while I used “i7-8800(K)”, that may well become “i9-8800(K)” next year.

p.s. The CPUID for the 8-core Coffee Lake processors is: 0x906EC

SIP requirements for startosinstall –volume <path>

Did you know that there are specific SIP (System Integrity Protection) requirements for startosinstall so that you can use all of its arguments?

Some of you may think that this is bollocks, but hold on. Not so fast. Go the the High Sierra (Beta) app folder and cd into the Contents/Resources directory. Then enter:

./startosinstall --usage

You may get the following output:

Usage: startosinstall

Arguments
--applicationpath, a path to copy of the OS installer application to start the install with.
--license, prints the user license agreement only.
--agreetolicense, agree to license the license you printed with --license.
--rebootdelay, how long to delay the reboot at the end of preparing. This delay is in seconds and has a maximum of 300 (5 minutes).
--pidtosignal, Specify a PID to which to send SIGUSR1 upon completion of the prepare phase. To bypass "rebootdelay" send SIGUSR1 back to startosinstall.
--converttoapfs, specify either YES or NO on if you wish to convert to APFS.
--installpackage, the path of a package to install after the OS installation is complete; this option can be specified multiple times.
--usage, prints this message.

Example: startosinstall --converttoapfs YES

Or this output:

Usage: startosinstall --volume <target volume path>

Arguments
--applicationpath, a path to copy of the OS installer application to start the install with.
--license, prints the user license agreement only.
--agreetolicense, agree to license the license you printed with --license.
--rebootdelay, how long to delay the reboot at the end of preparing. This delay is in seconds and has a maximum of 300 (5 minutes).
--pidtosignal, Specify a PID to which to send SIGUSR1 upon completion of the prepare phase. To bypass "rebootdelay" send SIGUSR1 back to startosinstall.
--converttoapfs, specify either YES or NO on if you wish to convert to APFS.
--installpackage, the path of a package to install after the OS installation is complete; this option can be specified multiple times.
--usage, prints this message.
--volume, path to the target volume.

Example: startosinstall --volume /Volumes/Target --converttoapfs YES

You see. That’s not the same output, and it depends on your SIP settings. And here is why.

Now. Some of you may have SIP partly or completely disabled, and will not notice the difference. Unlike me. I run my Mac/Hack with SIP fully enabled. That is why I get the first output, and thus I have change the SIP settings before I can use the –volume argument, because startosinstall requires – at least – either CSR_ALLOW_UNRESTRICTED_NVRAM/0x40/64 or CSR_ALLOW_ANY_RECOVERY_OS/0x100/256. Without one of these, the –volume argument won’t be supported.

Please note that this SIP requirement was first introduced in a Beta of Sierra 10.12.4, and I ran into it before, but the only reference I had were my own notes. Not exactly rocket science, but it is something that I wanted to share with you 😉

Happy Anniversary…

More than ten years ago I worked on code for VirtualBox. To get OS X 10.5 (codename Leopard) installed on it. And I can happily claim that I was the very first person to do it. That also triggered my attention to OS X.

At that time I left the Ubuntu developer community and started to work for Google Inc. And now. Ten years later. I’m still here. And I became the person who I am. A man now. A father of two great children. The husband of my beautiful wife. People who I love to pieces.

And you know what. Nobody expected me to stay this long. Many thought that I was somebody else. Because I helped my father and later my sister. As a sidekick – first public appearance as a hacker in 2012 and I started to blog in 2013. Boy what a joy that was. Fond memories.

Anyway. Even I thought that I won’t change jobs. Not ever. That is. Until I was asked for a job interview in the US of A. So I went. I listened. Got the offer for a great job, but I declined the offer.

Not that I didn’t like it, because I did, but I promised my mom to carry on her work. As a Doctor. To help people in need. Yeah mom. I made you that promise, and I am a man of my word, so I will do that. Happily.

This is also the reason why you see me using my title (Dr.) for the very first time, here, and in my scripts, and other source code. Something I have refuses to do for many years. Simply because this is not my day job.

Now what?

I am happy to announce that I am set to retire at Google next year, and do something completely different. This was a very difficult decision, and that was why, in part, we went off sailing this summer.

Also. You must have noticed that some of your comments got approved, some time before the actually reply. And you know what. There is a simple explanation for it. The approval is actually done by someone else. My very own sidekick (my wife Angélica who is working as one of the hosts in our hotel in Spain).

In other words. We will carry on with the legacy of Master Chief (Pike’s father) and Revogirl (Pike’s late sister). For as long as possible.

What about you? Will you be here up for another decade?

Thank you!

installSeed.py v4.0 released…

Update: version 4.1 includes two bug fixes and now also supports -a update (to install updates).

I still have some partitions with older versions of macOS High Sierra, and I ran installSeed.py v3.8 on one of them to get the latest beta, but all I got was the previous one. Hmm. That’s odd. That’s not the expected result. Something was wrong.

I checked the catalog data and noticed that we have two sets of updates. Hmm. An unusual situation. Which is not supported in version 3.8. I wanted to have it fixed a.s.a.p. and thus my work was committed 10 hours ago already. But I ran out of time, and energy, to blog about it so here you have it. I hope that installSeed.py v4.0 also works for you. Let’s look at the changes.

This is the output when you run: ./installSeed.py -t /

-----------------------------------------------------------
installSeed.py v4.0 Copyright (c) 2017 by Dr. Pike R. Alpha
-----------------------------------------------------------
Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed
Searching for macOS: 10.13.1

ERROR: target macOS version (10.13.1) not found. Aborting ...
       - you may need to use the -m <version> argument

Right. The target test partition is still running an older version of macOS 10.13 but the script is already checking for 10.13.1 (per default). As it should. And thus all I had to do was to add the -m 10.13 arguments. Like it says now. Fine. Let’s do that.

./installSeed.py -t / -m 10.13

This is the result.

-----------------------------------------------------------
installSeed.py v4.0 Copyright (c) 2017 by Dr. Pike R. Alpha
-----------------------------------------------------------
Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed
Searching for macOS: 10.13

[ 1 ] Found update for macOS 10.13 (17A362a) with key: 091-32527
      - seed build version is newer than macOS on this Mac (Ok)

[ 2 ] Found update for macOS 10.13 (17A405) with key: 091-36857
      - seed build version is newer than macOS on this Mac (Ok)

Select package to install [1-2]

Cool. Next I tried it with the -a update arguments and got this.

-------------------------------------------------------------
installSeed.py v4.0 Copyright (c) 2017 by Dr. Pike R. Alpha
-------------------------------------------------------------
Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed
Searching for macOS: 10.13.1

[ 1 ] Found update for macOS 10.13.1 (17B25c) with key: 091-28823
      - seed BuildID is newer than macOS on this Mac (Ok)

[ 2 ] Found update for macOS 10.13.1 (17B35a) with key: 091-35887
      - seed BuildID is newer than macOS on this Mac (Ok)

Select package to install [1-2]

Perfect. Looks like this issue is resolved in installSeed.py v4.0

Anyway. I hope that you enjoy using the latest update, and please, don’t forget to star it on Github. Thank you!

Intel to remedy heat for Apple’s new iMac Pro with special Xeon W SKU’s…

Previously I assumed that Apple was going to use one of these Xeon W models, but it turns out that I was wrong – based on new data that I found. Intel apparently makes special (OEM) SKU’s for Apple’s new iMac Pro, and here are the first two known models:

Intel Xeon W-2140B @ 3.2GHz ( 8 cores / 16 threads, CPUID 0x050654)
Intel Xeon W-2150B @ 3.0GHz (10 cores / 20 threads, CPUID 0x050654)

Both running with a lower base frequency than the W-2145 (3.7GHz) and W-2155 (3.3GHz). And there can only be one reason for this. Heat!

Source: Geekbench OpenCL Score 1 and 2
Note: Don’t you worry about the results. Apple isn’t showing it’s hand just yet – the used GPU’s were running at a lower frequency.

Additional data

The board-id that I found in the (assumed) firmware of the iMac Pro is: Mac-7BA5B2D9E42DDD94 and some of the data that I found earlier may be an indication that the new B serie processors include support for processor graphics (IGPU). Another key factor that contributes to the need for a lower base frequency.

Intel Speed Shift Technology

I disassembled the first High Sierra Beta XNU Kernel, months ago, and I found out that Intel Speed Shift Technology aka HWP is set to enabled for processors with CPUID 0x05065X. Like the Intel Xeon W-21NN series processors.

Internal Graphics

Back in June I was surprised to find a reference to “Integrated Video Controller” in the leaked firmware for the iMac Pro. Some time later I also found data in the info.plist of AppleGraphicsDevicePolicy.kext that shows us that Apple disables – note the unload key – the IGPU (the internal GPU). Look here:

<key>ConfigMap</key>
<dict>
    <key>Mac-77EB7D7DAF985301</key>
    <string>none</string>

That coupled with this snippet:

<key>Config4</key>
<dict>
    <key>GFX0</key>
    <dict>
        <key>EDID</key>
        <dict>
            <key>index</key>
            <integer>0</integer>
        </dict>
        <key>FeatureControl</key>
        <integer>12</integer>
        <key>unload</key>
        <false/>
    </dict>
    <key>IGPU</key>
    <dict>
        <key>unload</key>
        <true/>
    </dict>
    <key>display</key>
    <dict>
        <key>EDID</key>
        <dict>
            <key>index</key>
            <integer>0</integer>
        </dict>
        <key>FeatureControl</key>
        <integer>12</integer>
        <key>unload</key>
        <false/>
    </dict>
</dict>

This may well be an indication that the new Intel Xeon’s do in fact support processor graphics, but we will have to wait until the actually release of the iMac Pro, or macOS High Sierra 10.13.2 (which Apple appears to be using internally already) before we really know what is going on here.

Edit: If you use my blog article as source, then please be so kind to add a link/reference. Thank you.

Don’t be an ass. Like mac4ever.com for the lack of reference (shame on you) because seriously guys… as a die hard Googler, nobody else blogged about it before I did!