Haiku OS가 이제 M1 Mac에서 실행됨

1 week ago 10
  • Haiku arm64 포트가 최신 야간 빌드에서 데스크톱까지 부팅되며, hrev59669 이미지는 QEMU에서 동작함
  • QEMU 실행에는 Tianocore EFI와 CPU 선택의 호환성이 중요하며, Debian에서는 --cpu cortex-a76 지정으로 해결됨
  • 작은 수정으로 UTM 부팅도 가능해졌지만, 마우스 움직임이 느리고 끊겨 실제 사용성은 아직 낮음
  • arm64 야간 이미지는 unbootstrapped 상태라 git, gcc, 개발 패키지가 없고, OpenSSL 부재로 패키지 설치도 막힐 수 있음
  • 호스트와 게스트 간 파일 전달은 FAT32 디스크 이미지로 우회 가능하며, x86_64나 Linux에서 .hpkg 크로스 빌드 가능성이 거론됨

Haiku arm64 부팅 현황

  • Haiku arm64 포트가 최신 야간 빌드에서 데스크톱까지 부팅되는 상태에 도달함
  • download.haiku-os.org의 최신 빌드 hrev59669가 QEMU에서 동작함
  • 작은 수정으로 Haiku를 UTM에서도 부팅할 수 있지만, 마우스 움직임이 느리고 끊겨 사용성은 아직 낮음

QEMU 실행 구성

  • QEMU에서 arm64 이미지를 실행할 때 동작한 명령은 다음과 같음
qemu-system-arm64 -m 512M -bios /path/to/the/arm64/QEMU_EFI.fd -device ramfb -M virt --cpu cortex-a76 -device usb-ehci -device usb-kbd -device usb-tablet -device usb-storage,drive=dska -drive id=dska,file=haiku-arm64-mmc.image,if=none
  • Debian의 QEMU가 기본으로 선택하는 CPU는 함께 제공되는 EFI 구현과 호환되지 않는 것으로 보였고, --cpu cortex-a76 지정으로 해결됨
  • 키보드와 태블릿 입력은 USB 장치를 사용하며, usb-tablet은 마우스 캡처 없이 입력을 다룰 수 있게 해줌
  • ramfb는 arm64에서 비교적 안전한 프레임버퍼 선택지로 쓰임
  • Debian에서 Tianocore 바이너리 경로는 필요한 패키지를 설치했을 때 /usr/share/qemu-efi-aarch64/QEMU_EFI.fd임
  • 다른 시스템에서는 EFI 이미지를 온라인에서 찾거나 Debian 패키지에서 추출할 수 있음

개발 환경과 패키지 상태

  • 현재 arm64 야간 이미지는 “bootstrap image”가 아니라 unbootstrapped 이미지이며, 초기 패키지 세트를 빌드한 방식이 다름
  • 현재 야간 이미지에는 git, gcc, 개발 패키지가 포함되어 있지 않음
  • haikuports의 릴리스 아카이브를 내려받아 설정하면 패키지 빌드에 필요한 기본 패키지 세트를 얻을 수 있을 것으로 보임
  • pkgman으로 일부 패키지를 설치할 수도 있지만, 현재 haikuports builder가 없어 패키지 세트는 매우 제한적일 수 있음
  • pkgman이 어떤 패키지도 설치하지 못하고 “operation not supported” 오류를 낸 보고가 있음
  • 이미지가 OpenSSL 지원 없이 빌드된 것이 원인일 수 있으며, 이 경우 유용한 작업을 하기가 어려움
  • depot에 패키지가 있다면 링크를 가져와 wget으로 내려받는 우회가 가능하며, riscv64 이미지에서 haikuporter와 haikuports를 설정할 때도 비슷한 우회가 필요했음

호스트와 게스트 간 파일 전달

  • depot 서버에서 arm64용 사전 빌드 개발 패키지를 찾지 못한 상태임
  • QEMU 호스트에서 ARM64 Haiku 게스트로 파일을 가져오기 위해 FAT32 디스크 이미지를 사용할 수 있음
  • MacOS Disk Utility로 FAT32 디스크 이미지를 만들고, Mac에서 마운트해 파일을 넣은 뒤 QEMU 게스트에 연결하는 방식임
  • 공유 디스크를 붙이는 QEMU 실행 예시는 다음과 같음
qemu-system-aarch64 \ -M virt \ -cpu max \ -m 2G \ -smp 4 \ -bios /opt/homebrew/share/qemu/edk2-aarch64-code.fd \ -device qemu-xhci,id=usb \ -drive file=haiku-master-hrev59671-arm64-mmc.image,if=none,id=drv0,format=raw \ -device usb-storage,bus=usb.0,drive=drv0 \ -device usb-kbd,bus=usb.0 \ -device usb-tablet,bus=usb.0 \ -device ramfb \ -display cocoa,zoom-to-fit=on \ -device qemu-xhci,id=usb2 \ -drive file=../shared.img,format=raw,if=none,id=usb-shared \ -device usb-storage,bus=usb2.0,drive=usb-shared \ -serial stdio
  • x86_64 Haiku 또는 Linux에서 ARM64 Haiku용 .hpkg를 크로스 빌드할 수 있어야 한다는 가능성이 제기됨
Read Entire Article