Ports/aarch64/QEMU

Материал из ALT Linux Wiki

Ports/aarch64/QEMU

На этой странице описано, как запустить виртуальную машину 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> \
	-device virtio-scsi \
    -device scsi-hd,drive=sdа \
	-drive if=none,id=sdа,format=raw,file=<IMAGE> \
    -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 gtk,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 и т.д.