Di rumah ada ThinkPad X250 yang nganggur. Laptop lama sih, tapi masih bandel. Daripada cuma jadi pengganjal pintu, kepikiran: gimana kalau dipasangin macOS?

Spoiler: berhasil. Tapi jalannya nggak semulus yang saya bayangkan. Ada drama layar diam, installer yang ngaku “rusak”, sampai Bluetooth yang ngumpet. Di tulisan ini saya ceritain semuanya, termasuk solusi yang beneran jalan. Siapa tahu kamu punya X250 (atau ThinkPad seangkatannya) dan pengen nyoba juga.

⚠️ Disclaimer dulu: menjalankan macOS di hardware non-Apple itu melanggar lisensi macOS. Anggap ini proyek belajar dan eksperimen pribadi, bukan buat dipakai kerja serius.

Spesifikasi laptop saya

KomponenDetail
CPUIntel Core i5-5300U (Broadwell)
GPUIntel HD Graphics 5500
RAM16 GB (1 keping)
SSDADATA SU800 128 GB
WiFi + BTIntel AX200 (sudah ganti dari kartu bawaan)

Kenapa pilih macOS Monterey?

HD 5500 (Broadwell) terakhir didukung native di Monterey (macOS 12). Ventura ke atas sebenarnya bisa, tapi grafisnya harus di-patch pakai OpenCore Legacy Patcher, dan hasilnya biasanya lebih berat. Buat laptop 2 core begini, Monterey paling masuk akal.

Satu catatan: Chrome 150 adalah versi terakhir yang support Monterey.[3] Untuk browser yang masih dapat update, saya pakai Firefox atau Safari.

Bahan-bahan

  • Flashdisk minimal 16 GB
  • OpenCore 1.0.8 (bootloader)
  • Kext (driver ala macOS):
    • Lilu, VirtualSMC (+ SMCBatteryManager, SMCProcessor)
    • WhateverGreen (grafis), AppleALC (audio)
    • ECEnabler (baca baterai ThinkPad), IntelMausi (LAN)
    • VoodooPS2Controller (keyboard + trackpad), BrightnessKeys
    • AirportItlwm versi Monterey (WiFi AX200)
    • BlueToolFixup, IntelBluetoothFirmware, IntelBTPatcher (Bluetooth)
  • SSDT: PLUG, EC-USBX, PNLF
  • SMBIOS: MacBookPro12,1 (MacBook Pro 2015, CPU-nya seangkatan)

Panduan utama yang saya ikuti: Dortania OpenCore Install Guide, bagian Laptop Broadwell.[1]

Setting BIOS

Tekan F1 saat logo Lenovo muncul, lalu atur:

  • Secure Boot: Disabled
  • Intel VT-d: Disabled
  • Computrace & Intel AMT: Disabled
  • SATA: AHCI
  • Boot: UEFI Only, CSM No

Drama #1: Pilih menu, nggak terjadi apa-apa

USB installer pertama saya bikin pakai cara standar Dortania, yaitu macrecovery.py yang menyimpan BaseSystem.dmg di flashdisk. Masuk ke menu OpenCore aman. Tapi begitu pilih entri dan tekan Enter… nggak terjadi apa-apa.

Ternyata ada tiga masalah sekaligus:

  1. Entri yang benar disembunyikan. Opsi HideAuxiliary bikin entri recovery nggak kelihatan. Yang tampil malah entri OpenCore itu sendiri. Solusi: set HideAuxiliary ke false.
  2. Tombol Enter nggak kebaca di menu OpenCore X250. Solusi sementara: entri yang mau di-boot saya jadikan entri default, biar jalan sendiri lewat timeout.
  3. Ini yang paling bikin pusing: setelah pakai OpenCore versi DEBUG, log-nya nunjukin dmg berhasil dimuat ke RAM, terus macet tepat sesudah OCDI: Built DMG DP. Ganti driver OpenHfsPlus ke HfsPlus pun hasilnya sama. Kesimpulan saya: firmware X250 nggak akur dengan cara OpenCore memasang dmg sebagai disk virtual di RAM.

