ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » Арм64 (Байкал-М, Arm v8) » Эмуляция arm64 в qemu в качестве виртуальной машины


Эмуляция arm64 в qemu в качестве виртуальной машины

Сообщений 1 страница 4 из 4

1

[html]<a href="https://futurewei-cloud.github.io/ARM-Datacenter/qemu/how-to-launch-aarch64-vm/">https://futurewei-cloud.github.io/ARM-Datacenter/qemu/how-to-launch-aarch64-vm/</a>[/html]
1) в генте, наверное, другие пакеты.
в etc/portage/make.conf прописываем:
QEMU_USER_TARGETS="x86_64 aarch64"
QEMU_SOFTMMU_TARGETS="x86_64 aarch64"

2) надо не образ делать, а директорию прокидывать, так удобнее (это в новых qemu такая фича и её надо использовать)

у qemu есть USE-флаги:
https://packages.gentoo.org/packages/app-emulation/qemu

какие из них для чего нужны?
Про это должна быть статья на gentoo wiki.
https://wiki.gentoo.org/wiki/QEMU

vhost-user-fs
    Enable shared file system access using the FUSE protocol carried over virtio.

echo "app-emulation/qemu vhost-user-fs" >>etc/portage/package.use/qemu

[ebuild   R    ] app-emulation/qemu-5.2.0-r1::gentoo  USE="aio alsa bzip2 caps curl fdt filecaps gtk jpeg ncurses nls oss pin-upstream-blobs png seccomp slirp ssh udev usb usbredir vhost-net vhost-user-fs vnc xattr -accessibility (-capstone) -debug -doc -glusterfs -gnutls -infiniband -io-uring -iscsi -jack -jemalloc -lzo -multipath -nfs -numa -opengl -plugins -pulseaudio -python -rbd -sasl -sdl -sdl-image (-selinux) -smartcard -snappy -spice -static -static-user -systemtap -test -vde -virgl -virtfs -vte -xen -xfs -zstd" PYTHON_TARGETS="python3_8 -python3_7 -python3_9" QEMU_SOFTMMU_TARGETS="aarch64 x86_64 -alpha -arm -avr -cris -hppa -i386 -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -nios2 -or1k -ppc -ppc64 -riscv32 -riscv64 -rx -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="aarch64 x86_64 -aarch64_be -alpha -arm -armeb -cris -hppa -i386 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -nios2 -or1k -ppc -ppc64 -ppc64abi32 -ppc64le -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -tilegx -xtensa -xtensaeb" 0 KiB

3) В статье на Wiki не рассматривается вопрос о том, как указывать эмулируемые устройства для различных платформ,
в частности, что будет использоваться в качестве firmware.

# equery files qemu | grep aarch64
/usr/bin/qemu-aarch64
/usr/bin/qemu-system-aarch64
/usr/share/qemu/edk2-aarch64-code.fd
/usr/share/qemu/firmware/60-edk2-aarch64.json

Здесь особоподозрительно слово edk2, потому что ранее оно упоминалось в выводе UEFI на материнской плате TF307

Отредактировано Лис (2021-02-02 13:13:47)

0

2

Почему у БудДена arm, а не aarch64:
[html]
<a href="http://xn--b1aga5e.xn-----6kcajervcdvqarhfgengcekya4c.xn--p1ai/viewtopic.php?f=5&t=335&p=2063&hilit=qemu#p2063">http://xn--b1aga5e.xn-----6kcajervcdvqarhfgengcekya4c.xn--p1ai/viewtopic.php?f=5&t=335&p=2063&hilit=qemu#p2063</a>
[/html]
что с ним не так?
Платформы для Raspberry Pi:
ARMv6 (A/A+/B/B+/Zero),
ARMv7 (2B),
ARMv8 (3B/3B+/4B)
т.е. если брать похожее на Байкал-М, то это будет Raspberry Pi 4 (ну или 3, но кому она нужна?)

