해킨토시(혹은 커스텀맥)의 정의
쉽게 말해 Mac이 아닌 PC에 맥 OS를 설치하여 사용하는 것을 의미합니다. 최근에는 Hacking
이란 표현이 부정적이어서 그랬는지 커스텀맥
이란 표현을 많이 사용하는 것 같습니다. 자세한 정의는 나무위키를 참고해 보세요.
왜 해킨토시가 필요한가?
저의 경우 금전적인 이유가 가장 큽니다. 이미 윈도우 데스크톱과 노트북이 있고, 맥미니도 있는 상황에서 추가로 맥북을 구입하기는 금전적으로 좋은 결정은 아닌 것 같고, 맥북이 필수는 아니고 보조적인 용도로 필요한 것이라서 커스텀맥을 고민하게 되었습니다. 게다가 제 노트북이 Dell XPS 13 9343인데 윈도우에서는 QHD+의 화면 해상도를 제대로 지원하지 않아서 맥 OS를 설치해보고 싶다는 생각이 들었습니다. XPS 13 9343 모델 전용의 커스텀맥 만드는 방법도 공유가 되어 있는 상황이라서 한번 시도해 보기로 했습니다.
용어의 이해
커스텀맥을 만들기 위해 필요한 작업에서 자주 출현하는 용어들입니다.
부트로더(Boot Loader)
부트로더의 사전적 의미는 운영 체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동시키기 위한 목적을 가진 프로그램입니다. 부팅 과정을 간단하게 표현하면 BIOS -> 부트로더 -> 커널 -> 운영체제
와 같은데, 커스텀맥 만들기에 있어서 부트로더는 맥OS 설치를 가능하게 하는 프로그램
이라고 이해하면 쉬울 것 같습니다. 커스텀맥을 위한 부트로더의 종류로는 클로버(Clover), 키메라(Chimera), 카멜레온(Chameleon), 오즈모시스(Ozmosis) 등이 있으며, 최근에는 클로버
가 주로 사용되는 것 같습니다. 클로버에 대한 정보는 공식 홈페이지에서 좀 더 확인할 수 있습니다.
켁스트(Kext)
Kernel extensions
의 약어로서, 윈도우 컴퓨터로 따지자면 일종의 장치 드라이버
라고 할 수 있습니다. 컴퓨터에 설치된 하드웨어를 정상적으로 인식하고 구동되기 위해 꼭 필요한 것입니다. Kext
는 단일 파일이 아니라 디렉토리 구조를 갖고 있는 파일 집합체로서, 위치는 System/Library/Extensions
에 저장됩니다. 이 경로를 줄여서 S L E
라고 표현하기도 합니다. 진짜 맥 컴퓨터에서는 Kext가 자동으로 잘 설치되지만, 커스텀맥에서는 자신의 하드웨어에 맞는 Kext
를 모두 수동으로 설치하고 하드웨어가 변경됐을 경우 패치하는 작업도 수동으로 진행해 주어야 합니다. 맥 OS 업데이트 후 이상 증세가 발견된다면 Kext
를 재설치하거나 Kext
내부에 있는 info.plist
를 수정하여 문제를 해결할 수도 있습니다.
Kext를 구하는 방법은 일반적인 하드웨어에 대한 것인 경우 tonymacx86의 MultiBeast 앱을 이용하시면 됩니다. MultiBeast는 해당 홈페이지에서 회원가입 후 다운로드 페이지에서 다운로드 받을 수 있습니다.
바이오스(BIOS), UEFI, GPT
바이오스(Basic Input/Output System Firmware Interface)
는 PC에 탑재된 모든 하드웨어 및 소프트웨어의 기본적인 동작을 제어하는 펌웨어 인터페이스
입니다. 컴퓨터의 전원을 켜면 가장 먼저 기동되는 것도 바이오스로, 일반적으로 검은색 바탕에 컴퓨터 제조사의 이름 및 CPU의 속도, 메모리의 용량 등의 하드웨어 정보를 화면에 표기하는 것으로 그 실체를 확인할 수 있습니다. 컴퓨터의 전원을 켠 직후에, 키보드의 특정 키를 눌러(예. Delete, F1, F2 등) 파란 바탕에 흰색 글자로 이루어진 바이오스 설정 메뉴로 들어갈 수 있습니다.
UEFI(Unified Extensible Firmware Interface)
도 바이오스
와 같은 펌웨어 인터페이스
를 의미하는 단어이며, 기존 바이오스 대비 성능과 편의성이 향상된 것이라고 보시면 됩니다. 2010년경부터 보급이 시작되어 세련된 그래픽 사용자 인터페이스의 설정 메뉴를 제공하며, 키보드뿐 아니라 마우스로도 메뉴 조작이 가능합니다. 그 외에도 2.1TB 이상의 대용량 하드디스크를 기본 지원하는 등 성능적으로도 이점이 많습니다.
GPT(GUID-Globally Unique IDentifier-Partiton Table)
는 EFI, UEFI를 지원하는 디스크 파티션 기술입니다. 현재 대표적인 디스크 파티션 기술은 MBR과 GPT이며, MBR의 기술적 제한을 해결하기 위한 것이 GPT입니다. 참고로 BIOS는 GPT 방식으로 만들어진 저장 장치에서 운영체제를 부팅할 수 없습니다. GPT 방식으로 HDD 혹은 USB를 포맷하면 EFI 파티션이 생성되며, 이 EFI 파티션에 클로버 부트로더를 설치하게 됩니다.
전체 설치 계획
Dell 9343 노트북에 맥OS를 설치하고 윈도우도 설치하여 멀티 부팅을 사용할 생각입니다.
커스텀맥 만드는 방법
1. 맥OS 설치 USB 만들기
맥OS 설치 USB 만들기의 전체 과정은 대략 아래와 같습니다.
a. 윈도우에 가상 머신을 만들고 맥OS를 설치합니다.
b. 맥OS에서 Sierra 설치 파일을 다운로드합니다.
c. tonymacx86에서 UniBeast 프로그램을 다운로드합니다.
d. Unibeast를 통해 설치 USB를 만듭니다.
가상 머신을 만들고 맥을 설치하는 방법은 기존에 윈도우의 VirtualBox에 macOS Sierra 설치하기 글을 참고하시면 됩니다. Appstore에서 Sierra를 다운로드 받으셨다면 설치 USB를 디스크 유틸리티를 이용해 포맷은 OS X 확장(저널링)
, 설계는 GUID 파티션맵
으로 선택한 후 포맷합니다.
참고로 USB를 인식하기 위해서는 VirtualBox의 장치
메뉴에서 USB
리스트에서 원하는 USB를 선택해야 합니다(USB 인식이 제대로 되지 않는 것 같아 VirtualBox Extension Pack을 설치하여 USB 2.0으로 설정을 변경했습니다).
tonymacx86 다운로드 페이지에서 UniBeast
를 다운로드합니다. UniBeast는 OS언어가 영문인 경우에만 실행된다고 하니, 시스템 환경설정에서 언어를 영어로 변경해 줍니다. 위 VirtualBox 설치 버전을 사용하고 계시다면 따로 변경하지 않아도 영어로 설정돼 있을 것입니다. 설치가 다 됐다면 실행합니다. 별도로 언급하지 않은 부분은 그냥 다음다음으로 넘어가시면 됩니다.
Destination Select
화면에서 아까 포맷한 USB를 선택합니다.
Select OS Installation
에서 Sierra를 선택합니다.
Bootloader Configuration
에서 UEFI Boot Mode
를 선택합니다.
이후 체크 옵션은 아무 것도 체크하지 않고 넘어갑니다. USB를 만드는데는 시간이 좀 걸립니다. 대략 2~30분 정도 걸리는 것 같습니다.
설치 USB를 성공적으로 만들었다면, BIOS DVMT pre-alloc variables를 변경하기 위해 몇 가지 추가 작업이 있습니다. 이 링크에 있는 파일을 일단 모두 다운로드합니다.
파일 중 EFI by K
라는 압축 파일이 있는데 압축을 푼 후에 USB에 있는 EFI
폴더를 모두 지우고 이 폴더로 대체합니다. 그리고 아래와 같이 파일명을 변경합니다.
a. EFI\CLOVER\tools 폴더에서 Shell64U.efi
를 Shell64U.efi_old
로 변경
b. EFI\CLOVER\tools 폴더에서 dell64.efi
를 Shell64U.efi
로 변경
이후 설정 과정은 다음 단계에서 말씀드리겠습니다. 맥을 설치한 후에 설정에 필요한 파일도 모두 설치 USB에 저장해 둡니다. 설치 USB 파티션 중 EFI
파티션 말고 다른 파티션에 저장합니다. 설치 후 인터넷이 잘 된다면 필요가 없을 수도 있지만, 설정이 잘못되어 인터넷이 안 되는 경우를 대비하여 USB에 저장해두는 것입니다. 위 링크에 있는 EFI Mounter
파일은 물론 Clover Bootloader와 Clover Configurator도 함께 저장해 둡니다.
이것으로 설치를 위한 USB 제작은 완료되었습니다. 아직 재부팅을 하지 마시고 다음 단계로 넘어갑니다.
2. 바이오스 설정하기
Dell 9343의 바이오스를 A07
버전으로 업데이트합니다(이미 업데이트가 된 상태라면 하지 않으셔도 됩니다). 업데이트 파일은 Dell 홈페이지에서 다운로드 받을 수 있습니다. 업데이트를 하게 되면 자동으로 재부팅을 진행하게 됩니다. 업데이트를 모두 완료하고 다음 단계를 진행합니다.
컴퓨터를 재부팅하여 F2
키를 눌러 BIOS 설정 화면으로 들어갑니다. 바이오스 설정값을 변경해둔 것이 있다면 나중을 위해 미리 저장합니다(Save Profiles와 같은 메뉴를 이용). 바이오스 디폴트 값을 불러옵니다(Load Optimized Defaults와 같은 메뉴를 이용). 그리고 아래와 같이 설정을 변경합니다.
- Secure boot : Disable (디폴트 값이 Disalbe임)
- Virtualisation options and C-State : Disable (Virtualisation과 C states 모두 Checked가 디폴트)
- Legacy mode : Enable(만약 이것이 비활성화돼 있다면 그래픽 활성화시 garbled screen 현상이 발생하게 된다고 합니다.)(정확히 어떤 값인지 몰라서
Enalbe Legacy Option ROMs
에 디폴트 체크돼 있어서 변경하지 않았습니다.)
부팅 순서를 USB를 먼저 읽도록 변경한 후에 설치 USB를 꽂고 재부팅을 합니다.
3. 맥OS 설치하기
설치 USB를 꽂고 컴퓨터를 켜면 Clover Bootloader가 실행될 것입니다.
위에서 말씀드렸던 BIOS DVMT pre-alloc 값을 변경하기 위해서 메뉴 중 두 번째 줄에 있는 Start UEFI Shell 64
메뉴를 선택합니다. 그러면 검정색 바탕의 명령 프롬프트같은 화면을 보실 수 있을 것입니다(만약 노란색 바탕화면의 창이라면 제대로 선택하지 않은 것입니다!). 해당 코맨드 창에 아래와 같이 입력합니다. 두 번 입력하라고 돼 있어서 동일한 문구이지만 한 번 입력하고 엔터, 또 한 번 입력하고 엔터, 총 2회 실행했습니다.
UEFI SHELL (grub) 창
setup_var 0x183 0x3
setup_var 0x183 0x3
기존 값은 아래와 같습니다. 위 변경값을 입력할 때 기존 값이 표시되는데 아래와 같은 값이었는지 참고용으로만 보시기 바랍니다.
setup_var 0x183 0x1
setup_var 0x183 0x1
코맨드 창에 exit
를 입력하여 창을 빠져 나옵니다. 메뉴 중에서 Options
를 선택합니다.
Graphics Injector
메뉴에 들어가서 InjectIntel
체크를 해제합니다. 만약 해제를 하지 않고 설치를 진행하면 부팅에 실패하니 꼭 해제하시기 바랍니다.
Return
메뉴를 이용해 클로버 부트로더 첫 화면으로 다시 돌아옵니다. 설치 USB를 선택하여 맥OS 설치를 진행합니다. 설치 시작화면에서 상단 메뉴 중 디스크 유틸리티
를 선택하여 파티션을 만드는 작업을 먼저 진행해야 합니다. 기존에 존재하는 파티션은 모두 제거한 후에, 원하는 형태로 파티션을 나눠줍니다. 저 같은 경우에는 맥과 윈도우를 동시에 쓸 예정이기 때문에 맥 200GB에 나머지는 모두 윈도우 파티션으로 만들었습니다. 두 파티션 모두 설치 USB를 만드는 것과 동일하게 OS X 확장(저널링)
방식에 GUID 파티션맵
으로 파티션을 만듭니다. 파티션을 만들었다면 디스크 유틸리티를 빠져 나옵니다.
이제 본격적으로 맥 설치를 진행합니다. 설치할 때 iCloud 계정같은 것들은 입력하지 말고 넘어갑니다. 그 외에는 별다르게 코멘트할 부분이 없어서 다음 단계로 넘어가겠습니다. 설치를 하고 나면 한 번 재부팅을 하게 됩니다. 그러면 다시 클로버 부트로더 화면이 표시되는데 위와 마찬가지로 InjectIntel
에 체크 해제하고 클로버 부트로더 화면에서 맥 OS가 설치된 HDD를 선택(클로버 부트로더에서 두 번째 하드 모양 선택)하여 이제 HDD로 부팅을 진행합니다.
4. 클로버 부트로더와 기타 필요 파일 설치
이제 HDD에 클로버 부트로더를 설치해야 합니다. 먼저 설치 USB에 아까 복사해두었던 클로버 부트로더를 설치합니다. 설치할 때 설치 위치 변경
에서 맥이 설치된 HDD를 선택해주시기 바랍니다. 그리고 사용자화
메뉴에서 UEFI 부팅 전용으로 설치
와 ESP에 Clover 설치
, Drivers64UEFI
, 클로버 환경설정 패널 설치
에 체크한 후에 설치를 진행해 주시기 바랍니다.
설치 USB에서 아까 복사해둔 EFI Mounter
를 실행합니다. 그리고 방금 클로버 부트로더를 통해 HDD에 설치된 EFI
파티션을 마운트합니다. HDD에 설치된 EFI
폴더를 삭제하고 설치 USB에 있는 EFI
폴더를 복사하여 붙여넣습니다(APPS
폴더와 S L E
폴더는 필요없으므로 삭제합니다). 그리고 APPS
폴더에 있는 Kext Utility.app
을 실행합니다. 캐시를 재빌드할 때까지 기다리면 Kext 파일을 드래그해달라는 메시지가 표시될 것입니다. S L E
폴더에 있는 Kext 파일을 선택한 후 Kext Utility
창으로 드래그하고 설치를 완료합니다.
만일의 경우를 대비하여 설치 USB에 있는 파일들을 모두 HDD에 복사해둡니다. EFI
파티션에 있는 파일들과 아까 별도로 복사해둔 파일을 모두 HDD로 옮겨둡니다. 이제 맥을 재부팅합니다. 마찬가지로 InjectIntel
에 체크 해제하고 HDD로 부팅을 합니다.
5. HD 5500 그래픽 설정
Sierra에서 UHD 화면 설정이 동작할 수 있도록 터미널에 아래 명령을 실행해야 합니다. 응용 프로그램에 있는 터미널을 실행합니다.
입력해야할 것이 굉장히 긴데 아까 설치 USB의 EFI
폴더 안에 Tutorial.txt
파일에 명령어가 들어 있습니다. 복사해서 사용하시기 바랍니다.
sudo perl -i.bak -pe 's|/xB8/x01/x00/x00/x00/xF6/xC1/x01/x0F/x85|/x33/xC0/x90/x90/x90/x90/x90/x90/x90/xE9|sg' /System/Library/Frameworks/CoreDisplay.framework/Versions/Current/CoreDisplay
sudo codesign -f -s - /System/Library/Frameworks/CoreDisplay.framework/Versions/Current/CoreDisplay
6. InjectIntel 상태로 맥 재부팅
TERMINAL APPLY 4K UHD fix 명령어를 실행한 후에 맥을 재부팅합니다. 이제 옵션 메뉴에서 InjectIntel
에 체크 해제할 필요없이 HDD를 선택하여 부팅할 수 있습니다. 무선랜과 사운드도 이제 정상 작동할 것입니다. 설치 USB는 컴퓨터에서 제거하시면 됩니다.
7. 추가 설치
시스템 환경 설정에 트랙패드 설정 설치
커스텀 맥을 설치하면 터치 패드를 꼭 클릭해야만 동작을 하게 됩니다. 다시 말해 터치로는 클릭 액션이 먹질 않습니다. 시스템 환경설정
에 트랙패드
설정 파일을 꼭 설치해 준 후, 설정을 해야 동작을 하게 됩니다. 위 다운로드 링크에 트랙패드 설정 파일은 함께 포함되어 있습니다. 해당 파일을 시스템 > 라이브러리 > PreferencePanes
폴더에 있는 기존 파일과 교체해 주어야 합니다. 폴더가 보이지 않는 경우 아래 문구를 터미널에 입력하시기 바랍니다.
sudo chflags -R nohidden /*
위와 같이 입력한 후, Finder 메뉴에서 이동
-> 폴더로 이동
을 선택한 후에 /
를 입력한 후 엔터를 눌러야 적용됩니다.
위처럼 진행하면 트랙패드 메뉴는 활성화되는데, 설정값이 재부팅할 때마다 초기화되는 문제가 발생합니다. 이 경우 여기에서 Voodoo-PS2-Controller
최신 버전을 다운로드 받은 다음에 Kext Utility
를 이용해 S L E
폴더에 재설치하면 설정값이 정상적으로 저장이 됩니다.
WiFi Kext 설치
S L E
폴더에 있는 AirPortBrcm4360.kext
를 설치했음에도 불구하고 WiFi가 되지 않습니다. 이때 다시 Kext Utility
를 실행하여 AirPortBrcm4360.kext
를 다시 설치하고 재부팅합니다.
결과물입니다(뒤에 수저가 찍혀서 좀 이상하지만;;).
8. 윈도우로 듀얼 부팅하기
윈도우로 듀얼 부팅을 이용하기 위해서는 맥을 먼저 설치해야 합니다. 맥을 설치할 때 맥을 설치할 공간과 윈도우를 설치할 공간을 모두 디스크 유틸리티를 이용해 GUID 파티션으로 나눕니다. disk0s1은 EFI, disk0s2는 맥, disk0s3는 윈도우 파티션이 되는 것입니다. 그리고 윈도우 설치 USB를 만든 후에 USB를 꽂고 바이오스 설정에 들어가서 윈도우 설치 USB로 부팅되도록 부팅 순서를 변경합니다. 윈도우 설치 과정 중 아까 만든 윈도우용 파티션을 삭제하고 윈도우 설치용 파티션으로 만들어 줍니다. 이 때 전체 용량보다 2MB
작게 잡아주어야 한다고 합니다.1 윈도우를 설치합니다.
이렇게하면 윈도우로만 부팅이 되는데, 바이오스 설정에 들어갑니다. EFI
부팅 순서가 윈도우 부트 매니저가 1번, 클로버 부트로더가 그 다음 순서로 되어 있을텐데 클로버를 1번으로 변경하고 윈도우 부트 매니저는 뒤쪽으로 순서를 변경합니다. 바이오스 설정을 저장하고 나오면 클로버 부트로더가 실행될 것입니다. 만약 윈도우로 부팅하고 싶으시면 클로버 메뉴 중에서 Boot Microsoft EFI boot from EFI
를 선택해주시면 됩니다.
문제 해결
노트북 키보드와 터치 패드가 동작하지 않을 때
MultiBeast 앱으로 설정을 하다 잘못 건드렸더니, 부팅하고 로그인 화면부터 노트북 키보드와 터치 패드가 동작하지 않는 문제가 발생했었습니다. USB 키보드와 마우스를 연결하니 동작을 하길래, 로그인을 한 후에 Kext Utility
를 이용하여 VoodooPS2Controller.kext
를 재설치하고 재부팅하니 정상 동작했습니다.
블루투스가 잡히지 않을 때(아래 방법이 된 경우도 있고 안 되는 경우도 있어서 미해결)
대부분 여기 내용을 참고했습니다.
여기에서 Install FakePCIID.kext
and FakePCIID_XHCIMux.kext
설치
여기에서 USBInjectAll.kext
from the latest distribution here.
Put them in /Volume/EFI/EFI/CLOVER/kexts/10.11… on your system boot drive. (I had to create 10.11 directory since it was removed during install for Latitude 3340) This is done by opening Clover Configurator, mount EFI and dragging and dropping them to the directory.
Then with the EFI mounted, double click on config.plist to load the config to Clover Configurator, go to Acpi, under the DSDT -> Patches, click on the small “+” sign to the bottom right of the box to add patches. 2 are needed.
Comment | Find | Replace |
---|---|---|
Change EHC1 to EHC01 | 45484331 | 45483031 |
Change EHC2 to EHC02 | 45484332 | 45483032 |
go to Boot section, in the Custom Flags box, add: (this part was necessary for my Desktop, so I did it for my laptop without checking if it worked without it)
-uia_exclude_hs
File -> Save. Then close clover configurator. Click away the warning about not able to save different versions. After reboot, I can see the USB section had the bluetooth listed, but nothing under bluetooth section in system report. At this time I was using BrcmFirmwareData.kext in /EFI/Clover/kext, so I removed those and tried BrcmFirmwareRepo.kext next.
Copy BrcmFirmwareRepo.kext and BrcmPatchRAM2.kext to /S/L/E from here: https://github.com/RehabMan/OS-X-BrcmPatchRAM then run the permission fix.
sudo chmod -Rf 755 /L*/E*
sudo chown -Rf 0:0 /L*/E*
sudo chmod -Rf 755 /S*/L*/E*
sudo chown -Rf 0:0 /S*/L*/E*
sudo touch -f /L*/E*
sudo touch -f /S*/L*/E*
sudo kextcache -Boot -U /
맨 마지막 명령을 실행하면 아래와 같은 결과 메시지가 표시됩니다.
rebuilding /System/Library/PrelinkedKernels/prelinkedkernel
kext file://Library/Extensions/DisableTurboBoostBattery.kext/ is in hash exception list, allowing to load
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext CodecCommander.kext
kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleHDA_ALC255.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID_BCM94352Z_as_BCM94360CS2.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext FakePCIID.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext BrcmPatchRAM2.kext
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext BrcmFirmwareRepo.kext
/System/Library/PrelinkedKernels/prelinkedkernel not cached.
Successfully updated disk0s3.
kextcache updated critical boot files, requesting launchd reboot
Kext 파일 구하는 곳
참고
- 입문자를 위한 x86 안내서
- [하스웰] 초보자들을 위한 개념 이해하기 부터 커스텀맥 설치하기 까지 [1부]
- [하스웰] 초보자들을 위한 개념 이해하기 부터 커스텀맥 설치하기 까지 [2부]
- [하스웰] 초보자들을 위한 개념 이해하기 부터 커스텀맥 설치하기 까지 [3부]
- 부트로더에 대한 개념정리
- 초보를 위한 kext 관련 팁
- 바이오스(BIOS, Basic Input/Output System)
- MBR & GPT 방식의 차이
- UEFI와 파티션(MBR, GPT) 그리고 파일 시스템
- Windows 설치 프로그램: MBR 또는 GPT 파티션 스타일을 사용하여 설치
- [Guide] Dell XPS 13 9343 Sierra
- 1개의 SSD [HDD]에 윈도우 8~10 과 OS X 듀얼구성하기
- Dell Xps 13 (9343) Hackintosh Guide
감사합니다 하이시에라도 적용가능할까요
모하브도 적용가능할지요
안녕하세요? USB만들고 로딩과정중 하단바가 80%쯤에서 멈추고 진행이 안되는데요.
무엇이 문제일까요?
감사합니다.
현재 바이오스 A18버전입니다 바이오스 버전문제때문일까요?
제가 A07로 다운그레이드 시키고 시도 해봤는데 저도 같은 현상이네요ㅠㅠ 혹시 해결안 찾으셨나요?