在 QEMU 上模拟 Solaris 10 SPARC

Emulating Solaris 10 SPARC on QEMU

我有一个旧的 Solaris SPARC 应用程序,我正在尝试获取 运行ning。

我从 this question 那里得知 x86 Solaris 无法胜任。我最近了解到 VM virtualbox 不能模拟 SPARC 架构。因此,我目前正在尝试使用 QEMU 模拟 Solaris 10 SPARC。

我从 here.

获得了 Solaris 10 SPARC iso (sol-10-u11-ga-sparc-dvd.iso)

我安装了 Qemu 3.1.50。

然而,当我尝试 运行 时,它给了我:

C:\Users\xxxx\Documents\CMARPS>"C:\Program Files\qemu\qemu-system-sparc64" -m 512 -cdrom "sol-10-u11-ga-sparc-dvd.iso" -boot d -nographic
OpenBIOS for Sparc64
Configuration device id QEMU version 1 machine id 0
kernel cmdline
CPUs: 1 x SUNW,UltraSPARC-IIi
UUID: 00000000-0000-0000-0000-000000000000
Welcome to OpenBIOS v1.1 built on Feb 15 2019 10:05
  Type 'help' for detailed information
Trying cdrom:f...
Not a bootable ELF image
Not a bootable a.out image

Loading FCode image...
Loaded 7420 bytes
entry point is 0x4000
Evaluating FCode...
Evaluating FCode...
Ignoring failed claim for va 1000000 memsz af6d6!
Ignoring failed claim for va 1402000 memsz 4dcc8!
Ignoring failed claim for va 1800000 memsz 510c8!
SunOS Release 5.10 Version Generic_147147-26 64-bit
Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved.
could not find debugger-vocabulary-hook>threads:interpret: exception -13 caught
interpret \ Copyright (c) 1995-1999 by Sun Microsystems, Inc.
\ All rights reserved.
\
\ ident "@(#)data64.fth 1.3     00/07/17 SMI"

hex

only forth also definitions
vocabulary kdbg-words
also kdbg-words definitions

defer p@
defer p!
['] x@ is p@
['] x! is p!

8 constant ptrsize

d# 32 constant nbitsminor
h# ffffffff constant maxmin
\
\ Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
\ Use is subject to license terms.
\

\ #pragma ident "@(#)kdbg.fth   1.20    08/06/06 SMI"

h# 7ff constant v9bias
h# panic - kernel: no nucleus hblk8 to allocate
EXIT

尝试启动给我:

0 > boot
boot Not a Linux kernel image
Not a bootable ELF image
Not a bootable a.out image

Loading FCode image...
Unhandled Exception 0x00000000ffeb6080
PC = 0x00000000ffd27954 NPC = 0x00000000ffd27958
Stopping execution

是不是有什么东西导致内核恐慌,或者我的 iso 实际上没有正确启动(?)

我认为 iso 可能实际上是一个 32 位 SPARC iso,所以我试了一下:

C:\Users\xxxx\Documents\CMARPS>"C:\Program Files\qemu\qemu-system-sparc" -m 256 -cdrom "sol-10-u11-ga-sparc-dvd.iso" -boot d -nographic
Configuration device id QEMU version 1 machine id 32
Probing SBus slot 0 offset 0
Probing SBus slot 1 offset 0
Probing SBus slot 2 offset 0
Probing SBus slot 3 offset 0
Probing SBus slot 4 offset 0
Probing SBus slot 5 offset 0
Invalid FCode start byte
CPUs: 1 x FMI,MB86904
UUID: 00000000-0000-0000-0000-000000000000
Welcome to OpenBIOS v1.1 built on Feb 15 2019 10:04
  Type 'help' for detailed information
Trying cdrom:d...
Not a bootable ELF image
Not a bootable a.out image
No valid state has been set by load or init-program

0 > boot
boot Trying cdrom:d...
Not a bootable ELF image
Not a bootable a.out image
No valid state has been set by load or init-program
 ok
0 >

我做错了什么?

您正在尝试 运行 只有 512 mb 的 RAM:

...qemu-system-sparc64" -m 512 ...

根据 Oracle Solaris 10 1/13 安装指南:规划安装和升级 页面 System Requirements and Recommendations

For UFS or ZFS root file systems, 1.5 GB is the minimum memory required for installation. However, note that some optional installation features are enabled only when sufficient memory is present. For example, if your system has insufficient memory and you install from a DVD, you install through the Oracle Solaris installation program's text installer, not through the GUI.

当前版本的 QEMU(我最后用 4.1 测试)还不能很好地支持 SPARC64 系统。虽然支持指令集,但对于 运行 OpenSolaris,还需要模拟其余硬件。系统仿真代码还没有完成,但我在 Git.

上看到了一些缓慢的进展