QEMU 运行 ARM Ubuntu 不支持的机器类型
QEMU Run ARM Ubuntu Unsupported Machine Type
我正尝试在 ARM 机器上 运行 基本虚拟 Ubuntu。
我的 QEMU 命令看起来像这样:
$: qemu-system-aarch64 -machine virt-2.6 -machine type=virtual -kernel /home/projects/projects/transfer/jfrye/QemuTestImages/ubuntu-16.04.3-server-arm64.iso
但是,我收到一个错误:
qemu-system-aarch64: -machine virt-2.6: unsupported machine type
现在,我列出了 aarch64 支持的机器类型并在此处查找:
https://wiki.qemu.org/Documentation/Platforms/ARM
[jfrye@cserh4 ~]$ qemu-system-aarch64 -M help
Supported machines are:
akita Sharp SL-C1000 (Akita) PDA (PXA270)
arm-generic-fdt ARM device tree driven machine model
arm-generic-fdt-plnx ARM device tree driven machine model for PetaLinux Zynq
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
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)
midway Calxeda Midway (ECX-2000)
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
none empty machine
nuri Samsung NURI board (Exynos4210)
palmetto-bmc OpenPOWER Palmetto BMC
raspi2 Raspberry Pi 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
smdkc210 Samsung SMDKC210 board (Exynos4210)
spitz Sharp SL-C3000 (Spitz) PDA (PXA270)
sx1 Siemens SX1 (OMAP310) V2
sx1-v1 Siemens SX1 (OMAP310) V1
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 QEMU 2.6 ARM Virtual Machine (alias of virt-2.6)
virt-2.6 QEMU 2.6 ARM Virtual Machine
xilinx-zynq-a9 Xilinx Zynq Platform Baseboard for Cortex-A9
xlnx-ep108 Xilinx ZynqMP EP108 board
z2 Zipit Z2 (PXA27x)
为什么 virt-2.6 失败了?我已成功使用 arm-generic-fdt 并提供了一个设备树来测试我的 Zynq。
您的问题是您的命令行两次指定了机器类型:
“-machine virt-2.6”表示 "set the machine type to 'virt-2.6'",但“-machine type=virtual”表示 "set the machine type to 'virtual'".
QEMU 正在抱怨,因为它使用了您在命令行中提供的 last 机器类型,在本例中为 "virtual",而该机器类型不存在。
不幸的是,我们的错误消息打印中存在一个错误,这意味着如果您多次传递参数,错误消息将显示 first 机器类型,这是非常具有误导性的。
我们应该做的是禁止多次设置机器类型,但是QEMU的参数解析代码非常巴洛克,很可能很难修复...
修复命令行的那部分后,您会发现下一个问题是您试图将 .iso 文件传递给 -kernel。那行不通(它在 x86 QEMU 上也不起作用——内核需要内核文件)。您可以 (a) 使用 -kernel/-initrd 传递内核和 initrd,它们被引导,然后可以读取磁盘映像;或 (b) 使用 -bios 传递能够从磁盘映像中读取内核的 UEFI 映像。
我的总体建议是您应该找到并遵循一个好的教程,因为您不太可能通过反复试验得到一些东西 -- 用于工作 QEMU 'virt' 设置的命令行与网络和硬盘可能会变得非常复杂。
我正尝试在 ARM 机器上 运行 基本虚拟 Ubuntu。
我的 QEMU 命令看起来像这样:
$: qemu-system-aarch64 -machine virt-2.6 -machine type=virtual -kernel /home/projects/projects/transfer/jfrye/QemuTestImages/ubuntu-16.04.3-server-arm64.iso
但是,我收到一个错误:
qemu-system-aarch64: -machine virt-2.6: unsupported machine type
现在,我列出了 aarch64 支持的机器类型并在此处查找:
https://wiki.qemu.org/Documentation/Platforms/ARM
[jfrye@cserh4 ~]$ qemu-system-aarch64 -M help
Supported machines are:
akita Sharp SL-C1000 (Akita) PDA (PXA270)
arm-generic-fdt ARM device tree driven machine model
arm-generic-fdt-plnx ARM device tree driven machine model for PetaLinux Zynq
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
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)
midway Calxeda Midway (ECX-2000)
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
none empty machine
nuri Samsung NURI board (Exynos4210)
palmetto-bmc OpenPOWER Palmetto BMC
raspi2 Raspberry Pi 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
smdkc210 Samsung SMDKC210 board (Exynos4210)
spitz Sharp SL-C3000 (Spitz) PDA (PXA270)
sx1 Siemens SX1 (OMAP310) V2
sx1-v1 Siemens SX1 (OMAP310) V1
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 QEMU 2.6 ARM Virtual Machine (alias of virt-2.6)
virt-2.6 QEMU 2.6 ARM Virtual Machine
xilinx-zynq-a9 Xilinx Zynq Platform Baseboard for Cortex-A9
xlnx-ep108 Xilinx ZynqMP EP108 board
z2 Zipit Z2 (PXA27x)
为什么 virt-2.6 失败了?我已成功使用 arm-generic-fdt 并提供了一个设备树来测试我的 Zynq。
您的问题是您的命令行两次指定了机器类型: “-machine virt-2.6”表示 "set the machine type to 'virt-2.6'",但“-machine type=virtual”表示 "set the machine type to 'virtual'".
QEMU 正在抱怨,因为它使用了您在命令行中提供的 last 机器类型,在本例中为 "virtual",而该机器类型不存在。
不幸的是,我们的错误消息打印中存在一个错误,这意味着如果您多次传递参数,错误消息将显示 first 机器类型,这是非常具有误导性的。
我们应该做的是禁止多次设置机器类型,但是QEMU的参数解析代码非常巴洛克,很可能很难修复...
修复命令行的那部分后,您会发现下一个问题是您试图将 .iso 文件传递给 -kernel。那行不通(它在 x86 QEMU 上也不起作用——内核需要内核文件)。您可以 (a) 使用 -kernel/-initrd 传递内核和 initrd,它们被引导,然后可以读取磁盘映像;或 (b) 使用 -bios 传递能够从磁盘映像中读取内核的 UEFI 映像。
我的总体建议是您应该找到并遵循一个好的教程,因为您不太可能通过反复试验得到一些东西 -- 用于工作 QEMU 'virt' 设置的命令行与网络和硬盘可能会变得非常复杂。