원문 캡처 · github.com
원문 캡처 · github.com

macos-amd-bhyve는 AMD 기반 FreeBSD 호스트의 bhyve에서 Intel용 macOS 게스트를 구성하는 레시피다. Apple 운영체제 파일이나 설치·복구 미디어는 포함하지 않으며, 개인 교육용으로만 사용하도록 안내한다.

저장소에는 bhyve 펌웨어, UEFI 변수 템플릿, OpenCore 1.0.6, 드라이버와 kext, 설정 파일, ACPI 소스, vm-bhyve 템플릿, 해시와 라이선스 고지가 포함돼 있다. macOS 파일, OSK 자료, 설치된 디스크, 자격 증명, 재사용 가능한 시스템 식별 정보는 포함하지 않는다.

FreeBSD 호스트에는 bash, Python 3, vm-bhyve를 설치해야 한다. 기본 시스템의 makefs, mkimg, fetch도 사용한다. 고정된 정적 macserial과 ocvalidate 도구를 실행하도록 Linux ABI를 활성화한다.

sh
sudo sysrc linux_enable=YES
sudo service linux start

다음 명령은 새 출력 디렉터리에 4코어 구성을 만든다.

sh
./scripts/assemble-opencore.sh --cores 4 ./out/ready

조립 스크립트는 고정된 upstream 리비전에서 AMD_Vanilla 패치 목록만 내려받아 SHA-256을 확인하고, 지정한 게스트 코어 수를 반영한다. 새 SMBIOS·UUID·MAC 값을 생성하고 OpenCore 1.0.6으로 config.plist를 검증한 뒤 EFI 트리와 GPT opencore.img를 만든다. 완전한 오프라인 방식은 아니다. 검증된 파일을 캐시에 미리 넣지 않았다면 인터넷 연결이 필요하다.

출력물에는 펌웨어와 UEFI 변수 템플릿, OpenCore 파일·드라이버·kext·ACPI·설정, 패치 목록, opencore.img, 예시 설정, 권한 모드 0600으로 저장되는 identity.env, 라이선스 고지와 체크섬, 압축 아카이브가 포함된다. 기존 iMacPro1,1 식별 정보를 지정할 수도 있다.

sh
./scripts/assemble-opencore.sh --cores 4 \
 --system-serial YOUR_SERIAL --mlb YOUR_17_CHARACTER_MLB \
 --system-uuid YOUR_UUID --rom YOUR_12_HEX_DIGIT_ROM \
 ./out/ready

다른 컴퓨터의 식별 정보를 재사용하지 말아야 한다. Apple 서비스에 로그인하기 전에 자동 생성된 일련번호가 이미 할당된 번호인지 확인하라고 저장소는 안내한다.

vm-bhyve에 설치할 때는 가상 머신 데이터스토어 경로를 확인한 뒤 펌웨어, 변수 파일, opencore.img, 설정을 복사한다. 변수 파일은 실행 중인 가상 머신마다 별도로 둬야 하며, 저장소의 템플릿을 실행 중인 가상 머신에 직접 연결하거나 여러 가상 머신이 같은 변수 저장소를 공유해서는 안 된다. 설치한 설정에서 REPLACE_WITH_PRIVATE_VM_SWITCH를 바꾸고 macos-system.raw를 만들거나 연결한 다음, 해당 Apple 라이선스에 따라 확보한 macOS 설치 또는 복구 미디어를 연결해야 한다. 설정은 서명되지 않은 virtio 게스트 드라이버에 네트워크 연결을 의존하지 않도록 e1000 네트워크 카드를 사용하며, VNC는 로컬 루프백에서만 수신한다.

전체 실행 절차는 docs/launch.md에 있다. 검증된 펌웨어 바이너리 대신 고정된 EDK2 체크아웃에서 펌웨어를 다시 빌드하는 명령은 다음과 같다.

sh
./scripts/build-ready-bundle.sh "$EDK2_CHECKOUT" ./out/rebuilt 4

저장소 설명에 따르면 EDK2, OpenCore, Lilu, VirtualSMC, WhateverGreen, CryptexFixup은 LICENSES/의 라이선스에 따라 재배포할 수 있다. MCEReporterDisabler는 plist만으로 구성된 GPLv2 저작물이며, 전체 소스와 GPLv2 문서가 포함된다. 반면 고정된 리비전의 AMD_Vanilla에는 명시적인 라이선스나 재배포 허가가 없어 패치 데이터는 저장소에 넣지 않았다. 스크립트는 저작권자 저장소에서 패치를 내려받아 로컬에서 사용한다. 권리자의 허가 없이 생성된 아카이브를 공개하지 말라고 안내한다. 자세한 내용은 docs/distribution-boundary.md와 provenance/inputs.json에 있다.

소스 트리를 공개하기 전에 다음 검사를 실행하도록 안내한다.

sh
./scripts/check-public-tree.sh

저장소는 개인 교육용 사용을 목적으로 하며, 적법하게 확보한 macOS를 적용되는 Apple 소프트웨어 라이선스에 따라 사용해야 한다고 명시한다. macOS를 구매하거나 내려받았다는 사실만으로 비애플 하드웨어에서 실행하거나 Apple 소프트웨어를 재배포할 권리가 생기는 것은 아니라고 덧붙인다.