# qemu-system-aarch64 -M ?
Supported machines are:
akita                Sharp SL-C1000 (Akita) PDA (PXA270)
ast2500-evb          Aspeed AST2500 EVB (ARM1176)
ast2600-evb          Aspeed AST2600 EVB (Cortex A7)
borzoi               Sharp SL-C3100 (Borzoi) PDA (PXA270)
canon-a1100          Canon PowerShot A1100 IS
cheetah              Palm Tungsten|E aka. Cheetah PDA (OMAP310)
collie               Sharp SL-5500 (Collie) PDA (SA-1110)
connex               Gumstix Connex (PXA255)
cubieboard           cubietech cubieboard (Cortex-A8)
emcraft-sf2          SmartFusion2 SOM kit from Emcraft (M2S010)
highbank             Calxeda Highbank (ECX-1000)
imx25-pdk            ARM i.MX25 PDK board (ARM926)
integratorcp         ARM Integrator/CP (ARM926EJ-S)
kzm                  ARM KZM Emulation Baseboard (ARM1136)
lm3s6965evb          Stellaris LM3S6965EVB
lm3s811evb           Stellaris LM3S811EVB
mainstone            Mainstone II (PXA27x)
mcimx6ul-evk         Freescale i.MX6UL Evaluation Kit (Cortex A7)
mcimx7d-sabre        Freescale i.MX7 DUAL SABRE (Cortex A7)
microbit             BBC micro:bit
midway               Calxeda Midway (ECX-2000)
mps2-an385           ARM MPS2 with AN385 FPGA image for Cortex-M3
mps2-an386           ARM MPS2 with AN386 FPGA image for Cortex-M4
mps2-an500           ARM MPS2 with AN500 FPGA image for Cortex-M7
mps2-an505           ARM MPS2 with AN505 FPGA image for Cortex-M33
mps2-an511           ARM MPS2 with AN511 DesignStart FPGA image for Cortex-M3
mps2-an521           ARM MPS2 with AN521 FPGA image for dual Cortex-M33
musca-a              ARM Musca-A board (dual Cortex-M33)
musca-b1             ARM Musca-B1 board (dual Cortex-M33)
musicpal             Marvell 88w8618 / MusicPal (ARM926EJ-S)
n800                 Nokia N800 tablet aka. RX-34 (OMAP2420)
n810                 Nokia N810 tablet aka. RX-44 (OMAP2420)
netduino2            Netduino 2 Machine
netduinoplus2        Netduino Plus 2 Machine
none                 empty machine
npcm750-evb          Nuvoton NPCM750 Evaluation Board (Cortex A9)
nuri                 Samsung NURI board (Exynos4210)
orangepi-pc          Orange Pi PC
palmetto-bmc         OpenPOWER Palmetto BMC (ARM926EJ-S)
quanta-gsj           Quanta GSJ (Cortex A9)
raspi0               Raspberry Pi Zero (revision 1.2)
raspi1ap             Raspberry Pi A+ (revision 1.1)
raspi2               Raspberry Pi 2B (revision 1.1) (alias of raspi2b)
raspi2b              Raspberry Pi 2B (revision 1.1)
raspi3ap             Raspberry Pi 3A+ (revision 1.0)
raspi3               Raspberry Pi 3B (revision 1.2) (alias of raspi3b)
raspi3b              Raspberry Pi 3B (revision 1.2)
realview-eb          ARM RealView Emulation Baseboard (ARM926EJ-S)
realview-eb-mpcore   ARM RealView Emulation Baseboard (ARM11MPCore)
realview-pb-a8       ARM RealView Platform Baseboard for Cortex-A8
realview-pbx-a9      ARM RealView Platform Baseboard Explore for Cortex-A9
romulus-bmc          OpenPOWER Romulus BMC (ARM1176)
sabrelite            Freescale i.MX6 Quad SABRE Lite Board (Cortex A9)
sbsa-ref             QEMU 'SBSA Reference' ARM Virtual Machine
smdkc210             Samsung SMDKC210 board (Exynos4210)
sonorapass-bmc       OCP SonoraPass BMC (ARM1176)
spitz                Sharp SL-C3000 (Spitz) PDA (PXA270)
supermicrox11-bmc    Supermicro X11 BMC (ARM926EJ-S)
swift-bmc            OpenPOWER Swift BMC (ARM1176)
sx1                  Siemens SX1 (OMAP310) V2
sx1-v1               Siemens SX1 (OMAP310) V1
tacoma-bmc           OpenPOWER Tacoma BMC (Cortex A7)
terrier              Sharp SL-C3200 (Terrier) PDA (PXA270)
tosa                 Sharp SL-6000 (Tosa) PDA (PXA255)
verdex               Gumstix Verdex (PXA270)
versatileab          ARM Versatile/AB (ARM926EJ-S)
versatilepb          ARM Versatile/PB (ARM926EJ-S)
vexpress-a15         ARM Versatile Express for Cortex-A15
vexpress-a9          ARM Versatile Express for Cortex-A9
virt-2.10            QEMU 2.10 ARM Virtual Machine
virt-2.11            QEMU 2.11 ARM Virtual Machine
virt-2.12            QEMU 2.12 ARM Virtual Machine
virt-2.6             QEMU 2.6 ARM Virtual Machine
virt-2.7             QEMU 2.7 ARM Virtual Machine
virt-2.8             QEMU 2.8 ARM Virtual Machine
virt-2.9             QEMU 2.9 ARM Virtual Machine
virt-3.0             QEMU 3.0 ARM Virtual Machine
virt-3.1             QEMU 3.1 ARM Virtual Machine
virt-4.0             QEMU 4.0 ARM Virtual Machine
virt-4.1             QEMU 4.1 ARM Virtual Machine
virt-4.2             QEMU 4.2 ARM Virtual Machine
virt-5.0             QEMU 5.0 ARM Virtual Machine
virt-5.1             QEMU 5.1 ARM Virtual Machine
virt                 QEMU 5.2 ARM Virtual Machine (alias of virt-5.2)
virt-5.2             QEMU 5.2 ARM Virtual Machine
witherspoon-bmc      OpenPOWER Witherspoon BMC (ARM1176)
xilinx-zynq-a9       Xilinx Zynq Platform Baseboard for Cortex-A9
xlnx-versal-virt     Xilinx Versal Virtual development board
xlnx-zcu102          Xilinx ZynqMP ZCU102 board with 4xA53s and 2xR5Fs based on the value of smp
z2                   Zipit Z2 (PXA27x)

