Ports/aarch64/QEMU: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 58: | Строка 58: | ||
и т.д. | и т.д. | ||
{{Category navigation|title=Ports/AArch64|category=Ports|category=AArch64|sortkey=*}} | |||
{{Category navigation|title=Ports|category=Ports|sortkey=*}} |
Версия от 10:02, 8 сентября 2023
На этой странице описано, как запустить виртуальную машину aarch64 под QEMU.
Шаг 0. Для запуска порта ALT на aarch64 необходимо установить QEMU с поддержкой aarch64. Например, в случае хостовой системы на ALT x86_64: qemu-system-aarch64-core. Также могут потребоваться пакеты: qemu-ui-sdl, qemu-device-display-virtio-vga, qemu-device-display-virtio-vga-gl, qemu-device-display-virtio-gpu, qemu-device-display-virtio-gpu-gl. Для поддержки kvm при запуске на aarch64 нужно установить также qemu-kvm.
На данный момент можно запускать qemu с U-Boot или edk2 в качестве BIOS.
Сборки должны содержать /boot/extlinux/extlinux.conf или раздел ESP c grub-efi. При запуске загрузчик U-Boot ищет один из нескольких доступных механизмов загрузки ОС. Загрузка из файла extlinux.conf, содержащегося в папке /boot/extlinux раздела ext4 является одним из таких механизмов.
U-Boot
Шаг 1. Необходимо получить u-boot-qemu для архитектуры aarch64. Распаковать из полученного rpm файл u-boot.bin. Для распаковки подойдёт архиватор Engrampa графической среды Mate.
Шаг 2. После этого, скачав один из образов rootfs (см. выше) можно запускать QEMU, заменив <IMAGE> на путь к образу rootfs:
Для запуска qemu-образа aarch64 укажите вместо <aarch64/u-boot.bin> путь к u-boot для aarch64:
$ qemu-system-aarch64 \
-machine virt -cpu cortex-a57 -m 2048 -smp 4 \
-bios <aarch64/u-boot.bin> \
-drive if=none,id=sda,format=raw,file=<IMAGE> \
-device virtio-blk-device,drive=sda \
-device virtio-keyboard -device virtio-tablet \
-net nic -net user,hostfwd=tcp::2270-:22 \
-device virtio-gpu-gl,xres=1366,yres=768 -nographic -display sdl,gl=on
Весь текстовый вывод будет отображаться в терминале. Графика на экране sdl. Для запуска в kvm (аппаратная виртуализация) на aarch64, замените 'qemu-system-aarch64 -machine virt -cpu cortex-a57' на kvm.
EFI
Шаг 1. Необходимо получить edk2-aarch64 для архитектуры aarch64
Шаг 2. Для запуска ISO-образа aarch64 укажите вместо <aarch64/QEMU_EFI-pflash.raw> путь к образу edk2 для aarch64, а вместо <ISO> в команде на путь к ISO-образу:
$ qemu-system-aarch64 \
-machine virt -cpu cortex-a57 -m 2048 -smp 4 \
-bios <aarch64/QEMU_EFI-pflash.raw> \
-drive if=none,id=sda,format=raw,file=<IMAGE> \
-device virtio-blk-device,drive=sda \
-device virtio-scsi -device scsi-hd,drive=sdb \
-drive if=none,id=sdb,media=cdrom,file=<ISO> \
-device usb-ehci -device usb-kbd -device usb-mouse \
-device virtio-net-device,netdev=net0 -netdev user,id=net0 \
-device virtio-gpu-gl -display sdl,gl=on
Могут наблюдаться тормоза с отображением grub, поэтому рекомендуется, как и в случае U-Boot перенаправлять вывод в терминал опцией '-nographic'. Для запуска в kvm (аппаратная виртуализация) на aarch64, замените 'qemu-system-aarch64 -machine virt -cpu cortex-a57' на kvm.
Доступ к виртуальной машине по vnc
Для запуска по протоколу vnc замените '-device virtio-vga-gl -display sdl,gl=on' на '-device virtio-vga -vnc :0'. И подключайтесь командой:
remote-viewer vnc://localhost:5900
Порт 5900 соответствует опции -vnc :0 Порт 5901 - опции -vnc :1 и т.д.