Skip to content

macOS

Frankenmac 2017: The devil is in the details

  • macOS

My Frankenmac project has reached the point where all the easy stuff is done, and only the hard stuff remains. To put it another way, the machine is 95% functional, but that last 5% is going to require more effort than anything thus far, I believe. Today, a look at what was easy (relatively speaking) and what's going to be hard.

The easy stuff

Going from nothing to a basically functional Mac was all relatively easy, save for a few moments of self-induced pain. To me, these were the easy parts of the project.

  • Buying the right hardware: Compared to nine years ago, when I last built a hackintosh, this part has gotten much simpler. If you stick to the hardware on the tonymacx86.com Buyer's Guide, you'll have the right hardware for the job.
  • Building the machine: If you've built a PC before, this step is pretty simple. You'll need to watch out for some gotchas, especially if you're trying to use a nine-year-old case and power supply, but it's still pretty simple.
  • Installing macOS: Nine years ago, I remember this step taking me a long time. Today, thanks to programs like UniBeast, Clover, and MultiBeast, it's relatively straightforward. You'll want to follow the guide closely, and you may hit an odd issue or two—USB ownership in my case—but getting macOS running was still relatively easy.
  • Using an upgraded video card: Thanks to NVidia's release of Pascal drivers for the Mac, getting my GTX 1080 video card running was a breeze.
  • Sleep/wake: I didn't have to do anything here; it just worked.
  • Handoff and Continuity: With the proper Fenvi card, this should just work…and it did for me.

At this point, I had (and still have) a machine that will boot MacOS and run just like an actual Mac—for most things. It's the "not most" parts that constitute the hard stuff…

[continue reading…]



Frankenmac 2017: How to back up a hackintosh

After last week's temporary death of Frankenmac, I decided it was important to back up the machine—even though I haven't yet migrated my data to it. Having a backup would let me quickly recover from any future self-induced stupidity. Backing up a hackintosh is generally the same as backing up a regular Mac, with one key exception: Making sure you back up the EFI partition, which is where are the special bits are stored to make your hackintosh boot.

Here's what I did to make sure I had a bootable backup of Frankenmac…

[continue reading…]



Create Time Machine-like backups via rsync

Taking a break from the recent Frankenmac posts, here's a little trick for creating "Time Machine like" backups of anything you'd care to back up1I don't know how well this might work for Mac files, as opposed to Unix files. But Mac files can be saved to the real Time Machine.. In my case, it's the HTML files off of my web sites, both personal and work. I used to simply back these up, but then realized it'd be better to have versions rather than totally overwriting the backup each day (which is what I had been doing).

Once you've got it set up and working, you'll have a folder structure similar to the one at right, with one folder for each backup, and a "current" link that takes you to the newest backup.

I get zero credit for this one; my buddy James explained that he'd been using this method for a year without any troubles, and pointed me to this great guide2The original site that hosted this script is gone; I've linked to a copy I found on archive.org. Original URL:
https://blog.interlinked.org/tutorials/rsync_time_machine.html
that explains the process.

I used that guide and added the following to my backup script to create my own customized Time Machine for the files from here, robservatory.com:

/usr/local/bin/rsync -aP \
  --link-dest=/path/to/quasi/TM_backup/current user@host:/path/to/files/on/server/ \
  --exclude "errors.csv" \
  --delete --delete-excluded \
  /path/to/quasi/TM_backup/back-$newtime
rm -f /path/to/quasi/TM_backup/current
ln -s /path/to/quasi/TM_backup/back-$newtime /path/to/quasi/TM_backup/current

And that's all there is to it. Note that you may need a newer version of rsync than what comes with macOS now (2.6.9)—I use version 3.1.2 from Homebrew, so I can't say for sure that this script works with the stock version.

I've only been using this for a couple weeks, but it's working well for me so far.



Frankenmac 2017: It’s (temporarily) dead, Jim

