Dell XPS 13 (9360, Kaby Lake-R) 에 해킨토시를 설치 (했던 기록)

왜죠..?

평소와 같이 장난아니게 한가하던 토요일 밤, 마유와 이야기 하다가 이런 이야기가 나오게 되었고…

stringByAddingPercentEncodingWithAllowedCharacters:
– Apple, 2018

이런 직관성을 보니, 평소 기-인 이름을 애용하는 사람으로서 ‘하지’ 않을 수 없었습니다..<

어떻게..?

10년 전, 호랑이가 아직 산으로 올라가지 못했던 시절 (OS X Tiger) 에는 흔히 미리 수정된 이미지를 가지고 설치를 했지만, 이젠 아주 간단한 부트로더 만으로 기본적인 설치는 가능합니다. 세상이 참 좋아졌죠<

Clover EFI Bootloader
FakeSMC

물론 이것만 깔면 대부분의 경우엔 그래픽 가속도 되지 않으면서 버벅거리고 소리도 안 나고 인터넷도 안 되는 맥 os의 메인 화면을 만날 수 있기 때문에, 추가적으로 여기에 흑마법을 부리기 시작하게 되죠<

우선 고칠 수 없는 것과 고칠 수는 있는 것 골라내기

우선 XPS13에 달려있는 무선 랜카드1)퀄컴 혹은 인텔는 도저히 고칠 수 없어요, 맥에서 네이티브로 쓰는 무선랜 칩셋은 브로드컴이기 때문에 브로드컴 카드를 써야 해요2)본격적인 무선랜 부자가 되어갑니다…….
하이버네이션 기능은 일반적인 PC랑 이 애들이 좀 다른 구조로 전원 관리를 하기 때문에 고치기가 많이 힘들어요, 어차피 켜고 끄는데 15초면 될테니 그냥 재우기3)다행히 호환이 잘 되는만 쓰도록 해요.
아이메세지 라거나 페이스타임 등은 유효한 기기 시리얼 번호를 필요로 하기도 하고, 미노리는 어차피 애플 기기를 안 쓰기 때문에 안 고치기로 해요.
3-4점 터치 멀티터치 트랙패드도 고치고 싶지만, 고칠 수 없기 때문에..< 그냥 기본적인 트랙패드 기능만 동작하도록 할래요.
SD 카드 리더기도 드라이버가 없으니 고칠 수 없어요, 켜두면 전원만 먹을테니 바이오스에서 꺼버리기로 해요.
지문 인식 센서는 당연히 맥북거랑 제조사가 달라요, 저긴 자체 센서를 쓸테니 포기해요<

그래픽 가속은 어차피 CPU 내장 그래픽카드니까 이건 생각보단 쉽게 고칠 수 있을거에요<
사운드카드도 Intel HDA 호환이니 정 안되면 VoodooHDA를 사용하면 붙을거에요.
키보드 레이아웃은 아주 쉽게 고칠 수 있어요.
웹캠은 어차피 USB 인터페이스로 연결될거라 아마 OOB로 동작할거에요.
배터리 관리도 어차피 표준적인 ACPI 인터페이스를 사용하니 간단하게 고칠 수 있을거에요.
USB 버스는 예전 6시리즈 보드에선 서드파티 3.0을 써서 좀 귀찮았지만, 이젠 인텔의 루트버스를 사용하기 때문에 아마도 OOB로 동작할거에요.
썬더볼트도 인텔 컨트롤러를 쓰고 있기 때문에 아마 OOB로 동작할거에요.
NVMe는 최근 맥에서도 네이티브 지원이 생겼을거에요, 4k 섹터를 지원하는 물건이라면 적어도 동작은 무리없이 잘 할거에요.

기초공사 시작

우선 좀 편하게 그럭저럭 바닐라인 시스템을 인스톨 하기 위해서 Unibeast를 사용하기로 해요, 부팅 디스크를 적절하게 만들고 평범하게 macOS를 설치<

그리고 Unibeast USB에 따라오는 Clover를 이용해서 우선은 설치된 macOS로 부팅을 하면, 앞에서 언급한 것 처럼 많이 불편한 데스크탑이 뜨죠..<
원래대로라면 Multibeast를 써서 설정하는 사람이 많겠지만, 미노리는 미니멀한 것을 좋아하기 때문에 직접 수동으로 설정하도록 합니다<

계속 Unibeast를 사용해서 부팅할 순 없으니, Clover를 내려받아서 설치하도록 해요, 기본 설정은 맥의 루트 파티션에다가 설치하게 되어있지만, 보통 해킨토시를 쓰는 사람의 바이오스는 HFS 등에서 EFI 바이너리를 불러올 수 없으므로 EFS에 설치하도록 합시다<

그리고 희망을 가지고 -v 옵션을 주고 재부팅을 하면… 그래픽카드때문에 패닉이 나면서 부팅이 안되죠, 다시 Unibeast로 부팅<

흑마법 시작

흑마법은 보통 커널 모듈 (kext)를 사용해서 부리게 돼요, 기본적으론 동작하지 않는 하드웨어의 드라이버를 붙여서 돌아가게 하는거랑 비슷하죠<

흑마법을 부려야 할 항목 해당하는 kext들 (아마)
그래픽 CoreDisplayFixup, IntelGraphicsFixup, Lilu, FakePCIID_Intel_HD_Graphics
사운드 AppleHDA_ALC256 (패치), CodecCommander
배터리 ACPIBatteryManager
무선랜 (Broadcom) BrcmFirmwareRepo, BrcmPatchRAM2, FakePCIID_Broadcom_WiFi
화면 백라이트 AppleBacklightInjector
터치패드 VoodooPS2Controller

의존성 면에서 빠진게 좀 있을 수 있지만, 대충 이런 느낌으로…

그리고 맥은 그래픽카드를 아주 활발하게 사용하기 때문에, 그리고 그래픽 프레임버퍼의 크기가 어느정도 이상 되는걸 항상 생각하고 만들었기 때문에 DVMT minimum size를 64M 정도로 수정해야 해요< 안그러면 역시 패닉이 납니다< 바이오스에 저 설정이 있으면 다행인데, 없으면 바이오스를 뜯어보면서 efivar의 offset을 찾아서 수동으로 설정해야 해요, 바이오스에서 안 막았다면..<

이런 흑마법을 다 하고 나서 부팅을 한다면… 아마도 부팅이 잘 될거에요<

신나게 다 깔고 나서 알아차린 문제 – 프리징

설정하고 수시로 재부팅 할 땐 모르던 문젠데, 다 설정하고 나서 왠지 모르게 5-10분, 혹은 30분정도로 랜덤으로 프리징이 발생하던 문제가 있었어요.
관련해서 C-state라거나 그래픽카드 id 스푸핑이라거나 다 해봤지만 도저히 고칠 수 없었기 때문에, IO 장치쪽을 의심하고 한번 APFS가 아닌 HFS로4)설치 과정에서 변환되지 않도록 수동으로 설정하고 macOS를 다시 설치했는데…
잘…되네요…

결국 삭제하게 된 이유

Filevault를 활성화 할 수 없어서 결국 삭제했어요, 데이터 암호화는 무지 소중하기 때문에..< Clovar EFI가 분명 (일부 필요한 드라이버들을 넣으면) filevault를 지원해야 하지만, 왠지 모르게 그냥 검은 화면에 커서만 깜박거리면서 멈춰버리더라구요… 한 이틀 정도 OS를 계속 밀면서 시도를 해봤지만, 더 이상 시도할 필요가 없다는 생각이 들었고, 그냥 다시 리눅스로 돌아왔어요<

Sn   [ + ]

댓글 남기기