Solusinya: jadikan recovery partisi beneran

Daripada dipaksa lewat dmg, isi BaseSystem.dmg saya ekstrak jadi partisi HFS+ sungguhan di flashdisk, persis seperti installer macOS asli. Susunannya:

Flashdisk (GPT)
├── EFI (FAT32, 200 MB)        ← OpenCore
└── macOS Base System (HFS+)   ← isi BaseSystem.dmg

Semuanya saya kemas jadi satu file .img, lalu ditulis ke flashdisk pakai Rufus mode DD Image. Hasilnya, teks verbose langsung jalan tanpa jeda. 🎉

Drama #2: Reboot terus di awal boot

Begitu boot jalan, muncul error ini di layar lalu laptop restart:

#[EB.LD.OFS|OPEN!] Err(0xE) ... BootKernelExtensions.kc.x86legacyap.im4m
#[EB|LOG:RESET:RECOVERY]

Artinya: Apple Secure Boot mencari file tanda tangan .im4m yang nggak ada di partisi hasil ekstrak. Solusinya gampang: set Misc → Security → SecureBootModel ke Disabled sementara.

Drama #3: “Installation cannot proceed because the installer is damaged”

Nah, ini bagian paling panjang. Sampai di menu Recovery, saya pilih Reinstall macOS Monterey. Hasilnya:

  1. PKDownloadError error 8. Dari log ketahuan DNS jaringan sering putus di tengah download 12 GB. Solusinya, saya download full installer manual pakai curl yang bisa resume kalau putus:

    cd "/Volumes/Macintosh HD"
    curl -L -C - --retry 50 -o InstallAssistant.pkg <URL InstallAssistant.pkg Monterey>
    

    Setelah selesai, cocokkan ukuran file dengan Content-Length dari server. Ini penting banget, nanti kelihatan kenapa.

  2. “Installer is damaged”. Ini makan waktu lama. Saya sudah coba mundurin tanggal sistem, cabut LAN, ngecek codesign (hasilnya valid!), tapi tetap ditolak. Kuncinya ketemu di /var/log/install.log:

    pkgdmg is missing a footer.
    pkgdmg validation has failed.
    

    Ternyata InstallAssistant.pkg itu file hibrida: dia paket, tapi sekaligus juga dmg. Installer resmi menyalin file .pkg itu utuh jadi SharedSupport.dmg, bukan membongkarnya. Sebelumnya saya bongkar pakai pkgutil --expand, dan dmg hasil bongkaran itu kehilangan “footer”-nya.

    Cara yang benar:

    cd "/Volumes/Macintosh HD"
    APP="Applications/Install macOS Monterey.app"
    # salin aplikasi installer yang valid, lalu:
    rm "$APP/Contents/SharedSupport/SharedSupport.dmg"
    mv InstallAssistant.pkg "$APP/Contents/SharedSupport/SharedSupport.dmg"
    "$APP/Contents/Resources/startosinstall" --agreetolicense --volume "/Volumes/Macintosh HD"
    

    Selain itu ada dua hal yang ikut membantu:

    • Bikin installer lengkap pakai createinstallmedia ke partisi sementara di SSD.
    • Nyalain lagi SecureBootModel ke Default begitu boot dari installer resmi.

Dan akhirnya… desktop Monterey muncul di X250! 🥳

Post-install: beresin yang belum jalan

1. Pindahin EFI ke SSD

Biar nggak tergantung flashdisk lagi:

sudo mkdir -p /Volumes/USBEFI /Volumes/SSDEFI
sudo diskutil mount -mountPoint /Volumes/USBEFI disk2s1   # EFI flashdisk
sudo diskutil mount -mountPoint /Volumes/SSDEFI disk0s1   # EFI SSD
sudo cp -R /Volumes/USBEFI/EFI /Volumes/SSDEFI/

Cek dulu identifier-nya pakai diskutil list. Jangan asal copas!