# qemu-system-aarch64 -cpu ?
Available CPUs:
  arm1026
  arm1136
  arm1136-r2
  arm1176
  arm11mpcore
  arm926
  arm946
  cortex-a15
  cortex-a53
  cortex-a57
  cortex-a7
  cortex-a72
  cortex-a8
  cortex-a9
  cortex-m0
  cortex-m3
  cortex-m33
  cortex-m4
  cortex-m7
  cortex-r5
  cortex-r5f
  max
  pxa250
  pxa255
  pxa260
  pxa261
  pxa262
  pxa270-a0
  pxa270-a1
  pxa270
  pxa270-b0
  pxa270-b1
  pxa270-c0
  pxa270-c5
  sa1100
  sa1110
  ti925t

«BE-M1000 – отечественная система на кристалле с 8 ядрами ARM Cortex-A57, 8-ядерным GPU Mali-T628»

Отредактировано Лис (2021-02-02 13:49:57)

0

3

Мне пока не ясно, как эмулируется графический процессор, что передавать в параметрах для QEMU ?

The Linux kernel driver is released as full source code;
there is no kernel-side binary blob. Source code for the kernel modules can be found here:
[html]<a href="https://developer.arm.com/products/software/mali-drivers">https://developer.arm.com/products/software/mali-drivers</a>[/html]

Отладка графики на Arm/Mali
https://www.linux.org.ru/gallery/screenshots/10123841

виртуальный GPU Virgil3D для QEMU/KVM
https://www.opennet.ru/opennews/art.shtml?num=53041

Пока я вижу такой вариант:
в ядре Linux должно быть два модуля - для реального железа и для работы в qemu через паравиртуализацию.
Тогда в qemu использовать последнюю (ну и на хосте должна быть свежая Mesa)

Отредактировано Лис (2021-02-02 14:04:41)

0

4

Ещё не очень понятно, как работает прошивка (firmware) в qemu
[html]<a href="https://fedoraproject.org/wiki/Architectures/AArch64/Install_with_QEMU">https://fedoraproject.org/wiki/Architectures/AArch64/Install_with_QEMU</a>[/html]

«UEFI for x86 QEMU/KVM VMs is called OVMF (Open Virtual Machine Firmware). It comes from EDK2 (EFI Development Kit), which is the UEFI reference implementation.»

-L path
    Set the directory for the BIOS , VGA BIOS and keymaps.
-bios file
    Set the filename for the BIOS.

https://docs.fedoraproject.org/en-US/qu … with-qemu/
https://wiki.ubuntu.com/UEFI/OVMF
For the simplest use-case, you can boot the machine like this (with bios.bin in the current directory):
qemu-system-x86_64 -L .
The -L . option tells qemu to look in the current directory for the bios.bin firmware image.
This will allow you to play with the firmware setup screens, and the EFI shell.

Отредактировано Лис (2021-02-02 15:32:20)

0


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » Арм64 (Байкал-М, Arm v8) » Эмуляция arm64 в qemu в качестве виртуальной машины