Originally posted 05.2019 (edited 01.2020), see: https://codepen.io/inspiredlabs/post/upcycling
Upcycling: More from less
Consumer Tech Sustainability
Faster, less energy more utility
The ethical case for hacking is clear when macOS is running on old Intel PCs.
I realised by keeping a dedicated sat-nav alive with the latest maps, this is the case for iPhones and other precious, old gear.
Is a better UX possible on a PC?
Sustainability awareness is prevalent, yet hardware is absent from the conversation. By exploiting modern software on an old desktop, there are dramatic benefits to upcycling.
After experimentation, this PC is surprisingly cooler, yet faster:
Device | Single-Core | Multi-Core |
---|---|---|
iMac 12,2 | 3629 | 12844 |
Win10 | 3485 | 10757 |
General purpose computing
General purpose computing is one of the real ways we are tangibly wealthier.
We own a lot of tech. Our devices, purchased after rigorous research are often still fit for purpose long after the manufacturer's support period. We have functioning sat-nav, analogue to digital video, phones, laptops and loads of high-end consumer components – all working, prematurely upgraded.
Still-healthy consumer tech
Our buying habits hit single function device companies hard. Whilst these devices are perfectly good at their job, convergence devices are obviously of higher utility.
Recently, our sat-nav confessed to no future updates. The manufacturer has its termination on the horizon. This is unfortunate, it works well, but a sat-nav without updates is less useful.
The death of support
When companies issue the death of support, devices become ours. You can't take an EULA seriously if they are no longer applicable. As an opportunity to explore what the silicon is still capable of, I learned about broader trends. And, Apple's future business model.
A new lease of life
Setting out to keep the sat-nav up-and-running on an old desktop might seem pointless. Capacitive touch, better fidelity connectivity, Google maps. Even iOS has reasonable turn-by-turn Maps nowadays.
Originally, the desktop was running Win7. With a seamless upgrade to Win10, it is frustrating that TomTom would retire our faithful copilot.
I started to explore the options. There were some dead-ends.
Who is this guide for?
This is not a buying guide. It is aimed at those finding their way to research a viable solution.
This guide is aimed at anyone wanting an overview of the hurdles associated with upcycling to macOS.
Work through these issues. Expect problems. Record progress.
Failsafe: Windows 10 in MacOS
With Parallels 13 you can connect legacy devices to a VM. Installation isn't complicated.
First: alleviate the Transport Agent
Using the Transport Agent in Parallels 13 it's important to save mounting anything extraneous before in a VM if you think disk space and performance is going to be an issue.
To interpret disk space SpaceSniffer is clear and snappy.
The cleanup:
- Internet files:
~\AppData\Local\Microsoft\Windows\Temp
-
C:\Windows\System32\DriverStore
@1.8gb- Driver staging (see below):
pnputil.exe -d oem.inf
- Driver staging (see below):
-
C:\Windows\Installer
@1.2gb -
C:\Windows\winsxs\Backup
@1gb -
C:\CrystalDiskMark00D02362
@1gb -
C:\Windows\Microsoft.NET
@800mb -
C:\Windows\System32\config
@600mb -
C:\Windows\SoftwareDistribution
@600mb -
C:\ProgramData\Microsoft\Search
@370mb -
C:\ProgramData\Skype
@326mb
Be aware that Windows duplicates system files across the drive.
The "Application Data" folder, it is still a Junction, and it is only a pointer to another folder. Source
Running CCleaner portable isn't that helpful – but the GUI can purge some entries quasi-automatically.
Painless extraction
Applications and their registry entries can be hard to completely remove. Revo does a great job to scan and catch detritus. Most of the installed software isn't required to run in the VM. So should be uninstalled.
Uninstalled with Revo:
- Atom
- Apple Application Support
- Cyberlink DVD player
- Easeus Partition
- Foxit
~user\AppData\Local\Temp
@1gb - iTunes/iCloud
- Simplenote
- Scratch
- Opera
- Windows Live Essentials
- ...and after migrating the VM: Parallels transport agent
Driver staging
Corroborate relevant drivers with DriverView.
Removing a bloated driver repository in Windows can be key to reclaiming disk space.
You can also take this opportunity to interpret what is actually happening on Windows with pnputil.exe -d oem.inf
or the GUI: driverstoreexplorer.
You'll need an elevated command prompt.
This process reclaimed ~90gb of disk space for Parallels.
Desired outcome
With a pile of spare components, I wanted the upgrade to free up devices and simplify.
Proof of concept: 120GB SSD:
- macOS booting in from a conservative partition
- Parallels 13 + Windows7 VM legacy devices
- Clover boot loader, stable UEFI
Hybrid PC running macOS: 500GB SSD:
- macOS booting as the main OS
- iTunes, FaceTime & day-to-day work files
- Parallels 13 with Microsoft Office
- Working sat-nav and other legacy devices
- Clover boot loader, stable UEFI
- Return the proof of concept 120GB SSD into a portable again.
- Optional dual boot (Intel VT-x Windows10 VM preferable).
Backup HDD:
- Backup working Windows10 partition
- Backup Windows7 VM
- Bootable macOS image
Initial research
Priorities
First choice is "High Sierra", as stability tops bleeding-edge problems. Although Catalina looks interesting, I was already in unknown territory.
Display
Expecting the graphics card to be an issue, I looked into people's experience.
AMD Radeon HD 5700 Series
- 68B8
- 2010/03/26
- GDDR5, 1024 MB
This research yielded some known issues:
...and for networking:
- RTL81xx networking: http://lnx2mac.blogspot.com/p/realtekrtl81xx-osx-driver.html
Involuntary APFS upgrade
High Sierra installs to to an APFS partition by default. Therefor the Clover boot loader requires APFS.efi
in EFI/CLOVER/drivers64UEFI
.
Sans-APFS is complicated.
What is APFS?
- the primary file system for 64bit environments.
- introduced in 2017 to iOS 10.3 and later to macOS.
- uses
TRIM
command by default, for performance/management - Clones allow revision via efficient deltas
- Snapshots for instancing
- native encryption
- large file ceiling
- Crash consistency – by writing new metadata records, referencing new entries and releasing old ones.
- Checksums. Read about the detail.
What is Clover?
- a bootloader for PCs running macOS.
- the accompanying configurator helps iterate through
Config.plist
settings. - ideal for UEFI devices
First attempt
The machine
ASUS P8P67m, i7 2700K, 8GB RAM on a 120GB Corsair SSD.
The process
MacOS High Sierra 10.13.1 (17B1003)
Some system configuration in the UEFI (which replaces the BIOS) is required.
The Unibeast 8.3.2, installation helped me establish a sense of what to expect.
Unibeast
MultiBeast is an all-in-one post-installation tool Source
Unibeast simplifies setup choices and a destination target. It hides complexity with a cutesy interface. I recommended reading the text summary of the Clover settings applied at the end. Especially, if you're unfamiliar with the Clover configurator.
Making a Unibeast installer
- Wipe the USB key from Terminal:
sudo diskutil partitionDisk /dev/disk2 GPT JHFS+ macos R
Source - This avoids errors such as:
On "unibeast" "apfs.efi failed"
during rewrite. - Copy Multibeast onto the USB device.
-
Initial settings:
- Choose High Sierra
- UEFI boot mode
- no legacy ATI <4xxx
High Sierra sources
Unibeast relies on the source being downloaded to the official location: /Applications/High Sierra.app
from:
- the support instructions link to this source.
- or a myriad of unsupported sources.
- or by connecting to the repository with an unverified utility.
System & Multibeast config
Before booting into the installer, some specifics are recommended that change from board to board. Hit DEL
key on POST to change into Advanced Mode
.
Manually tweak the UEFI settings:
- VT-d, disabled
- CFG-Lock, disabled
- Secure Boot Mode, disabled
- Type, Other OS
- IO Serial Port, disabled
- XHCI Handoff, Enabled
- To avoid conflict, disable USB 3.0 in BIOS for the install (AWARD BIOS conditional: 6 series or x58), Source.
- For installation, the SSD should be connected to the SATA Intel controllers (grey):
Biggest thing that helped me was making sure the drive is connected to one of the Intel controllers (grey). I'm running on 10.12.2 with no issue currently Source
-
Multibeast config:
- Audio: ALC892.
- for more information loading audio KEXT on the ASUS p8p67-m.
- USB 3.0:
- Disk: Intel Generic
- Misc:
FakeSMC
plugins - Network:
RTL8111 v2.2.2
- USB:
-
USBInjectAll
RehabMan - 3rd Party USB 3.0
-
- Bluetooth:
Atheros
- Core GFX fixup AKA
Whatevergreen
- SSDT: SandyBridge core i7
- Profile:
iMac 14,2
- Recommended profile
12.2
Source
- Recommended profile
- Audio: ALC892.
Conclusion, first attempt
This took over an hour to install... then hang. Although EFI/CLOVER/drivers64UEFI
wasn't present. Read about that here.
High Sierra 10.13.6
The most straightforward installation.
Obrigado amigo Maldon!
Community guide
Follow the Olarila guide. Or this one.
Caveat emptor
Olarila uploaded an unverified source.
Onboard audio
- Audio driver (
Realtek ALC892
): Doesn't function. - patch
AppleHDA
kext like this.- the flag should be:
5
not7
. - reboot, although doesn't appear to work.
- the flag should be:
- Acpi (Advanced Configuration and Power Interface):
- FixHDA
- SSDT: Use SystemIO
Clover Configurator
- Follow the instructions to use AppleAlc via DPCI Manager.
- Download: CLOVER.SERIES.CHIPSET.zip
- Paste edited DSDT.aml
- Load Clover Configurator
- mount the USB's EFI
- CLOVER.SERIES.CHIPSET.zip
- Added iMac14,2 system info
- Click: Apple, shut down or restart. Neither work!
SSD overheating?
- AJA System Test is installed on x official
- Install Intel Temp monitor
- "SSD" "overheated" "Olarila"
- this is unlikely as the physical disk is cold to touch.
- RED VARS in UEFI on POST.
- Why are mobo sensors returning extreme value if the device isn't hot?
- RED VARS in UEFI on POST.
Display tweaks
A 30" monitor has tiny system fonts, that are unreadable by default.
- Excellent webpage zoom utility (@133% on 30" Dell monitor): https://addons.mozilla.org/en-US/firefox/addon/fixed-zoom/
- UNTESTED system zoom utility: https://www.bresink.com/osx/0TinkerTool/download.php
- alternatively, consider:
defaults write NSGlobalDomain AppleDisplayScaleFactor 1.5
or⌘J
and scaling the icons to suit. Source - Icons: http://osxdaily.com/2014/07/27/mac-os-x-system-icons-location/
- alternatively, consider:
Boot without USB key
After installation, Olarila, High Sierra 10.13.6 boots and loads Mac OS X
from the UEFI partition on the USB key.
How to recover POST failure
Scrambled VRAM causes POST failure (Power On Self-Test), and won't reboot. This causes an audio alert. The ASUS P6P67-m error code is: one long beep and 3 short beeps.
Don't panic.
- You might need to clear the CMOS, simply walk through this, although a you just need a good POST.
- OR, remove the graphics board. After I removed the Quadro FX 4600 from the PCIe slot, it was fine.
- I confirmed everything worked by putting in an ATI card and rebooting. Good POST.
- Remove ATI.
- Reinsert Nvidia.
- Nvidia booted perfectly fine after this.
How to remove "Mac OS X" from UEFI/BIOS
# Use UEFI interactive shell v2.2
You'll need to familiarise yourself with the UEFI interactive shell v2.2 commands.
- To remove "Mac OS X" you'll need to identify the device.
- example:
-
map
ls inBLK0:
blank USB. -
map
ls inFS4:
Recovery partition. -
map
ls inFS3:
HS macOS partition. -
map
ls inFS2:
looks pretty good
-
- then
bcfg boot rm 2
Source -
exit
- remove USB key and reboot.
- now boots correctly without USB into Clover.
The process
MacOS High Sierra 10.13.1 (17B1003), upgrade notes
FaceTime on macOS 10.13.6:
"only way you can activate iMessage reliably (& login/logout, not attaching a credit card to your AppleID) is to use the genuine serials from a Mac".
Get iMessage
, FaceTime
and iTunes
legitimately working:
-
OVERVIEW... using legit Mac data you'll edit
config.plist
like this:- SMBIOS:
- Serial number: C02KT1XTFFT1
- Generate new SmUUID (won't work 100%).
- Rt Vars:
- MLB:
C02319200RRFAPPLE
- ROM: Generate (won't work 100%).
- MLB:
- System Paramaters: ...etc.
- SMBIOS:
-
...you've owned a few MacBooks already, so let's grab the legit Mac data from one of those:
- download
iMessageDebug
and run this from a regular macOS machine, not a Hackintosh.- from: https://mac.softpedia.com/get/System-Utilities/iMessageDebug.shtml
- background reading: https://www.insanelymac.com/forum/files/file/278-imessage_debug/
- IMPORTANT: double check your "system-id":
ioreg -l -p IODeviceTree | grep \"system-id
, is the same asSystem-ID
in the text file.
- from: https://mac.softpedia.com/get/System-Utilities/iMessageDebug.shtml
- Before we simulate the system definitions correctly (for 10.13.6):
- check networking default:
en0
, in System Information, Network, Active Services. If not, fix that first (not included in this guide).
- check networking default:
- How to simulate system definitions:
- copy real system definitions from a MacBook, here's a vague overview: https://www.youtube.com/watch?v=IYismHReQ8A
- Mount EFI device on High Sierra, and edit the
config.plist
to match youriMessageDebug
output:
- Mount EFI device on High Sierra, and edit the
- copy real system definitions from a MacBook, here's a vague overview: https://www.youtube.com/watch?v=IYismHReQ8A
- download
SMBIOS:
- BoardSerialNumber: **C02319200RRFAPPLE**
- IOPlatformSerialNumber: **C02KT1XTFFT1**
- IOPlatformUUID: **SmUUID, F9D30C90-323D-C550-91E2-884FF138F35F**
SystemParameters:
- System-ID:
**CustomUUID, F9D30C90-323D-C550-91E2-884FF138F35F**
- InjectSystemID = true
RtVariables:
- ROM: **44fb42408a76**
- MLB: **C02319200RRFAPPLE**
In Clover Configurator, Mount your target EFI and enter:
• SMBIOS:
- BoardSerialNumber:
C02319200RRFAPPLE
- IOPlatformSerialNumber:
C02KT1XTFFT1
- IOPlatformUUID:
SmUUID, F9D30C90-323D-C550-91E2-884FF138F35F
• SystemParameters:
- System-ID:
CustomUUID, F9D30C90-323D-C550-91E2-884FF138F35F
- InjectSystemID = true
• RtVariables:
- ROM: 44fb42408a76
- MLB: C02319200RRFAPPLE
• Reboot with your saved config.plist
.
- run iMessageDebug
- notice the MacBook and custom build Board-id
, they're different, this is correct.
- ... by using legit credentials, you should NOT need to re-activate iMessage on your iPhone or iCloud.
- from: https://www.tonymacx86.com/threads/help-how-to-fix-imessage-facetime-or-icloud-under-10-13-6-or-10-14.261862/
- This helps slowing down Apple support: https://www.insanelymac.com/forum/topic/299372-how-to-solve-imessage-login-problem/
Upgrade ethics
key ideas
Sustainability in consumer-tech:
- strategy to keep devices healthy
- the premature death of mobile, is well – terrible!
- Hackintosh for old PC gear is great
- learning outside main competency
Conclusion
Breathing new life into these devices has an excellent outcome, proving the ethical case for upcycling.
Top comments (0)