Setelah itu matikan verbose (-v), set ShowPicker ke false, lalu aktifkan kext WiFi dan Bluetooth di config.plist.

2. Brightness nggak bisa diatur

ioreg -l | grep -c PNLF hasilnya 0. Ternyata SSDT-PNLF bawaan Dortania mencari kartu grafis bernama GFX0, sedangkan di ThinkPad namanya VID. Cek dulu:

ioreg -lw0 -p IODeviceTree | grep -oE '"acpi-path" = "[^"]*@20000"'
# hasil: .../PCI0@0/VID@20000

Fix-nya cukup satu baris perl: ganti GFX0 jadi VID_ di file .aml, lalu hitung ulang checksum-nya.

sudo perl -0777 -i -pe 's/GFX0/VID_/g; substr($_,9,1)=chr(0); $s=unpack("%8C*",$_); substr($_,9,1)=chr((256-$s)%256)' SSDT-PNLF.aml

Restart, dan slider brightness langsung jalan. ✅

3. Bluetooth (dan webcam) nggak kedetect

Di ioreg -p IOUSB, Bluetooth Intel (8087) sama sekali nggak ada. Webcam juga nggak ada. Pas dicek port-nya, macOS cuma ngaktifin HSP0–HSP2. Port 4–8 disembunyikan BIOS lewat ACPI _UPC, padahal Bluetooth dan kamera ada di situ.

Solusinya: bikin USB map sendiri, yaitu kext tanpa kode (cuma Info.plist) yang mendaftarkan 12 port: HSP0–HSP7 dan SSP0–SSP3. Sesudah restart, Bluetooth langsung nyala dan bisa konek ke HP Android. ✅

Referensi yang sangat membantu: repo zamkara/Lenovo-Thinkpad-X250-Hackintosh.[2]

4. Sleep yang bikin layar “mati suri”

Sempat kejadian: layar internal hitam dan indikator charger mati. Solusinya, shutdown total lalu atur sleep biar lebih aman:

sudo pmset -a hibernatemode 0 standby 0 autopoweroff 0 proximitywake 0 tcpkeepalive 0

Status akhir

FiturStatus
Boot dari SSD✅
Grafis HD 5500 (akselerasi)✅
WiFi AX200✅
Bluetooth✅
Brightness (slider + Fn)✅
Baterai, keyboard, trackpad✅
Audio HDMI✅
Speaker internal❌ masih PR (butuh IRQ fix)
Fingerprint, SD card❌ memang nggak didukung

Speaker internal masih belum bunyi. Controller audio HDEF kedetect, tapi driver Apple nggak mau nempel karena masalah IRQ yang umum di laptop Broadwell. Solusinya sudah ada (SSDT-HPET + patch ACPI), tinggal dicocokkan dengan DSDT. Nanti saya update di tulisan berikutnya.

Pelajaran yang saya dapat

  1. Baca log, jangan nebak. Hampir semua masalah ketahuan dari log OpenCore versi DEBUG atau /var/log/install.log.
  2. “Damaged” belum tentu file-nya rusak. Di kasus saya, penyebabnya cara saya memasang file-nya.
  3. Cocokkan ukuran download dengan Content-Length di server.
  4. Repo orang lain itu emas, apalagi kalau laptopnya sama persis. Ambil bagian yang relevan, jangan copas mentah-mentah semuanya.
  5. Selalu backup EFI yang sudah jalan. Simpan juga satu flashdisk OpenCore sebagai cadangan darurat.

Seru sih. Capek, tapi puas banget waktu logo Apple akhirnya muncul di laptop Lenovo. 😄

Kalau kamu nyoba di ThinkPad lain dan mentok, kabari saya lewat halaman Contact. Siapa tahu kita mentok di tempat yang sama.

Sources

[1] Dortania OpenCore Install Guide

[2] zamkara/Lenovo-Thinkpad-X250-Hackintosh

[3] PSA: Google Chrome 151 to drop support for macOS 12 Monterey, 9to5Mac