My purpose in writing this series of posts is to share everything about the hackintosh process, as experienced by a somewhat technical user who has built a number of PCs, and one prior hackintosh. That means sharing the good (the PC booted!), the bad (graphics card roadblock), and the ugly (today's story).

The ugly is this: Frankenmac is presently dead.

4pm Update: Frankenmac has returned to life. How? I'm not entirely positive, but I think it was a system date/time issue. I booted into single user mode (which worked) and noticed a lot of the system-installed files had dates of 1969 or 2037. Typing date at the command prompt returned some date in 2040. Yikes! I rebooted, set the date and time in the BIOS, reformatted the drive (for the sixth time), installed macOS, waited for the reboot…and it worked!

I was trying to get audio working after sleep (one of the last remaining little things to fix), and managed to get the machine in a state where it'd only boot to a black screen. No amount of web searching found a workable solution, so I thought I'd just start over. To do that, I needed to format the internal drive (using my iMac's disk dock). Disk Utility isn't enough, though, as the hidden EFI partition also needs to be removed, and you can't do that in Disk Utility. (You could, via a hidden debug menu, before Apple neutered Disk Utility in OS X 10.11.)

Some web digging found the solution: Write zeros to the boot sector with this command:

sudo dd if=/dev/zero of=/dev/disk1 bs=1024 count=1024

Very important: Don't do this unless you're absolutely positive you know what you're doing! You'll wipe a disk in a hurry, and there's no recourse. Also, see the comments for a much better way!

After zeroing the disk, I ran the installer again, and that's where things went south: The installer finishes, but upon reboot, when I tell the machine to boot from the internal drive, it starts the boot process, then reboots again.

And that's where things sit. So for now, Frankenmac is tabled while I seek the advice of experts.



Frankenmac 2017: From BIOS to installed macOS

Today, a look at how my Frankenmac went from the basic hardware BIOS setup screen to a usable (though not yet fully complete or natively bootable) macOS machine. If you're just tuning in, you may want to catch up…

  • The Beginnings: Resources, parts list, and ordering. (Steps 1 - 3)
  • The build: Turning the parts into something that powers on…but that's about it. (Steps 4 - 5)
  • The roadblock: A new graphics card and an old case and old power supply do not mix.
  • Transplanted: Frankenmac moves into a new home, with a new power supply, to get around the roadblock.
  • The parts list: A constantly-updated list of the parts I used and the cost of each part.

Now that Frankenmac is functional in its new home—roadblock averted—it's time to explain how I got to that point from the BIOS boot screen of step five a few days back. It's a tale filled with drama, dread, doubt, defiance, and in the end, domination. Well, OK, it's pretty much none of that, but I had a string of "D words" in my head, and had to use them somewhere…

[continue reading…]



Frankenmac 2017: Transplanted

After hitting a roadblock with the graphics card connector in Frankenmac's many-years-old case, yesterday I picked up a new case and power supply, and set out to transfer the machine to its new home.

The power supply

First, the boring stuff: The power supply I chose is a Thermaltake Toughpower 750W 80 Plus Gold. It works well, and (other than the CPU and motherboard power cables) is modular, so you only add the cables you need.

Very strangely (to me, anyway) is that Thermaltake packages its power cables in a nylon bag, as shown in the image at right. I'm not sure why—do people wander around with PC power supply cables often enough to require a sturdy carrying case? Very odd. Anyway, the power supply is nice and quiet, installed easily, and seems to do its job. But power supplies are boring…

[continue reading…]



Frankenmac 2017: The roadblock

Today I was going to write about the process of going from the BIOS boot screen to having macOS installed on Frankenmac 2017. That, however, will have to wait for tomorrow, due to a pretty big roadblock I hit while trying to get my GTX 1080 graphics card working. The roadblock looks like this:

On the left, that's my hand. More relevant to the problem is that six-pin PCIe connector (from the power supply) in my hand. On the right is my graphics card, with its eight-pin connector. Now, while this may look like a round-plug square-hole problem, I didn't think it was, mainly because of what I found on this page:

Because of both the physical design as well as the use of the sense signals, the six-pin power supply connector plug is backward compatible with the eight-pin graphics card socket. This means that if your graphics card has an eight-pin socket but your power supply has only six-pin connectors available, you can plug the six-pin connector into the eight-pin socket using an offset arrangement, as shown below.

And it's true, the plug fits just fine. And when I powered up Frankenmac, the card lit up and the fans spun. However, onscreen I saw a message about connecting the PCIe power cable to the card, so clearly, something was amiss.

[continue reading…]



Frankenmac 2017: The Build

The continuing story of my homebuilt Mac, which I've named Frankenmac 2017. In the first installment, I covered resources, choosing parts, and ordering parts. Today, what do once the parts arrive, as mine did yesterday1Not shown: Keyboard, mouse, display, and the case.

Everything in that shot came via Amazon, except for the CPU heatsink/fan at the back right. That required more driving around than I'd care to admit (one business gone, one out of stock, another unexpectedly closed for the day), but I finally found something I liked. And with that, I had everything I needed to build the machine.

Note: This page contains an updated list (with links) of the parts I'm using in the project.

Now that I had the parts, it was time to try to turn them into a computer…

[continue reading…]



Adjusting for the oddities of ctime

In the shell script I use to back up my web sites (I really should update that, they're much different now), I include a line that trims the backup folder of older compressed backups of the actual WordPress databases. That line used to look like this:

find path/to/sqlfiles/backups -ctime +5 -delete

I thought this should delete all backups in that folder that are at least five days old, via the ctime +5 bit.1Footnote: I know now I should have been using mtime, though it would have had the same issue I had with ctime. But it turns out I thought wrong. The above will delete all files that are at least six days old. Why? I don't know why it works this way, but it's mostly explained in the man page for find (my emphasis added):

-ctime n[smhdw] If no units are specified, this primary evaluates to true if the difference between the time of last change of file status information and the time find was started, rounded up to the next full 24-hour period, is n 24-hour periods. If units are specified, this primary evaluates to true if the difference between the time of last change of file status information and the time find was started is exactly n units. Please refer to the -atime primary description for information on supported time units.

To make find do what I wanted it to do, I just needed to change +5 to +5d. Simple enough…but while figuring this out, I stumbled across this page, which has an alternative solution with more flexibility:

find path/to/sqlfiles/backups -mmin +$((60*24*5)) -delete

The mmin parameter is much more precise than ctime:

-mmin n True if the difference between the file last modification time and the time find was started, rounded up to the next full minute, is n minutes.

By using mmin, I can be really precise. As shown, 60*24*5 gets me the same five-day interval as ctime +5d. (And yes, I could have used 7200 instead of 60*24*5, but I find it clearer to leave it in its expanded form.)

But I could instead delete backups that were older than 3.25 days (60*24*3.25 or 5040), or for any other arbitrary time period. I like the flexibility this offers over ctime, so I've switched my script over to this form.



Frankenmac 2017: The Beginnings

It's been almost exactly nine years (wow!) since I last ventured into the land of Hackintoshes, or homebuilt PCs that can run macOS.

Back then, I built and used one, then wrote about the machine for Macworld, and they even lab tested it, where it held its own against real Macs costing much more.

Fast forward to 2017, and I've decided to tackle the project again. Why? Oddly, because there is a new Mac Pro coming, but it's a ways away. I want something I can use in the interim, without spending a huge amount of money on. When the new Mac Pro ships—assuming it's not an enhanced trash can design—I plan on upgrading, and the homebuilt Mac will become a gaming PC.

As I'm not writing about the project for Macworld this time around, I'm going to document things here on the blog as I go along. In today's installment, I cover the first steps in the process: online resources and parts decisions.

[continue reading…]