Mac M1/apple 칩에서 alpine linux를 실행 하려고 하는데 qemu-system-aarch64
, 제공된 ISO에서 부팅하는 대신 항상 QEMU 모니터[1]를 사용합니다.
다음은 문제 없이 작동합니다. ISO에서 부팅하면 예상대로 로그인하여 사용 가능한 셸을 얻을 수 있습니다(참고 x86_64
).
qemu-system-x86_64 -boot d -cdrom ~/Downloads/alpine-standard-3.15.0-x86_64.iso -m 2048
aarch64 버전과 매우 유사한 것을 시도하면 앞서 언급한 QEMU 모니터가 나타납니다(분명히 기본 머신이 없으므로 를 사용합니다 virt
).
qemu-system-aarch64 -boot d -cdrom ~/Downloads/alpine-standard-3.15.0-aarch64.iso -m 2048 -machine virt
궁극적으로 내 목표는 에뮬레이트하는 것이 아니라 hvf
QEMU 6.2.0에서 사용할 수 있는 새로운 기능을 사용하는 것이므로 다음과 같이 실행할 것이라고 가정했지만 이번에도 QEMU 모니터 창만 표시됩니다.
qemu-system-aarch64 -boot d -cdrom ~/Downloads/alpine-standard-3.15.0-aarch64.iso -m 2048 -cpu host -machine virt,highmem=off -accel hvf
내가 뭘 잘못하고 있는지에 대한 제안이 있습니까?
[1] 모니터는 일종의 대화형 셸이 있는 별도의 창이며 다음을 표시합니다(도움말을 시도했지만 관련 항목을 찾을 수 없음).
compat_monitor0 console
QEMU 6.2.0 monitor - type `help` for more information
(qemu)
답변1
Linux에서도 동일한 문제가 있었지만 여기 지침에 따라 작동하게 만들 수 있었습니다.
수석/의사:
pflash
먼저 디스크 이미지와 virtio
가변 저장소 파일을 생성하고 지정해야 합니다 .
qemu-img create -f qcow2 varstore.img 64M
qemu-img create -f qcow2 alpine.img +20G
적절한 QEMU EFI 파일로 부팅합니다.
wget http://snapshots.linaro.org/components/kernel/leg-virt-tianocore-edk2-upstream/latest/QEMU-AARCH64/RELEASE_GCC5/QEMU_EFI.img.gz
gunzip QEMU_EFI.img.gz
달리기:
sudo /home/user/qemu-6.2.0/build/qemu-system-aarch64 \
-cpu cortex-a57 -M virt -m 2048 -nographic \
-drive if=pflash,format=raw,file=QEMU_EFI.img \
-drive if=pflash,file=varstore.img \
-drive if=virtio,file=alpine.img \
-drive if=virtio,format=raw,file=alpine-virt-3.15.0-aarch64.iso \
-net nic \
-net user \
-no-reboot
답변2
@손님그 대답은 나에게 효과적이었습니다. 내 대답은 추가하는 것입니다. (원래 댓글을 달고 싶었는데 알고보니 생각보다 단어수가 좀 많았네요)
qemu-7.2.0
나는 에서 Homebrew
또는 qemu-7.1.0
에서 동일한 문제를 겪었습니다 Macports
. 내가 소유한 것은 "Apple M1" 칩과 macOS Monterey 12.3을 탑재한 Macbook Pro 16인치입니다.
내가 배운 것은 qemu-system-aarch64
부팅하려면 UEFI가 필요한 것 같고 레거시 BIOS는 작동하지 않는다는 것입니다. (Google"qemu aarch64 uefi”, 첫 번째 Google 페이지의 기사/블로그/문서에 있는 모든 예제는 qemu-system-aarch64
UEFI 이미지를 사용하여 호출된다는 것을 나타냅니다.
최종 명령줄은 다음과 같습니다.
qemu-system-aarch64 -m 512 -smp 1 \ -boot d -cdrom alpine-virt-3.17.0-aarch64.iso \ -n그래픽\ -M virt,accel=hvf,highmem=off \ -drive if=pflash,format=raw,file=edk2-aarch64-code.fd -cpu 호스트
edk2-aarch64-code.fd
패키지와 함께 제공되며 for 또는 for 폴더 에 qemu
있는 UEFI 이미지입니다 ./opt/local/share/qemu/
Macports
/opt/homebrew/share/qemu/
Homebrew
나는 -cpu <...>
그것을 사용해야한다는 것을 알았습니다. 다음 CPU를 사용해 보았는데 모든 것이 잘 작동합니다. 그것 없이는 일할 수 없습니다.
host
max
cortex-a57
varstore.img
또한 EFI 가변 저장소 로 작은 이미지를 사용할 필요가 없을 수도 있다는 것을 발견했습니다.@손님답변). 완전한 테스트를 수행하지 않았기 때문에 이에 대해 100% 확신할 수는 없습니다.
( -nographic
그냥 내 취향)