Sunday, December 13, 2009

Solaris/sparc under qemu how-to

This document attempts to answer basic questions on how to set up qemu-system-sparc so that it can boot Solaris. The current version of this how-to is available under http://tyom.blogspot.com/2009/12/solaris-under-qemu-how-to.html. The emulation of sparc system is still being improved, so this document will probably be updated.

Disclaimer

Reading, understanding and using the Howto is by no means a guarantee for successfully finishing the task, and any mechanical failure, accident, psychological trauma or other cataclysm that may result from using the Howto is entirely your own responsibility and liability.

List of supported Solaris versions

Currently the versions 1.1.2 (SunOS 4.1.4), 2.2 (SunOS 5.2), 2.3 (SunOS 5.3), 2.4 (SunOS 5.4), 2.5.1 (SunOS 5.5.1), 2.6 (SunOS 5.6), 7 (SunOS 5.7), 8 (SunOS 5.8) and 9 (SunOS 5.9) are supported.

Kernel debugger (kadb) can be loaded for the versions 1.1.2 (from a HDD image) and 2.2 - 9 (from a HDD image or an install CD/DVD).

Solaris 10 and OpenSolaris do not support 32 bit SPARC platforms, so they can never be booted under qemu-system-sparc. (Some day they maybe will be booted under qemu-system-sparc64 though).
The versions prior 1.1.1 and 2.0-2.1 do not support SPARCstation-5 or SPARCstation-20, so they can not be booted. The version 2.2 can be booted in the SPARCstation-20 emulation mode only (the exact steps are not yet described in this howto).

The version 1.1.1 is not yet tested. Reports or/and boot disks are welcome.

List of supported Firmware versions

OpenBIOS 1.0+ can boot some Solaris versions. Please, try it first, and if doesn't work for you, send reports to the OpenBIOS mailing list.

The proprietary OpenBoot PROM (OBP) can boot all the Solaris versions available for the sun4m architecture (see the previous chapter). The SPARCstation-5 OBP versions 2.15 and 2.29 are known to work. The SPARCstation-20 revisions 2.15, 2.22 and 2.25 work only for some guest CPU models. If you have tested other OBP versions please let me know.

Compiling qemu-system-sparc

The qemu version 0.13+ is capable of booting some Solaris versions. In order to run Solaris 2.6+, a QEMU 2.5.91+ (April the 12th, 2016) is required. Indeed, some bugfixes or features are only included in the "bleeding edge", a.k.a git master. Compiling master is straightforward:

git clone git://git.qemu.org/qemu.git
mkdir -p qemu/build
cd qemu/build
../configure --target-list=sparc-softmmu
make

Launching qemu with OpenBIOS to boot from a cdrom image

As of today (svn.r1246) OpenBIOS can boot the following Solaris versions:

SunOS Release 5.7 Version Generic_106541-02
SunOS Release 5.7 Version Generic_106541-08
SunOS Release 5.8 Version Generic_108528-09 32-bit
SunOS Release 5.8 Version Generic_108528-29 32-bit
SunOS Release 5.9 Version Generic_112233-10 32-bit
SunOS Release 5.9 Version Generic_118558-34 32-bit

Launch command:
sparc-softmmu/qemu-system-sparc -M SS-5  -nographic -prom-env 'auto-boot?=false' -cdrom Solaris8.iso


The option -prom-env 'auto-boot?=false' is optional. It allows specifying Solaris boot options, like -v and/or -s and/or -b. If no boot options are required, the command line option -boot d can be used instead.

The option -nographic is handy, because the emulated default graphic card (TCX) is not compatible with Solaris X-Window system. Nevertheless it can be omitted when booting in text console (e.g. single user mode, or installation without X-Window).

If the option -prom-env 'auto-boot?=false' is used, type
 boot cdrom:d -v
at the "0 >" prompt.

The versions known to boot with OBP, but not with OpenBIOS:

SunOS Release 4.1.4 (MUNIX)
SunOS Release 5.2 Version Generic
SunOS Release 5.3 Version Generic
SunOS Release 5.4 Version Generic
SunOS Release 5.5.1 Version Generic
SunOS Release 5.6 Version Generic

Launching qemu with OBP to boot from a cdrom image

Solaris 2.6 and above:

sparc-softmmu/qemu-system-sparc -M SS-5  -bios /path/to/ss5.bin -nographic -cdrom Solaris2.6.iso

Solaris 2.5.1 and earlier:

sparc-softmmu/qemu-system-sparc -M SS-5 -startdate "2009-12-13" -bios /path/to/ss5.bin -nographic -hdb Solaris2.5.1.iso

The option -startdate "2009-12-13" is necessary for the older QEMU versions, which have the y2010 bug. It's not necessary for QEMU 1.2+.

The option -nographic is handy, because the emulated default graphic card (TCX) is not compatible with Solaris X-Window system. Nevertheless it can be omitted when booting in text console (e.g. single user mode, or installation without X-Window).

Successfully initialized OBP should print lines like this:

SPARCstation 5, No Keyboard
...
Type help for more information
ok

booting Solaris in a single user mode from a CD-ROM
at the ok prompt:

Solaris 2.6+:

boot disk2:d -vs

Solaris 2.5.1-:

boot disk1:d -vs

booting Solaris kernel debugger from a CD-ROM
at the ok prompt:

Solaris 2.6+:

boot disk2:d kadb -kdv
Solaris 2.5.1-:

boot disk1:d kadb -kdv
If you are going to debug the kernel, I recommend you to read the PANIC! UNIX System Crash Dump Analysis Handbook. The kernel debugger is a really powerful tool and the book helped me a lot to learn how to use it and shed a lot of light on Solaris internals.

booting Solaris from a HDD image
To be able to boot from a hdd image, add the following line to the /etc/system on the hard drive:
set scsi_options=0x58

Normally during the Solaris installation process the hard drive is mounted under /a, so it can be done with
# cat >> /a/etc/system
set scsi_options=0x58
^d
right after the installation. Hence it's recommended to switch off the automatic reboot  option when the installer asks for it.

If the steps above are not performed, the HDD boot fails with the error message:
cannot mount root on /iommu@0, 10000000/sbus@0, 10001000/espdma@5, 8400000/esp@5, 8800000/sd@0,0

Comments & reports are welcome. Here and at the qemu-devel mailing list.

Last updated on 11.04.2016.

/Happy hacking

361 comments:

1 – 200 of 361   Newer›   Newest»
Brent said...

-m 256 was clearly the key. It now looks like a real Sun starting up, wow!

probe-scsi does work properly now. Attempting to boot my image gives "Can't find /packages", but that may not be a bug. My image was taken from a running sun4u system; even though it is a Solaris 2.6 32-bit install, in hindsight, I don't believe it has sparcv8 architecture files, so it can't work. I'll have to resort to the installation CD, too...

Brent said...

I tried Solaris 8 (it was handy) and Solaris 7 install CDs. The kernel loads in both cases (I used the slavio patch to reduce the "spurious interrupt at processor level 10" messages in Solaris 8 and to speed up both of them), but then I soon hit an MMU trap and panic. I assume that's what you were experiencing and why we still need an MMU hack.

I don't know if it's related, but there is a complaint on OpenBoot initialization (perhaps it is a clue?):

MMU TLB RAM NTA Pattern Test
ERROR : Address= 000000fc, exp= 07ffffdc, obs= 00000000, xor= 07ffffdc

I have left a non-slavio-patched attempt running on Solaris 7, just to confirm that it still fails on the MMU issue...

Brent said...

I was able to use your MMU clue (commented out the mmuregs[3] and mmuregs[4] lines in do_unassigned_access), and Solaris 2.6 does indeed boot, although 2.7 and 8 die on MMU issues.

I actually got through the Solaris 2.6 installation menus, but I got a surge of "Spurious interrupts" when trying to write to disk (although the disk label worked). This seems to knock out scsi, at least to the hard disk image.

Of course, I get tons of these all throughout:
NOTICE: hsfs_putpage: dirty HSFS page

You'd think HSFS would be kind of important (that's the CDs filesystem!), but it's apparently non-fatal.

I assume network booting doesn't work? That would eliminate the usual approach to a diskless client, but at this point, you could probably boot from CD and then chroot into an NFS mount and be up and running in a potentially useful environment.

atar said...

Brent, have you done this with my "wrong" patch?
I haven't seen any spurious interrupts under 2.6 (but then again I haven't tried to install it, just booted to a single user mode).

Also I'm afraid the same MMU issues which produce the "dirty HSFS page" message may also produce dirty UFS pages.

Brent said...

Yep, I'm using your wrong slavio patch, as otherwise things seemed impossibly slow. It is obviously not quite right, with spurious interrupts even in Solaris 2.6, but it gets things further along. I should tinker more without it and see...

I'm pretty sure that the MMU situation is more complex, with the MMU glitches still present in Solaris 2.7 and 8. I've even seen such a glitch in Solaris 2.6, I think when trying to newfs the hard drive image, and maybe also on a reboot attempt.

With correct fixes for these two issues, things would probably be looking quite good for Sparc Solaris on QEMU...

Brent said...

So far, a newfs is working without the slavio patch in place, so it looks like the patch must have been causing some sort of (timing-related?) glitches in SCSI hard drive access. Of course, it's incredibly slow; it's been running for a day and probably still has a long ways to go...

It looks like a proper slavio fix and the current MMU hack could be sufficient to get a decent Solaris 2.6 environment running.

The installer still gives constant HSFS complaints, but it doesn't seem to interfere, and this would presumably not be noticed once booted from a hard drive image (or maybe a netboot, if that is working; a netboot might even work with the faulty slavio patch).

Unknown said...

Solaris 2.4 (hw: 11/94) loads and starts the kernel; however (unsurprisingly), it does not manage get to userspace.
The errors I have are related to esp
[data transfer overrun; if needed I can post the actual messages and as much as I have of the boot log.

atar said...

lucag, have you tried to boot it with -sv options?
Can you post the log with -sv?

And actually from which media have you tried to boot? Hard drive image or cd?

I guess you have to connect cd image as if it were a hdd, because the older Solaris cds have a non-standard sector size. At least this trick helps with Solaris 2.5.1.

Unknown said...

I was trying to boot using the image as a cd; when it is connected as an hdd, the overrun disappears; the log with -ksva is

ok boot disk2:d -kvsa
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@2,0:d File and args: -kvsa
Enter filename [/kernel/unix]:
Size: 713484+158456+134116 Bytes
SunOS Release 5.4 Version generic [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1994, Sun Microsystems, Inc.
Name of system file [etc/system]:
Name of default directory for modules [/kernel /usr/kernel]:
Using default device instance data
root filesystem type [ufs]:
Enter physical name of root device
[/iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@2,0:d]:
vac: enabled in write through mode
cpu0: FMI,MB86904 (mid 0 impl 0x0 ver 0x4 clock 818 MHz)
mem = 262144K (0x10000000)
avail mem = 252870656
Ethernet address = 52:54:0:12:34:56
root nexus = SUNW,SPARCstation-5
iommu0 at root: obio 0x10000000
sbus0 at iommu0: obio 0x10001000
espdma0 at sbus0: SBus slot 5 0x8400000
esp0 at espdma0: SBus slot 5 0x8800000 sparc ipl 4
sd2 at esp0: target 2 lun 0
sd2 is /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@2,0
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@2,0 (sd2):
corrupt label - bad geometry

Label says 1310720 blocks, Drive says 1127704 blocks
Vendor 'QEMU', product 'QEMU', 1127704 512 byte blocks
Unable to install/attach driver 'isp'


[here, the system pauses for quite a long time, and then I got]

WARNING: clock gained 5548 days -- CHECK AND RESET THE DATE!
root on /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@2,0:d fstype ufs


The machine does not appear to be frozen "per se" [had it been booted without -v, the pointerwould have kept on spinning], but it does not respond to any command (including some attempts to send a break to enter the debugger)

atar said...

It's not possible to enter the debugger with just a "k" option on the sun4m machines and old Solaris versions. The debugger has to be started as described in the how-to above.

Can you keep it running for another ~20 hours? It would be great to see the actual fault.

Unknown said...

It took slighlty less than 20 hours (just 6) ...

Here there is the rest of the log:

obio0 at root
zs0 at obio0: obio 0x100000 sparc ipl 12
zs0 is /obio/zs@0,100000
zs1 at obio0: obio 0x0 sparc ipl 12
zs1 is /obio/zs@0,0
Begin traceback... sp = effffac8
BAD TRAP: type=9 rp=f0a0f88c addr=effffb00 mmu_fsr=126 rw=1
init: Data fault
kernel read fault at addr=0xeffffb00, pme=0x0
MMU sfsr=126: Invalid Address on supv data fetch at level 1
pid=4, pc=0xf0059b18, sp=0xf0a0f8d8, psr=0x44000c2, context=0
g1-g7: f0056d84, 8000000, ffffffff, c00, f0a0fae0, 1, fc256b60
Begin traceback... sp = f0a0f8d8
Called from f0058428, fp=f0a0f940, args=0 f015f800 0 f015fb74 f0000 effffac8
Called from f0058c4c, fp=f0a0f9a8, args=10009 f0a0fa94 ffff0b04 37 1 f0a0fa14
Called from f004171c, fp=f0a0fa38, args=10009 f0a0fa94 f017cb4c 37 1 0
Called from 22234, fp=effffac8, args=1 1 effffb08 ab860 ba400 b7c00
End traceback...
panic: Data fault
syncing file systems... done
rebooting...
Resetting ...

initializing TLB
initializing cache

Allocating SRMMU Context Table
Setting SRMMU Context Register
Setting SRMMU Context Table Pointer Register
Allocating SRMMU Level 1 Table
Mapping RAM
Mapping ROM

ttya initialized
s

Unknown said...

As of commit 787cfbc432bf1d353a77cbdb613754f3963371a3
Solaris 2.4 also gets to userspace in less than 2 minutes.
I see the same problems as Brent however with spurious interrupts on esp0 and notices of dirty pages on HSFS, though

Unknown said...

I would like to try this, but can't get a copy of the SS5 rom anywhere...

Can you point me where to download it from, or detail how to dump it from a real SS5?

Unknown said...

Where can i get ss5.bin or alternatively, how can I extract it from a real ss5? Thanks in advance.

Anonymous said...

Mikhail & aaron, check this blog archive, I think there was something about it in August 2009.

atar said...

lucag,
you see both spurious interrupts and dirty pages? I have observed them only separately: spurious interrupts under 2.5.1 and dirty pages under 2.6.

Are the messages independent? I hoped that the spurious interrupts cause the dirty pages...

atar said...

aaron,

which OBP version do you have in your real SS-5?

Unknown said...

atar, yesm I get both of them, even if not quite at the same time...
The spurious interrupts are mosltly during device probing (just before /devices is configured), while the dirty pages are notified during setup (and/or
in the single user mode shell)...

WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 (esp0):
Spurious interrupt
NOTICE: hsfs_putpage: dirty HSFS page

By the way, if I do a
find / -print
I get (more or less consistently) a panic:
BAD TRAP: type=9 rp=f0a155dc addr=4e4964e4 mmu_fsr=126 rw=1
find: Data fault
kernel read fault at addr=0x4e4964e4, pme=0x0
MMU sfsr=126: Invalid Address on supv data fetch at level 1
pid=42, pc=0xfc34154c, sp=0xf0a15628, psr=0x49000c4, context=0
g1-g7: 0, f01727d0, f0075fe4, c0, 0, 1, fc2566e0
Begin traceback... sp = f0a15628
Called from fc340cd4, fp=f0a15708, args=75 f0a1577c f0a15698 fc2a7b88 ffffffff fc0e29d8
Called from f0098ea8, fp=f0a15788, args=fc3588f4 ffffe000 0 f0a157f4 1800 1800
Called from f0098ae0, fp=f0a158f8, args=f0a1595c 0 0 f0a15964 f0a15960 fc3588f4
Called from f00dcd70, fp=f0a15968, args=0 0 1 0 f0a159cc fc3588f4
Called from f0076050, fp=f0a159d0, args=f0a15ac0 f0a15a30 418 ef769cc2 1 0
Called from f0076528, fp=f0a15a38, args=ef769cc8 6f 246d0 ef768622 f00dcd5c f0a15ae0
Called from ef73f9f8, fp=efffec08, args=effff68b 11ab4 3de 0 0 0
End traceback...
panic: Data fault

Brent said...

Git checkout as of today, booting Solaris 2.6:

1) HSFS complaints are still present. I can confirm that "find / -print" leads to a panic in the hsfs module, as lucag observed. It looks like hsfs is still having some MMU-related trouble; perhaps both of these are the same bug?

2) Interrupts still aren't quite right, either, as evidenced by the "spurious interrupts". If you attach a drive image, you can detect and partition it, but a newfs will give you a burst of spurious interrupts, followed by "WARNING: processor level 4 onboard interrupt not serviced". The old, unmodified slavio code did seem to work, but of course it was unusably slow. I left it running for over a week on a newfs. It was working, but I doubt it was anywhere close to finishing.

atar said...

Brent,

it might be that the old version would have complained about unserviced interrupts too if you had waited another week.

The old slavio code didn't behave as a real SparcStation. The new one is closer. But I suspect there is a bug in irq processing outside the slavio code. Can you try to reverse the Igor's / Blue Swirl's "interrupt_index=-1" patch?

I wonder how does Solaris distinguish between unserviced and spurious interrupts. Any idea?

Brent said...

I think the old slavio code really was working, as the size of my disk image would (very slowly) increase as the newfs chugged along. I can't say the same for any of the modified slavio attempts, including today's git checkout. I think SCSI hangs right away with the spurious interrupts.

I tried switching env->exception_index to 0 instead of 1 (I assume that was the patch you were wanting me to reverse), but I don't see any difference.

Brent said...

Oops, I meant "0 instead of -1".

atar said...

yes, that's what I meant.

can you try to revert my slavio patch (it's a one-liner) and check whether it still works as before?

It may be that the problem was introduced with something else.

Haven't you said that you've seen spurious interrupts in the old code too?

But the "onboard interrupt not serviced" error messages are definitely new, right?

Brent said...

Hmm, yes, in the 2nd message of this thread, I did see a number of "spurious interrupt at processor level 10" messages in Solaris 8, which were reduced with your slavio patch back then. That may not be the same as the "spurious interrupts" emitted by the esp scsi, though...

No, the "onboard interrupt not serviced" messages aren't new. When trying various slavio modifications to boost performance, they would invariably follow the "spurious interrupts" emitted from any significant attempt to write to SCSI.

With modified slavio, non-trivial SCSI writes => burst of "spurious interrupt SCSI complaints" => a pause of maybe a minute or so => endless "onboard interrupt not serviced" messages and a seemingly hung system.

atar said...

Brent,

no I mean, didn't you see spurious interrupts booting Solaris 2.6 as well?

I still doubt though that the problem is my interrupt patch.

For some reason I can't reproduce the "find / -print" bug.

Can you write a script for an automatic partitioning and newfs?

Want to reproduce the "not serviced" message, but not sure that I'm partitioning the disk correctly. Loosing track in "HSFS" messages.

Brent said...

lucag "spurious interrupt" messages on boot before /devices setup, but I hadn't encountered that. Perhaps it's from one of his tests treating the CD image is a hard drive. Maybe it was trying to write the results of device probing to the disk, and the SCSI writes were producing the messages. I've only seen these messages on SCSI writes (but not when doing the partitioning; that works fine).

I was also thinking I should write up a quick set of instructions to partition a disk image and newfs it. Basically, it goes like this:
1) qemu-img create -f qcow2 file.qcow2 12G
2) Add -drive file=file.qcow2,unit=3 to your qemu startup
3) Boot single user
4) echo 'disk_type="QEMU12.0G":ctlr=SCSI:ncyl=49152:acyl=0:pcyl=49152:nhead=16:nsect=32:rpm=7200' >> /etc/format.dat
5) echo 'partition="QEMU12.0G":disk="QEMU12.0G":ctlr=SCSI:2=0,25165824:0=0,20971520:6=40960,4194304' >> /etc/format.dat
6) format -d c0t3d0 -t 'QEMU12.0G' then label, y, and quit
7) newfs /dev/dsk/c0t3d0s0 followed by y

Note that you do get "spurious interrupts" even with labeling, although it's usually non-fatal and actually works. There is in error just before the "not serviced" messages and after the "spurious interrupts", but I wasn't quick enough to catch it.

It's very odd that you don't get the panic with "find / -print". I run it from the Solaris 2.6 install disk, and it runs for awhile but panics before finishing. Every time, so far...

Brent said...

Here's the errors that occur between the "spurious interrupts" and the "not serviced messages":

WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 (esp0):
Connected command timeout for Target 3.0
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 (esp0):
polled command timeout: current esp state:
esp: State=RESET Last State=DATA_DONE
esp: Latched stat=0x0 intr=0x10 fifo 0x0
esp: last msg out: IDENTIFY; last msg in: COMMAND COMPLETE
esp: DMA csr=0xa4240030
esp: addr=fc009700 dmacnt=2000 last=fc007700 last_cnt=2000
esp: Cmd dump for Target 3 Lun 0:
esp: cdblen=6, cdb=[ 0xa 0x2 0x3c 0xa0 0x10 0x0 ]
esp: pkt_state=0x7 pkt_flags=0x0 pkt_statistics=0x60
esp: cmd_flags=0xc62 cmd_timeout=0

Also, I just tried Blue Swirl's memory alias patch but did not observe any effect, either positive or negative.

atar said...

Brent,

it looks like find / -print crashes only if a hard drive is attached.

Can you check whether it behaves like this on your machine too?

atar said...

Do you know how to reduce solaris fs cache? I made a hack to run with -m 32 and it looks like Solaris is much more stable with it. find / doesn't crash even with a hard disk attached.

Brent said...

I did test once with just the cdrom attached, and find still caused a panic. It may have taken a little longer.

Possibly useful filesystem-caching-under-Solaris article:

http://www.solarisinternals.com/si/reading/sunworldonline/swol-07-1999/swol-07-filesystem3.html

atar said...

Ok, I see. I wasn't able to reproduce the fault because I used the wrong Solaris version.

Solaris 7 doesn't seem to crash with "find / -print". At least it didn't after 30 iterations. The error messages are still there though.

Vanilla qemu can not boot Solaris 7 yet though. If you think booting Solaris 7 is important, please write a comment here:

http://tyom.blogspot.com/2010/01/solaris-7-aka-sunos-57.html

atar said...

lucag, can you please check Solaris 2.4 booting with the current git-master?

I can not boot Solaris 2.5.1 anymore, I think someone (not me) has broken ability to use CD-images as HDD-images.

Unknown said...

I am indeed unable to boot the cd image of Solaris 2.4 ... it stops just after initializing the serial ports.

atar said...

lucag,

can you try to bisect? I'm completely lost. It looks like vanilla git was never able to boot 2.5.1! But I'm sure I tested it before writing the git comment.

I tried the version you mentioned, and it fails too. Can you please re-check Solaris 2.4 under 787cfbc432bf1d353a77cbdb613754f3963371a3 ?

atar said...

Ha! Looks like we have a problem of y2k10 !

It's not qemu/git which is broken, but Solaris. Would have been nice to confirm on the real hw...

atar said...

Btw, is the "find / -print" bug still there? I wasn't able to reproduce it after the last mmu fix (aka hsfs_putpage fix).

Also it would be interesting to know whether heavy network traffic also produces spurious interrupts. I'm still not sure that esp/scsi emulation is good enough.

Has anyone tried to setup nfs mounts?

Unknown said...

Well, with the latest git and a handy
-rtc base=1995-06-06 Solaris 2.4 installs
to a disk image (with plenty of spurious interrupts on esp0, though) and the files appear to be there. However, I cannot boot from disk yet [the kernel starts, but it cannot find the root fs, even if it should be there!]

Brent said...

Qemu building is quite broken for my system, as of recent git revisions.

I took a revision from a week ago and added the dirty pages fix, and it's quite a breath of fresh air. No more endless hsfs_putpage complaints!

And I, too, am no longer seeing the "find / -print" panic. It runs through to the end, without complaint.

SCSI writes are still a problem, of course, with the usual "spurious interrupts".

I have been tempted to try running purely from NFS mounts; although it might be a bit awkward to setup, I suspect it would work fine at this point.

atar said...

lucag,

have you tried the -i boot option? Maybe it searches for the root fs in a wrong place?

But find doesn't crash the system anymore, right?

atar said...

Brent,

actually you don't have to run it purely from NFS mounts, it still can be boot from a cd, since it seems to be stable now.

Unknown said...

atar,
curioser and curioser ... it appears something is wrong with the kernel (data corruption somewhere? not sure).
"-i" does not help; however, if I boot off the installation cd and select as root device the disk (sd@0,0:a) I can get the system up.

Local logins sort of work, even if every access to the disk
generates plenty of spurious irqs, and also timeouts like the following:

WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 (esp0):
Connected command timeout for Target 0.0
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0 (sd0):
SCSI transport failed: reason 'timeout': retrying command

WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0 (sd0):
SCSI transport failed: reason 'reset': retrying command

atar said...

lucag, sounds like a bad news. It may be that Solaris uses different DMA /SCSI modes for cd/hdd or for reading/writing. Not every esp command is implemented in qemu, and not every dma mode either.

Up to now I was puzzled why did they test these modes in POST and then don't use them in Solaris, but probably they do use them, just not for every operation.

It would be nice to know whether it's just writing which is broken, or reading too.

Also it would have been interesting to see whether spurious interrupts can be produced by reading.

Up to now they all have to do with writing, which may mean, it's not a bug in the irq processing, but rather in esp.

Brent said...

I've only ever seen spurious interrupts on SCSI writes.

Do keep in mind that I was getting successful SCSI writes, slow and steady with no spurious interrupts or errors of any kind, on the old slavio code. I didn't test to completion, but the writes went way, way beyond what the current code would do before glitching (>100MB vs. maybe a few KB). Perhaps the esp code depends upon buggy slavio interrupt behavior, and fixing interrupts broke it. Do we know if SCSI writes are still working on Sparc Linux with the current code?

Unknown said...

Brent,
everything seems to work under linux
(debian etch install cd, kernel
2.6.18-6; ss-5 firmware)
The irqs for the SCSI controller are
"as expected" and I have not got any
timeout (so far)

atar said...

Yes, just finished a fresh debian-etch installation, rebooted, and tried simultaneous reading& writing.

No error messages.

atar said...

Brent,

is there a way to mount a samba share under Solaris 2.6? Might be easier that setting up an nfs server, since qemu has a built-in samba server.

atar said...

In a way esp code may be depending on buggy slavio interrupt behavior, but it would be rather accidental: the interrupts were dropped without a certain pattern. I wrote some thoughts about spurious irqs here:

http://tyom.blogspot.com/2010/01/spurious-interrupts.html

atar said...

Can someone uncomment
//#define DEBUG_ESP
in hw/esp.c

and try to format? There will be lots of output, but maybe it would be possible to see that only a certain scsi command causes the spurious interrupts...

Unknown said...

I have not got to format the disk yet;
however here there is some extra information with ESP_DEBUG ... it seems the problem is with registers 3 & 4.
(which contain a 0x00 instead of what is expected)

the dump is fairly long, though and I doubt I can post it here.
The troublesome sequence seems to start with

ESP: Transfer Information len 4096
ESP: read reg[4]: 0x00
ESP: read reg[5]: 0x00
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,880000ESP: read reg[4]: 0x00

following this warning, there are several attempts

ESP: read reg[5]: 0x00
ESP: read reg[4]: 0x00

till we get the spurious interrupt messages (several times; between any two messages there is a read of reg[5] and reg[4]) and, eventually, a reset
ESP: SCSI Command complete
ESP: Raise IRQ

Speaking of which ...
the sequence just before a bus reset appears to be:
^@ESP: read reg[4]: 0x03
ESP: write reg[3]: 0x90 -> 0x02
ESP: Chip reset (02)
ESP: write reg[3]: 0x02 -> 0x80
ESP: NOP (80)
ESP: write reg[3]: 0x80 -> 0x80
ESP: NOP (80)
ESP: write reg[9]: 0x00 -> 0x00
ESP: write reg[5]: 0x00 -> 0xa3
ESP: write reg[6]: 0x00 -> 0x00
ESP: write reg[7]: 0x00 -> 0x00
ESP: write reg[8]: 0x00 -> 0x17
ESP: write reg[12]: 0x00 -> 0x01
ESP: write reg[11]: 0x00 -> 0x08
ESP: read reg[5]: 0x00
ESP: write reg[3]: 0x80 -> 0x03
ESP: Bus reset (03)
ESP: Raise IRQ
ESP: read reg[4]: 0x80
ESP: read reg[5]: 0x80
ESP: Lower IRQ
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0 (sd0):^
SCSI transport failed: reason 'timeout': retrying command

@WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0 (sd0):
SCSI transport failed: reason 'reset': retrying command
ESP: write reg[4]: 0x00 -> 0x02
ESP: write reg[6]: 0x00 -> 0x00
ESP: write reg[7]: 0x00 -> 0x00
ESP: write reg[12]: 0x01 -> 0x01
ESP: write reg[8]: 0x17 -> 0x07
ESP: write reg[0]: 0x00 -> 0x0b
ESP: write reg[1]: 0x00 -> 0x00
ESP: write reg[3]: 0x03 -> 0xc2
ESP: Select with ATN (c2)
ESP: get_cmd: len 11 target 2
ESP: do_busid_cmd: busid 0x80
ESP: SCSI Command complete
ESP: Command failed

atar said...

This was booting from a hdd image, right?

It may be that Solaris don't recognize the disk geometry and tries to read from a wrong place.

"format" might be more enlightening.

Unknown said...

There we go with format: this seems to be the relevant snippet:


ESP: write reg[4]: 0x00 -> 0x00
ESP: write reg[0]: 0x07 -> 0x07
ESP: write reg[1]: 0x00 -> 0x00
ESP: write reg[3]: 0x12 -> 0xc2
ESP: Select with ATN (c2)
ESP: get_cmd: len 7 target 0
ESP: do_busid_cmd: busid 0xc0
ESP: transfer 0/-512
ESP: Raise IRQ
ESP: read reg[4]: 0x90
ESP: read reg[5]: 0x18
ESP: Lower IRQ
ESP: read reg[6]: 0x04
ESP: read reg[7]: 0x00
ESP: write reg[0]: 0x07 -> 0x00
ESP: write reg[1]: 0x00 -> 0x02
ESP: write reg[3]: 0xc2 -> 0x90
ESP: Transfer Information len 512
ESP: read reg[4]: 0x00
ESP: read reg[5]: 0x00
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,880000ESP: read reg[4]: 0x00

then there is

ESP: read reg[5]: 0x00
ESP: read reg[4]: 0x00

repeated 22 times

WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 (esp0)
Spurious interrupt^M
ESP: read reg[4]: 0x00
ESP: read reg[5]: 0x00
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 (esp0):^M^M^M
Spurious interrupt^M
ESP: read reg[4]: 0x00
ESP: read reg[5]: 0x00
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 (esp0):^M^M^M
Spurious interrupt^M
ESP: read reg[4]: 0x00
ESP: read reg[5]: 0x00
WARNING: /iommu@0ESP: SCSI Command complete
ESP: Raise IRQ
,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 (esp0):^M^M^M
Spurious interrupt^M
ESP: read reg[4]: 0x93
ESP: read reg[5]: 0x10
ESP: Lower IRQ
ESP: read reg[7]: 0x00
ESP: write reg[3]: 0x90 -> 0x01
ESP: Flush FIFO (01)
ESP: write reg[3]: 0x01 -> 0x01
ESP: Flush FIFO (01)
ESP: write reg[3]: 0x01 -> 0x11
ESP: Initiator Command Complete Sequence (11)
ESP: Transfer status (sense=0)
ESP: Raise IRQ
ESP: read reg[4]: 0x87
ESP: read reg[5]: 0x08
ESP: Lower IRQ
ESP: write reg[3]: 0x11 -> 0x12
ESP: Message Accepted (12)
ESP: Raise IRQ
ESP: read reg[2]: 0x00
ESP: read reg[2]: 0x00
ESP: read reg[4]: 0x87
ESP: read reg[5]: 0x20
ESP: Lower IRQ
^@ESP: write reg[4]: 0x00 -> 0x00
ESP: write reg[0]: 0x00 -> 0x0b
ESP: write reg[1]: 0x02 -> 0x00
ESP: write reg[3]: 0x12 -> 0xc2
ESP: Select with ATN (c2)
ESP: get_cmd: len 11 target 0
ESP: do_busid_cmd: busid 0xc0
ESP: transfer 0/-512
ESP: Raise IRQ
ESP: read reg[4]: 0x90
ESP: read reg[5]: 0x18
ESP: Lower IRQ
ESP: read reg[6]: 0x04
ESP: read reg[7]: 0x00
ESP: write reg[0]: 0x0b -> 0x00
ESP: write reg[1]: 0x00 -> 0x02
ESP: write reg[3]: 0xc2 -> 0x90
ESP: Transfer Information len 512
ESP: read reg[4]: 0x00
ESP: read reg[5]: 0x00
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,880000ESP: read reg[4]: 0x00


If needs be, I can send the full transcript.

atar said...

Thanks for the reports, let's continue irq discussion under the irq topic. I'd like to keep this thread for the unknown/uncategorized problems. It's getting lengthy otherwise, and I'd like to keep all the posts.

atar said...

lucag,

could you play a bit more with booting 2.4 in Y2K10? I wonder whether the clock time is also important. Carey could not reproduce the bug with 2.5.1 and a real SS-5.

It may be that it's some weird bug in qemu idprom/nvram/eeprom emulation.

Your another report - inability to boot from the hdd seems to be related to eeprom/nvram as well.

Do you have an idea what boot -r does beyond setting the symlinks? Looks like the installed kernel fails to find something in the environment.

Installing Solaris 2.6 also endups with a complaint that it was unable to update boot firmare.

Anonymous said...

Artyom, this is the best post on the virtualization of Solaris Sparc I found, but would like some clarification.
The question is about the parameter ss5.bin, because in know where to find it.

atar said...

Looks like this is also the only post in my blog which people read. ;-)

You can get ss5.bin from Robert's page I mentioned here. And ss5-170.bin should work as well.

atar said...

And, btw, you probably may want to apply the patch I sent yesterday. For some reason the patch is not in the git/master yet.

atar said...

lucag,

can you try to add
set scsi_options=0x58
to /etc/system on your hdd image and confirm that the system can boot from the hdd in a single user more afterwards?

Unknown said...

I have reinstalled from scratch.
With that option in /etc/system
the system comes up at runlevel 3 and seems to work. Actually, I did not even need to reset the date for the 2010 problem (weird).

atar said...

lucag,

For some reason, 2.5.1- don't work only when day of month is >20. That's why I asked whether the time of day is also important.

Unknown said...

I'm trying to load an image of Solaris 2.5.1 on a sparc64 machine emulated by qemu. The image was created from a HD with the system installed, using the dd command. All attempts failed. You said that the OpenBIOS qemu can not load the Solaris, and this may have been the reason for the failure of my attempts. If all the steps discussed in this post are implemented properly, there is possibility of success in my experiment?

Brent said...

js12sousa, qemu support is only able to simulate 32-bit hardware for successful use of Solaris. Using Sparc64 emulation won't work for Solaris, and your 64-bit HDD image isn't going to work on the 32-bit emulation.

You should be able to do a fresh Solaris install onto the 32-bit emulation, and then put your software on that, however...

atar said...

Actually it would be interesting to find a PROM image which would work with the sparc64 version. But I don't have any, and haven't seen any on the net. Does anyone have one?

Shall I write a how-to on extracting PROM images over a serial console?

Anonymous said...

Just a message to encourage you !

Our Suns are now over 10 years old, running legacy binary, Sun OS 5.6. They are noisy as hell.

We just loook forward to being able to run the apps in qemu!

VooDoo_UzH_ said...

При запуске смущает параметр -nographic (т.к. я преследую цель просмотра графиков из Solaris). Как можно загрузится с винта? На данный момент вроде установился Sol 2.6 командой boot disk2:d

atar said...

VooDoo_UzH_, знаком с юниксом? Чтобы использовать графические приложения, иметь видюху на сервере не обязательно. Потребуется локальный х-сервер. Есть в любом дескопном линуксе, для винды тоже бывают, например, в составе cygwin.

Или приложение использует фреймбуффер? Тогда облом.

Чтобы грузиться с винта, надо чтобы в его /etc/system содержалось
set scsi_options=0x58
(см. последний абзац how-to).

VooDoo_UzH_ said...

Мне хотелось бы (на ПК архитектуры x64 на которой стоит VMware_Ubuntu9.04 а в Ubuntu установлена ваша QEMU)из файлов «архива спец ПО» архитектуры Sparc 5, просматривать графики. Необходимо реализовать перенос файлов из Ubuntu в qemu – как это можно реализовать (наверно ч\з сеть настроенную между Ubuntu и qemu). Я уже установил Solaris хоть он у меня еще не загружается с HDD это пока для меня не имеет значения т.к. дисков со спец ПО нету, зато есть полностью рабочая станция Sparc 5 совем установленным ПО и копии разделов на диска на ленте /dev/dsk/c0t3d0s0 ; /dev/dsk/c0t3d0s6 ; /dev/dsk/c0t3d0s7. Файлы дампа с ленты в Ubuntu я перенести с могу а можно ли с помощью qemu восстановить раздел из этого файла дампа. На Sparc 5 в Solaris это происходит после загрузки станции с cdrom в однопользовательском режиме после подмонтирования необходимого раздела ufsrestore rvf /dev/rmt/0cn, с помощью qemu это можно сделать?

atar said...

VooDoo_UzH_, а что за «архив спец ПО»? Он где-то доступен?

Сеть между qemu и Ubuntu работает без проблем. Проще всего sftp, но можно ftp и прочие самбы. Принципы описаны в puppylinux ( http://www.erikveen.dds.nl/qemupuppy/#6.1.0 ). С лентами сложнее - они qemu не поддерживаются. Но если дампы лент не содержат ничего, кроме забэкапленных данных, можно попробовать
ufsrestore rvf <файл>
.

VooDoo_UzH_ said...

По поводу спец архива мне проще тебе поскайпу прояснить ситуацию и если что прислать (т.к. информативний нагрузки на тему блога эта инфа не несет). Пока попробую настроить переброс файлов ч\з сеть, заодно может ч\з туже сеть и получится разделы восстановить. Оч. хотелось бы пообщаться по скайпу если что мой voodoo_uzh_ .

VooDoo_UzH_ said...

Доброго времени суток подскажи чего в супе не хватает, система установилась после команды
boot disk2:d
А вот после команды ok boot disk3:a сисма почемуто ругается на содержимое винта, хотя добавлял строчку
Power-ON Reset

$$$$$ WARNING: No Keyboard Detected! $$$$$
MMU Context Table Reg Test
MMU Context Register Test
MMU TLB Replace Ctrl Reg Tst
MMU Sync Fault Stat Reg Test
MMU Sync Fault Addr Reg Test
MMU TLB RAM NTA Pattern Test
ERROR : Address= 000000fc, exp= 07ffffdc, obs= 00000000, xor= 07ffffdc
initializing TLB
initializing cache

Allocating SRMMU Context Table
Setting SRMMU Context Register
Setting SRMMU Context Table Pointer Register
Allocating SRMMU Level 1 Table
Mapping RAM
Mapping ROM

ttya initialized
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 32 Megabytes
Probing Memory Bank #3 32 Megabytes
Probing Memory Bank #4 32 Megabytes
Probing Memory Bank #5 32 Megabytes
Probing Memory Bank #6 32 Megabytes
Probing Memory Bank #7 32 Megabytes
Incorrect configuration checksum;
Setting NVRAM parameters to default values.
Setting diag-switch? NVRAM parameter to true
Probing CPU FMI,MB86904
Probing /iommu@0,10000000/sbus@0,10001000 at 5,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 SUNW,CS4231 power-management
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 Nothing there
screen not found.
Can't open input device.
Keyboard not present. Using tty for input and output.
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 32 Megabytes
Probing Memory Bank #3 32 Megabytes
Probing Memory Bank #4 32 Megabytes
Probing Memory Bank #5 32 Megabytes
Probing Memory Bank #6 32 Megabytes
Probing Memory Bank #7 32 Megabytes
Incorrect configuration checksum;
Setting NVRAM parameters to default values.
Setting diag-switch? NVRAM parameter to true
Probing CPU FMI,MB86904
Probing /iommu@0,10000000/sbus@0,10001000 at 5,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 SUNW,CS4231 power-management
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 Nothing there

SPARCstation 5, No Keyboard
ROM Rev. 2.15, 256 MB memory installed, Serial #0.
Ethernet address 52:54:0:12:34:56, Host ID: 80000000.



Boot device: /iommu/sbus/ledma@5,8400010/le@5,8c00000 File and args:
Internal loopback test -- Wrong packet length; expected 36, observed 64

Can't open boot device

Type help for more information
ok boot disk3:a
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@3,0:a File and args:
SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
Cannot assemble drivers for root /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@3,0:a
Cannot mount root on /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@3,0:a fstype ufs
panic: vfs_mountroot: cannot mount root
rebooting...
Resetting ...

atar said...

Как именно добавлял? Выглядит, как будто не добавилось.

VooDoo_UzH_ said...

Содержание more /etc/system

set scsi_options=0x58
set scsi_reset_delay=10000
set tmpfs:tmpfs_minfree=1
set swapfs_minfree=0x040

atar said...

Точно, что это /etc/system диска, а не установочного сидюка? Как диск был смонтирован?

Jason Stevens said...

I made *SOME* progress on the SunOS 4.1.4 front..... (mostly me following the instructions... lol)

ok boot disk1:d -vs
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@1,0:d File and args: -vs
Boot Release 4.1.4 (sun4m) #2: Fri Oct 14 11:07:52 PDT 1994
Copyright (c) 1983-1990, Sun Microsystems, Inc.
Boot: Romvec version 3.
root on /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@1,0:d fstype 4.2
Boot: vmunix
.Size: 868352......................................................................................................................................................................................................................................................................................................................................................................................................+2319136+75288 bytes
Statistics:


And then it crashes Qemu....

qemu: fatal: Trap 0x29 while interrupts disabled, Error state
pc: f00d49a8 npc: f00d49ac
General Registers:
%g0-7: 00000000 11000294 04000ca5 ffffffff f0005000 20fff294 00000000 ffed2000

Current Register Window:
%o0-7: 00000000 f0319000 044000a5 00000c00 00000080 f0314460 f00e0de0 f00b9bbc
%l0-7: f07205fc f1ec0000 f071fefc ff000000 00000000 00040000 10000000 10000000
%i0-7: 00000c00 f0749000 0073c000 00000400 f073c000 000003c0 f00e0e40 f00ace6c

Floating Point Registers:
%f00: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f04: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f08: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f12: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f16: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f20: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f24: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f28: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
psr: 04000c85 (icc: ---- SPE: S--) wim: 00000002
fsr: 00080000 y: 00001000

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

facundo said...

is Solaris 2.6 booteable cd available somewhere?.

Can i create a disk image from a running solaris 2.6 system?

facundo said...

ok, i did get Solaris 2.6 installed but it won't boot. i'm new at this staff so im surely doing something wrong. Any help is more than welcome

here is the output when i try to boot from disk:


ok boot disk
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@3,0 File and args:
SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
Cannot assemble drivers for root /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@3,0:a
Cannot mount root on /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@3,0:a fstype ufs
panic: vfs_mountroot: cannot mount root
rebooting...
Resetting ...

initializing TLB
initializing cache

Allocating SRMMU Context Table
Setting SRMMU Context Register
Setting SRMMU Context Table Pointer Register
Allocating SRMMU Level 1 Table
Mapping RAM
Mapping ROM

ttya initialized
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 32 Megabytes
Probing Memory Bank #3 32 Megabytes
Probing Memory Bank #4 32 Megabytes
Probing Memory Bank #5 32 Megabytes
Probing Memory Bank #6 32 Megabytes
Probing Memory Bank #7 32 Megabytes
Probing CPU FMI,MB86904
Probing /iommu@0,10000000/sbus@0,10001000 at 5,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 SUNW,CS4231 power-management
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 Nothing there
screen not found.
Can't open input device.
Keyboard not present. Using tty for input and output.
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 32 Megabytes
Probing Memory Bank #3 32 Megabytes
Probing Memory Bank #4 32 Megabytes
Probing Memory Bank #5 32 Megabytes
Probing Memory Bank #6 32 Megabytes
Probing Memory Bank #7 32 Megabytes
Probing CPU FMI,MB86904
Probing /iommu@0,10000000/sbus@0,10001000 at 5,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 SUNW,CS4231 power-management
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 Nothing there

SPARCstation 5, No Keyboard
ROM Rev. 2.15, 256 MB memory installed, Serial #0.
Ethernet address 52:54:0:12:34:56, Host ID: 80000000.

atar said...

please read
"booting Solaris from a HDD image". Looks like you need to edit your /etc/system.

Jason Stevens said...

I saw your memory changes were committed up stream (to allow for empty simms) so I downloaded it & rebuild ed.... The best I can tell is that there is something up with the lance ethernet... solaris 8&9 freak out if you ifconfig 'plumb' it... And I think the bootloader from sunos prints some statistics uppon boot, and part of that is to tie into the ethernet... I've tried disabling the ethernet but that doesn't do that much...

atar said...

Yes, there is a problem with lance ethernet. Currently it seems to me that there is a bug in all Solaris versions after 5.7+. And then there is another bug (side effect actually) in hardware, due to which these versions don't crash on a real hw.

Was partially wrong about -m 256 and SunOS 4.1.4. It needs one more fix to boot. But this crash seems to be unrelated to the ethernet.

Anonymous said...

Hello Artyom,

I was hoping you could offer some enlightenment, as I've been consulting your blog several days in order to get an application running under QEMU for sparc.

The program I want to execute is called 'resident_sw' - in this case, just a "Hello World!". The trick is, this file was created with Hypervisor support so it also holds RTEMS OS needed libraries. My point is, it could be considered a kernel.

The best command I've found is:
qemu-system-sparc -M SS-5 -m 256 -startdate "2009-12-13" -bios ss5.bin -hdb resident_sw -nographic

Two things happen:
* when probing memory, it makes 8 tests, one for each 32MB block. When all of them are passed, it says checksum configuration is incorrect.
* It just doesn't run the application. It says it can't boot.

Here's the log:
Power-ON Reset

$$$$$ WARNING: No Keyboard Detected! $$$$$
MMU Context Table Reg Test
MMU Context Register Test
MMU TLB Replace Ctrl Reg Tst
MMU Sync Fault Stat Reg Test
MMU Sync Fault Addr Reg Test
MMU TLB RAM NTA Pattern Test
ERROR : Address= 000000fc, exp= 07ffffdc, obs= 00000000, xor= 07ffffdc
initializing TLB
initializing cache

Allocating SRMMU Context Table
Setting SRMMU Context Register
Setting SRMMU Context Table Pointer Register
Allocating SRMMU Level 1 Table
Mapping RAM
Mapping ROM

ttya initialized
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 32 Megabytes
Probing Memory Bank #3 32 Megabytes
Probing Memory Bank #4 32 Megabytes
Probing Memory Bank #5 32 Megabytes
Probing Memory Bank #6 32 Megabytes
Probing Memory Bank #7 32 Megabytes
Incorrect configuration checksum;
Setting NVRAM parameters to default values.
Setting diag-switch? NVRAM parameter to true
Probing CPU FMI,MB86904
Probing /iommu@0,10000000/sbus@0,10001000 at 5,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 SUNW,CS4231 power-management
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 Nothing there
screen not found.
Can't open input device.
Keyboard not present. Using tty for input and output.
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 32 Megabytes
Probing Memory Bank #3 32 Megabytes
Probing Memory Bank #4 32 Megabytes
Probing Memory Bank #5 32 Megabytes
Probing Memory Bank #6 32 Megabytes
Probing Memory Bank #7 32 Megabytes
Incorrect configuration checksum;
Setting NVRAM parameters to default values.
Setting diag-switch? NVRAM parameter to true
Probing CPU FMI,MB86904
Probing /iommu@0,10000000/sbus@0,10001000 at 5,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 SUNW,CS4231 power-management
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 Nothing there

SPARCstation 5, No Keyboard
ROM Rev. 2.15, 256 MB memory installed, Serial #0.
Ethernet address 52:54:0:12:34:56, Host ID: 80000000.



Boot device: /iommu/sbus/ledma@5,8400010/le@5,8c00000 File and args:
Internal loopback test -- Wrong packet length; expected 36, observed 64

Can't open boot device

Type help for more information
ok

Maybe it's a silly mistake and I am making a fool of myself, but I've found no way to determine what's wrong...

Thank you in advance, and for all the efforts.

atar said...

You didn't try to boot from the disk: by default OBP tries to boot from the network. So first thing to try would have been

boot disk1

Most likely it won't work though cause your program is not a disk image and -hdb implies a hard drive image. Either you put your kernel inside of the image, then you'll need a boot loader which understands your kernel format, or if it's the same format as the linux kernel, you can try using OpenBIOS instead of OBP and -kernel option instead of -hdb.

Write to the mailing list, as there are lots of experienced boot experts over there.

Anonymous said...

I missed that - the default network boot. I'll make sure to try it tomorrow.

Actually, the bootloader is already inside the ELF. Its task would be to map everything else in the file to memory where it corresponds.

I'll let you know how it goes.

Jason Stevens said...

OMG! After digging and digging I came across a Solaris 2.4 ISO, and it works GREAT!!!... I couldn't figure out what I was doing wrong to 'format' my qemu disk in 2.4, but I just ran solaris 9, disklabeled the thing, and 2.4 installed with no issues, along with networking!

Thank you so much for your hardwork on this!!!! Now I've just got to go digging around for this app we ran on solaris...!

atar said...

Glad to hear this! If you find some earlier version it would be interesting to know whether it works too.

I'm testing now a fix for SunOS 4.1.4. Basically it tries to access some address where nothing is wired. If I put there a pseudo device it is fine. The question is whether it works on a real hardware because of the bugs in the hardware, or does it access this address because due to a previous error.

Unfortunately kadb debugger doesn't allow debugging cache flushing routines on a real hardware, so I don't have a reference.

Considering just go on and submit the hack upstream as is.

About the disk and format utility. Yeah I spent some time too trying to figure out. Brent submitted one way of formatting disks in this thread. I haven't tested it yet, cause I didn't need such large disks. I use a somewhat simplier approach: smaller disks which have a pre-defined type known to the format utility, like 511M or 2.9G.

Maybe I should have described it too. I figured that the Solaris experts would know what to do, and at the time I wrote the first version of the how-to the stuff was intended only for the hardcore experts.

Jason Stevens said...

Solaris 2.2 crashes while booting....

qemu: fatal: Trap 0x29 while interrupts disabled, Error state
pc: f00146e0 npc: f00146e4
General Registers:
%g0-7: 00000000 f00dfd9c 00000001 00102c04 00000000 0012d318 00000000 00000000

Current Register Window:
%o0-7: 043d1f01 f0008be0 293ff49f 00000002 00000001 f00b6f4c f00acc60 f0005198
%l0-7: 0000c6bc 00000000 0000d000 ffff804c ffeff000 0013504d fffffff8 0012d2d0
%i0-7: 00002000 0013504c 00002000 0000003e 00000000 00000000 00000000 00108200

Floating Point Registers:
%f00: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f04: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f08: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f12: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f16: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f20: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f24: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
%f28: 000000000.000000 000000000.000000 000000000.000000 000000000.000000
psr: 04000fc0 (icc: ---- SPE: SP-) wim: 00000001
fsr: 00080000 y: 00000000

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

atar said...

The crash of Solaris 2.2 is understandable: SS-5 was supported only from Solaris 2.3U2.

Had to bother Carey to prove that it also crashes on the real SS-5.

Jason Stevens said...

Oops... well at least it's performing correctly then... :)

Jason Stevens said...

Sometimes you have to hit savanah a few times..... If you still have issues, I can make a snapshot mirror, but I'm too lazy to do it super often...

VooDoo_UzH_ said...

А вот решил навести порядок поставить все с нуля. И на тебе.
С чего начать, раньше загружалась в сингл юсер режиме (-vs) а сейчас циклическая ошибка.
Spurious interrupt ....
Warning .... (esp0)
Мои знания анлиского не позволяют разобраться в подсказках.

atar said...

Neozeed, so you can obviously read russian :). No, it's not a problem for me. In some respects my tree is newer than the savanah git. :). Either I work with my own stuff or with the bleeding edge which is not in the git anyway. Like SX framebuffer currently (you've seen my post about it? I guess it's a good news for you. Unless you really wanted bw2 when you said so).

atar said...

VooDoo_UzH_,

обычно в таких случаях рекомендуется начасть с git bisect. Но тут я сразу могу сказать в чём дело - починив 2.3 неделю назад я сломал 2.6. Так что, или сидеть на предыдущей версии, или вручную откатить мой последний комит к hw/sparc32_dma.c, или ждать пока починю.

Спасибо, за баг репорт!

Jason Stevens said...

I use that google translate... :) It's amazing! The only Russian I know is куриные & автомобиль... which isn't that much of a conversation.. ;)

Oh I must have missed the frame buffer... I wonder if nextstep supports that one?? It'd be cool to have nextstep running on the sparc!

atar said...

VooDoo_UzH_, исправил. Баг был не в моём патче, и вовсе даже в другом модуле. Там одна строчка всего. В git она ещё не вошла, наверно ближе к ночи включат.

VooDoo_UzH_ said...

После восстановления из сетевой папки разделов (образы взятые с полноценного спарка)появляется ошибка
Assertion failed: MUTEX_HELD(&svc_mutex), file rpc/svc_run.c, line 754
Только вместо оригинального c0t3d0s7 я слил все на c0t3d0s5 (в vfstab изменил c0t3d0s7 на c0t3d0s5)
С чем она может быть связана, в каком направлении искать?

atar said...

C неполной поддержкой multi-user. Пока что 2.6 - только в однопользовательском. Предыдущие могут быть лучше.

VooDoo_UzH_ said...

Да в оригинальной системе действительно порядка 6-ти зарегестрированных пользователей, а можно ли из заставить систему запускаться? (например удалением оставшихся 5-ти пользователей т.е. оставить только root)

VooDoo_UzH_ said...

А может быть что эта ошибка связана с запускающимся перед её выпадением X-server-ом? Если да то как можно его переконфигурировать под однопользовательский.
Хочется изображение выводить в ubuntu (сеть между хост-ubuntu и гость-qemu настроена).

atar said...

Чтобы работало хоть как-то надо использовать ключ -s при загрузке.

Для вывода изображения на убунту, достаточно сети и установленных на соляре библиотек Х.
Но нужно: во-первых настоить демон telnet/rsh/ssh в соляре, а во-вторых, пробросить его порт в опциях qemu. Второе описано в qemu networking howto, первое - наверно тоже где-то описано.

hadimotamedi said...

Sorry. How can I enable my qemu-system-sparc network interface (le0) for NFS mounting from the source machine?
Thank you
motamedi24@gmail.com

atar said...

Yes. It's described in the qemu networking howto. I use -net nic,vlan=0 -net user,vlan=0 .

hadimotamedi said...

I tried to make an image from one of slices on my solaris8 working machine and import it to my qemu-system-sparc running solaris26 but unsuccessful. Can you please let me know if there is straight forward procedure to accomplishing this?

hadimotamedi said...

To enable qemu networking, I tried to make use of '-net nic,model=xx -net user' but no success. So I made use of your proposed one as '-net nic,vlan=0 -net user,vlan=0' but the host cannot ping the guest. Can you please let me know what is wrong my case?

atar said...

Host can not ping guest, that's normal. To be able ping the guest you 'll have to setup the tap bridging and run qemu as root, due to the later I have never tried it. Check the qemu docs for more info.

atar said...

Make a dd copy of your Solaris 8 disk, and add it as a second disk to your qemu command line.

hadimotamedi said...

I tried as the following (according to neozeed) :
#dd if=/dev/dsk/c0t0d0s2 bs=512 count=1966080 |gzip -c>/tmp/solaris8.disk-pt1.gz
#dd if=/dev/dsk/c0t0d0s2 bs=512 count=1966080 skip=1966080 |gzip -c>/tmp/solaris8.disk-pt2.gz
And so on. But at the end, it didn't produce a valid virtual disk to be used on my qemu-system-sparc (as neozeed confirmed it). Can you please let me know if you have experienced a valid procedure for making an image from the disk ?

atar said...

Why did you have to use parts? I used

# dd if=/dev/dsk/c0t0d0s2 bs=512 of=my-sol7.img

hadimotamedi said...

Excuse me, if you use it like the following :
#dd if=/dev/dsk/c0t0d0s2 bs=512 of=my-sol7.img
Then how you import it to your qemu?
Do you try with '-hdb my-sol7.img' option? If so, then how you mount and restore it on your qemu specific folder?

atar said...

Yes. hdb is disk #1, so,

boot -rs

and then

mount /dev/dsk/c0t1d0s0 /mnt/

hadimotamedi said...

Regarding qemu networking, I followed the steps outlined in the following link :
http://www.h7.dion.ne.jp/~qemu-win/TapWin32-en.html
But still it cannot be ping . Can you please update me on how to accomplish this?

VooDoo_UzH_ said...

А можно ли надеяться, что когда-нибудь появится версия qemu в которой можно будет загружаться не в сингл моде. (или это утопическая идея?)

atar said...

Не утопическая. Если мне не надоест возиться - появится. Если появится какой-нибудь коммерческий проект, где это надо - может появиться очень быстро.

Но даже если мне и надоест - другие могут доделать. Я не официальный разработчик.

hadimotamedi said...

Sorry. Did you have success in bringing up qemu networking?

atar said...

Yes, as I wrote above the networking is working for me with
-net nic,vlan=0 -net user,vlan=0
options. Other people also reported that these options were working for them too.

hadimotamedi said...

How can I troubleshoot my case to see why the same options as you does not work my case? Can you please comment back me?

VooDoo_UzH_ said...

А могу ли я как пользователь или тестер ну или хоть каким-то образом помочь , просто ну очень хочется отвязаться от спарковского железа (стол не загромождать :) )

Jason Stevens said...

большая железа всегда весело, пока вы не получите счета за электроэнергию ... :)

atar said...

hadimotamedi, you didn't write what you are trying to accomplish, so it's pretty hard to help you.

You wrote earlier that you are trying to access your guest from the host. Is that still the case?

I'd start by checking whether you can ping your host from the guest. If not a) check Solaris documentation/forums on how to set up the networking (it's not qemu-specific) and b) check whether networking works under linux guest. When you manage to set up the simple networking for the guest (ping/telnet/ssh), go on using the qemu networking documentation (it's not Solaris-specific after this point).

atar said...

VooDoo_UzH_,

да как-то угасает у меня интерес к разработке. Чтобы вернуть его, можно

- найти образы исо, или физические диски SunOS 4.1.3, Solaris 2.0-2.1, или OS/MP (малоизвестный клон SunOS).
- найти биосы от не-саноских машинок sun4m (мечтаю увидеть биос от Эльбруса-90, там есть PCI, поэтому он был бы идеальным промежуточным шагом к 64х битным машинкам).
- подарить мне спарковский ноутбук. :)

atar said...

Neozeed, I see that google translate is making progress, but your comment is still extremely funny. You must have meant "большое железо". "большая железа" is nothing else as "a big gland". :)

Jason Stevens said...

lol now *THAT* is funny... :)

hadimotamedi said...

I need to be able to ftp files from my Windows host to my qemu guest.As another application requests, I want to telnet to my qemu guest from my Windows host. I have done it on my working solaris 8 on Sparc machine but I cannot do it on my qemu-system-sparc guest.Please help me.

atar said...

Well, as I wrote above: start from pinging your host from your guest. The other way round - the way you need it - is more complicated. It can be done as the next step.

hadimotamedi said...

To get an image from one of slices on my solaris8 working machine and import it to my qemu, I tried as the following:
#dd if=/dev/dsk/c0t0d0s3 bs=512 of=/usr01/opt8.disk
Then I imported it to my qemu, with the options:
'-hda solaris26.disk -hdb usrlocal.disk -hdc opt8.disk'
Where 'solaris26.disk' is a bootable solaris26 disk from Mr. Neozeed and 'usrlocal.disk' is the /usr/local stuff from Mr. Neozeed and 'opt8.disk' is my new one. But the output of format command just shows two disks attached, I mean /c0t0d0 & /c0t1d0 . Can you please let me know why the third virtual disk is not listed?

atar said...

As I wrote 14 posts ago, when adding a new disk to the solaris machine, you have to boot with the -r option. It's not qemu specific.

hadimotamedi said...

Sorry. Can we use qemu manager for our purpose? (I mean running solaris under qemu-system-sparc)

atar said...

I don't now. But since solaris/sparc support is new in qemu, I guess it's not in the manager yet. But check it with qemu manager folks, they should know better.

hadimotamedi said...

Sorry. for pulling files via web server by using lynx , what other stuffs are needed on qemu guest and/or win host ?

atar said...

Don't know what does it have to do with Solaris, but to transfer files with a browser (firefox, internet explorer, lynx) you need a web or ftp server on the other end.

hadimotamedi said...

I tried to make an image from the solaris8 working machine /opt folder by :
#dd if=/dev/dsk/c0t0d0s3 of=/usr01/opt8.disk
But this raw image is not being recognized when importing to qemu by '-hdb opt8.disk' option. So I converted it by :
C:\qemu-img.exe convert -O qcow opt8.disk opt8.qcow
At now, It is imported to qemu as its second virtual disk. But when I try to list its contents it is returning 'I/O error' for some of the folders inside it. What do you think about this problem?

atar said...

What does it mean "raw image is not being recognized"? I would start with it.

I'm not sure whether using qcow for a Solaris guest is a good idea: Solaris wouldn't know that the disk can grow.

hadimotamedi said...

If I use it like '-hda solaris26.disk -hdb opt8.disk' then it will return 'wrong magic number-corrupt label' but after converting to qcow format with qemu-img it will accept the second disk but returning I/O error when reading its contents.

hadimotamedi said...

I checked all of the disk formats given by qemu-img.exe but all of them will produce a disk size with grow-as-you-go expanding size. So how we can have a large disk in qemu-system-sparc running solaris? (as you said, solaris does not recognize the disk can grow)

atar said...

The whole image as-is should be fine for Solaris. Looking again at your dump command, I'd say you've taken a wrong slice. Slice 2 should be the whole disk, so do

dd if=/dev/dsk/c0t0d0s2 of=/usr01/opt8.disk

hadimotamedi said...

Sorry. How it can be done? My whole disk resides in /c0t0d0s2 which is 37GB in size (according to format command output). But I don't have any other slice with more that 15GB in size (which is my /usr01 that resides in /c0t0d0s5) so I am facing with lack of sufficient memory space to accomplish your proposed command. Can you please let me know how can I do that?

atar said...

You remember your promise not to ask obvious questions before you get the paid support, right?

So, you have the following obvious options:
- add another disk
- compress the result image while producing a dd
- read the dd man page about the bs, count, and skip options, and produce the backup sequentially
- learn how the filesystems work under Solaris, backup slices/disk label/partition table separately and then assemble them into the complete disk image manually.

hadimotamedi said...

Sorry,some issues seem to be just qemu specific. For example, i have created a 20GB disk and formatted/partitioned/labeled it but i cannot newfs it. Can you please let me know how to solve such issues?

Brent said...

Solaris 2.6 installs rather nicely from CD to disk, and it does come up fine in single-user. So far, it looks like it can get pretty close to a normal multi-user boot.

This error, which was mentioned earlier in this thread, is from automountd:

Assertion failed: MUTEX_HELD(&svc_mutex), file rpc/svc_run.c, line 754

However, once, after starting autofs again, it actually worked (yes, with NFS automounts)! This is apparently rare, however.

The syslog and lp startup scripts hang.

volmgt panics:
volume management starting.
# signal fault in critical section
signal number: 11, signal code: 1, fault address: 0xef750050, pc: 0xef7d58c8, sp: 0xefffe500
libthread panic: fault in libthread critical section (PID: 317 LWP 1)
stacktrace:
ef789908
...

dmi gives the following messages:
Run-time error, libC:
Trying to release a lock that was not acquired in this thread
Abort - core dumped
Run-time error, libC:
Trying to release a lock that was not acquired in this thread

To get a sort of multiuser boot going, you apparently need to move S73nfs.client, S74autofs, S74syslog, and S80lp out of the way. It will boot all the way to the login prompt.

Brent said...

FYI, attempting to boot the Solaris 7 install CD results in the following:

Begin traceback... sp = fbe25ca0
Called from f5b355c8, fp=fbe25d00, args=f5bd1000 f5b2d000 f02690c8 f0269108 f026a344 f005e4b0
Called from f00979c8, fp=fbe25d60, args=f5bd1000 f5b2d000 20 0 0 4400ae5
Called from f0097ad4, fp=fbe25dc0, args=f5928550 f5928d70 11ce f5928570 0 80000000
Called from f005e668, fp=fbe25e20, args=f5928550 f5928564 f026f7f0 f026f7f0 0 4800ae2
Called from f0097a8c, fp=0, args=f5928550 0 0 0 0 0
End traceback...
sched: Data fault
kernel read fault at addr=0x78400020, pme=0x0
MMU sfsr=36: Bus Access Error on supv data fetch at level 0
pte addr = 0xf597c1e0, level = 1
pid=0, pc=0xf5b35678, sp=0xfbe25ca0, psr=0x44000c2, context=0
g1-g7: f5bcb240, f5bcb240, f5c5ce34, ffffffff, 0, 1, fbe25e80
panic: trap: unexpected MMU trap

atar said...

Hi Brent,
Long time no see! Nice to know that you are still here.

I investigated the problem with Solaris 7+ a while ago, and forgot to write about it. To me it looks like a Solaris bug. Will get back to it later.

atar said...

hadimotamedi,

what error message do you get from newfs?

hadimotamedi said...

I tried as :
#newfs /dev/rdsk/c0t1d0s0
Then it returned :
'newfs:construct a new file system /dev/rdsk/c0t1d0s0:(y/n)?#'
So I don't see it waiting for me to enter 'y'. It just displays the prompt and then return back to system prompt.Can you please let me know how to overcome?

hadimotamedi said...

I asked on solaris mailing list and they told me to use Putty and issue as the following :
#bash
#export TERM=vt100
But the situation is still the same.

atar said...

Anything interesting in the system log? Tried to run it in verbose mode (-v option)?

hadimotamedi said...

I tried to run it as 'newfs -v \dev\rdsk\c0t1d0s0' but the same happens. It just shows the prompt without letting me to enter 'y' and returning to system prompt.

hadimotamedi said...

Can you please give me a hint?

atar said...

Can you try using a smaller disk? I've never had any problems with the sun2.7G type disks.

Victor aker said...

First off, let me say that this blog is a LIFESAVER. We're currently migrating away from solaris but still have some legacy applciations that are off maintenance but still required for the day to day operations (yay for license servers!). If we can get this legacy stuff to work under an emulated SS5 running Solaris 2.6, then our lives will become so much simpler.

One (possibly silly) question I have is about spoofing the hostid. The software mentioned above uses the hostid to determine if it is even permitted to run. How does one change the hostid? Is there a switch I can throw when starting up the emulator? Failing that, where would I find it in the source?

atar said...

I think the hostid is created like machine_id + mac address. So it should be changeable via command line option.

Is it a big migration project? Are you interested in consulting? Can you tell more about what legacy software are you trying to keep alive? I'll turn off automatic showing up of comments, if you don't like to make it public.

hadimotamedi said...

Sorry , where can I find sun2.7G type disks? (I have just solaris26.disk received from Mr. Neozeed)

atar said...

In the 'format' utility you can specify a pre-defined disk type.

atar said...

Victor, with the machine_id I meant just the first byte. Most probably it makes a little sense to change it, since OBP won't boot if it doesn't recognize the machine.

As for the rest of the hostid, it happens in line 218 in hw/sun4m.c and line 73 in hw/firmware_abi.h.

The -nvram option is ignored in sparc, afaik. Looking at the hw/firmware_abi.h I'd say that the hostid part which comes after the mac address is never set.

The patch (or a disprove) is welcome.

Victor Aker said...

Funny, I was rooting in the source code and after thinking I found it (which you have confirmed, thanks!), I was thinking to myself "you know, I really should add that functionality and submit it" :)

I strongly believe that it is a necessary feature because there is a lot of proprietary code out there which uses the Hostid as a hardware lock of sorts. As an example, our license servers are locked down by hostid.

As soon as I verify that the old license servers will even run, then I can justify the time to work on a patch.

totoche said...

i have installed the SunOS 5.5 system under Qemu with help of your precious but I can not configure network, did you have any information for this subject?

atar said...

I didn't test the networking in every Solaris version (and didn't test 2.5 at all - I don't have it), but in 2.6 I was able to do it with the standard ifconfig command. Can you be more specific on what you do and what fails?

Victor aker said...

I have solaris 2.5.1 running with networking as well as the NIS client, autofs and DNS. What problems are you having?

totoche said...

Good evening,
I'm using qemu 0.13.50 on Windows.

I use the cmd line (default "user" networking options):
qemu-system-sparc.exe -k fr -M SS-5 -m 256 -bios ss5-170.bin -startdate "2010-04-19" -nographic -serial mon:telnet:127.0.0.1:2023,server,nowait -hda solaris-2.5.img

I have configured defaultrouter with 10.0.2.2 and dns with 10.0.2.3 (resolv.conf).

Boot traces:
ok boot disk0
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@0,0 File and args:
SunOS Release 5.5 Version Generic [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1995, Sun Microsystems, Inc.
WARNING: TOD clock not initialized -- CHECK AND RESET THE DATE!
configuring network interfaces: le0.
Hostname: sunos55
The system is coming up. Please wait.
checking ufs filesystems
/dev/rdsk/c0t0d0s3: is clean.
/dev/rdsk/c0t0d0s5: is clean.
/dev/rdsk/c0t0d0s7: is clean.
starting routing daemon.
starting rpc services: rpcbind keyserv kerbd done.
Setting netmask of le0 to 255.255.255.0
Setting default interface for multicast: add net 224.0.0.0: gateway sunos55
syslog service starting.
Print services started.
volume management starting.
The system is ready.

# ifconfig -a
lo0: flags=849 mtu 8232
inet 127.0.0.1 netmask ff000000
le0: flags=863 mtu 1500
inet 10.0.2.15 netmask ffffff00 broadcast 10.0.2.255
ether 52:54:0:12:34:56

# ping 10.0.2.2
10.0.2.2 is alive
# ping 10.0.2.15
10.0.2.15 is alive
# ping 10.0.2.3
^C#

# netstat -ar

Routing Table:
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
10.255.255.255 sunos55 UHB 0 0 le0
10.255.255.255 sunos55 UHB 7 0 le0
10.0.0.0 sunos55 UHB 0 0 le0
10.0.0.0 sunos55 UHB 7 0 le0
255.255.255.255 sunos55 UHB 0 0 le0
255.255.255.255 sunos55 UHB 7 0 le0
0.0.0.0 sunos55 UHB 0 0 le0
0.0.0.0 sunos55 UHB 7 0 le0
10.0.2.2 -- UHA 1 1 le0
localhost localhost UH 0 0 lo0
10.0.2.3 -- UHA 1 20 le0
10.0.2.0 sunos55 UHB 0 0 le0
10.0.2.0 sunos55 UHB 7 0 le0
sunos55 -- UHL 0 5 le0
10.0.2.255 sunos55 UHB 0 0 le0
10.0.2.255 sunos55 UHB 7 0 le0
10.0.2.0 sunos55 U 3 2 le0
224.0.0.0 sunos55 U 3 0 le0

The DNS server seems not responding.

What configuration should I use for the virtual machine connects to the outside (internet)?
Is this a hardware problem?
I do not know where to look!

Thank you very much for your help.

Jason Stevens said...

don't forget to edit nsswitch.conf

Ben said...

Has anyone figured out any workarounds/hacks to prevent automountd from crashing with this message in Solaris 2.6?

Assertion failed: MUTEX_HELD(&svc_mutex), file rpc/svc_run.c, line 754

Right now I can only get autofs to work sporadically, and every time a new directory is automounted automountd could potentially crash again.

Victor Aker said...

totoche: I believe you need to specify "-net nic" when running the VM.

hadimotamedi said...

I tried to specify a pre-defined disk type for it (from the format utility) but still the newfs is returning the same for it without letting me to enter the 'y' in its response and it cannot be mounted either. Please help me.

atar said...

Just do it the way Neozeed described here: http://virtuallyfun.blogspot.com/2010/10/formatting-disks-for-solaris.html

hadimotamedi said...

Everything is going ok , except for the 'ok>boot disk2:d -vs' that is not successful my case. The only successful option my case is 'ok>boot cdrom -b' but after that the format command does not see any attached disk. Can you please let me know what is wrong my case?

Victor E. Aker said...

Looks like the latest code is broken :/

[root@bby1fauxsparc01 qemu]# ./configure --target-list=sparc-softmmu
Install prefix /usr/local

..snip..

spice support no
[root@bby1fauxsparc01 qemu]# make
GEN sparc-softmmu/config-devices.mak
GEN config-all-devices.mak

..snip..

CC libhw64/virtio-9p-debug.o
CC libhw64/virtio-9p-local.o
cc1: warnings being treated as errors
/usr/export/home/sparc/qemu/hw/virtio-9p-local.c: In function ���local_utimensat���:
/usr/export/home/sparc/qemu/hw/virtio-9p-local.c:485: warning: implicit declaration of function ���utimensat���
/usr/export/home/sparc/qemu/hw/virtio-9p-local.c:485: warning: nested extern declaration of ���utimensat���
make[1]: *** [virtio-9p-local.o] Error 1
make: *** [subdir-libhw64] Error 2
[root@bby1fauxsparc01 qemu]#

disabling werror gets you a bit further:

[root@bby1fauxsparc01 qemu]# make
GEN config-host.h
GEN trace.h
GEN trace.c
CC libhw64/virtio-9p-local.o
/usr/export/home/sparc/qemu/hw/virtio-9p-local.c: In function ���local_utimensat���:
/usr/export/home/sparc/qemu/hw/virtio-9p-local.c:485: warning: implicit declaration of function ���utimensat���
/usr/export/home/sparc/qemu/hw/virtio-9p-local.c:485: warning: nested extern declaration of ���utimensat���
CC libhw64/virtio-9p-xattr.o
CC libhw64/virtio-9p-xattr-user.o

..snip..

CC sparc-softmmu/vhost_net.o
CC sparc-softmmu/virtio-9p.o
/usr/export/home/sparc/qemu/hw/virtio-9p.c: In function ���v9fs_setattr_post_chmod���:
/usr/export/home/sparc/qemu/hw/virtio-9p.c:1425: error: ���UTIME_NOW��� undeclared (first use in this function)
/usr/export/home/sparc/qemu/hw/virtio-9p.c:1425: error: (Each undeclared identifier is reported only once
/usr/export/home/sparc/qemu/hw/virtio-9p.c:1425: error: for each function it appears in.)
/usr/export/home/sparc/qemu/hw/virtio-9p.c:1428: error: ���UTIME_OMIT��� undeclared (first use in this function)
/usr/export/home/sparc/qemu/hw/virtio-9p.c: In function ���v9fs_wstat_post_chmod���:
/usr/export/home/sparc/qemu/hw/virtio-9p.c:2920: error: ���UTIME_OMIT��� undeclared (first use in this function)
make[1]: *** [virtio-9p.o] Error 1
make: *** [subdir-sparc-softmmu] Error 2
[root@bby1fauxsparc01 qemu]#

atar said...

In general, please submit the build breakage reports to the mailing list, that would help to get the fix much faster.

In this particular case, try disabling virtio (it won't be used anyway), or applying the patch "virtio-9p: fix build on !CONFIG_UTIMENSAT v2" from Hidetoshi.

Victor E. Aker said...

Patch applied and all is well. I guess my RHEL environment doesn't play nice with cutting edge code.

As an aside, I have a quick and dirty hack for anyone who wants to specify the hostid. It isn't overly pretty, but its small and unobtrusive. It basically sets the hostid as the last 3 digits of the mac address. This negates the need to do hostid spoofing with the legacy code we're trying to migrate over.

[root@bby1fauxsparc01 hw]# cat firmware_abi.h.patch
60a61,65
> uint8_t hostid[3];
>
> hostid[0]=macaddr[3];
> hostid[1]=macaddr[4];
> hostid[2]=macaddr[5];
63a69
> memcpy(&header->hostid, hostid, 3);

VooDoo_UzH_ said...
This comment has been removed by a blog administrator.
atar said...

>ссылка

Спасибо, видел, но не доверяю. И уже купил диск на е-бэе.

>запустить таки этот пылесос :) без сингл мода

Лучше скажи, для чего тебе этот пылесос без сингл мода. Неужели есть какие-то приложения, которые работают только под спарковой солярой и не имеют аналогов для интеловой/линукса/винды?

Mark T said...

Hi,

Has anyone figured out how to get a fully working Solaris 2.6 emulation going yet? I'm hitting two issues already mentioned:

Run-time error, libC:
Trying to release a lock that was not acquired in this thread

and

Assertion failed: MUTEX_HELD(&svc_mutex), file rpc/svc_run.c, line 754

The first appears to be the most serious though as I can install iPlanet 4.1 web server. I've now tried qmeu 0.13 on SLES11, Red Hat 5.5 and Windows XP. All do the same thing.

Anyone? I'd really appreciate any help you guys can offer.

Mark

Jason Stevens said...

I think I've run it before just kill syslogd and don't install NFS.....

Although It's been a while, but now I have a need for some old solaris so I guess we'll see.

Mark T said...

Hi Neozeed,

I've tried disabling a lot of start scripts and it will boot up ok. Thr trouble is I get the "Run-time error, libC" when I try and install iPlanet 4.1 web server too. Is there any fix for that?

Mark

atar said...

I have a solution, but can not make it public open-source yet. The current plan is to make the sparc32 stuff free when I'm done with a non-free sparc64 emulation.

If you are interested in buying the support for sparc32 version - let me know.
The sparc64 version needs a few months, but I'm considering pre-orders for it too. :)

Victor Aker said...

Can you email me the cost of the Sparc64 stuff, and whether it will run Solaris 2.8 or 2.10?

Unknown said...

Anybody tried to install Solaris 10 SPARC on Linux or Windows yet? I tried but it would not boot. Here is my command:

$qemu-system-sparc64 -hda sparctest -cdrom sol-10-u9-ga-sparc-dvd.iso -m 256 -boot d

sparctest is the new disk image. Output shows it tried to boot with OpenBIOS, then shows "0 >" and stops there.

Any help would be appreciated.

atar said...

qemu-system-sparc64 currently can't boot anything except HelenOS. Even Linux is not supported yet.

Sirou said...

Hello, please sorry my bad english.

I would like install 5.6 but i don't find any iso on internet, only a 5.7.

i follow this guide :http://virtuallyfun.blogspot.com/2010/10/formatting-disks-for-solaris.html
to format a hdd image.
Then i tried to install 5.7 sunos.
Start with the install process but always hang in the next part:
Enter 'y' to apply these values and proceed to the next stage of the
installation, or 'n' to return to the beginning and make changes (y/n): y
keyserv: failed to generate host's netname when establishing root's key.

does Anybody could install 5.7 or know where to get a 5.6 iso to try other version?
Im using 0.14 qemu
thanky ou very much.

Anonymous said...

"To be able to boot from a hdd image, add the following line to the /etc/system on the hard drive:
set scsi_options=0x58

Normally during the Solaris installation process the hard drive is mounted under /a, so it can be done with
# cat >> /a/etc/system
set scsi_options=0x58
^d "
Hi!

Where to enter these commands?

atar said...

Installation asks whether you want a restart at the end of the process. "Just say no". After the installation you'll land in the command prompt. There you can input these commands.

Unknown said...

Hello Mr.Atar,

I am from romania and excuse me for my bad english!I have a question:it is a way to boot under sparc-QEMU a hard disk image which contain SunOS 5.6 (Solaris)? The hard disk image is provided from a sparc station 5.Or exist a possibility to virtualize this HDD image?
Best regards

Geza

atar said...

Yes, it can be booted (in a single user mode).

Unknown said...

Thank you very much,I will try somehow....

Geza

the great quux said...

first of all - this is awesome.
second of all... i'm sooooo close to booting from a hard disk image. I've installed Solaris 2.6, and if i boot from the CD I can see and mount the disk. but I cannot boot from the disk.
probe-scsi-all sees the disk just fine:

ok probe-scsi-all
/iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000
Target 0
Unit 0 Disk QEMU QEMU HARDDISK 0.14
Target 2
Unit 0 Removable Read Only device QEMU QEMU CD-ROM 0.14

but when booting, it cannot see the bootblk.

ok boot disk0
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@0,0 File and args:
bootblk: can't find the boot program
Program terminated

i've tried re-installing the bootblk but still cannot get to work. trying both SS-5 2.15 and 2.29 OBP.

is this a known issue?

atar said...

Hmm, that's strange. It should boot from HD just fine. Are you sure your HD image is bootable? Are you using 0.14 or the current git snapshot?

the great quux said...

Using both 0.14 and the current git snapshot (VERSION file says 0.14.50) I get the same message -- bootblk: can't find the boot program. I tried the suggestion for this message at http://adminschoice.com/booting-problems-in-solaris (recopying ufsboot) but this did not fix it). Anyway to get you more information from qemu? I could also just wait until the OpenBIOS patches are in and see if that helps.

the great quux said...

booting with OpenBIOS also gives me the exact same message - not sure why, maybe something is wrong with my image. the bootblk loads, but cannot find or load ufsboot. is qcow2 format OK?


Configuration device id QEMU version 1 machine id 32
CPUs: 1 x FMI,MB86904
UUID: 00000000-0000-0000-0000-000000000000
Welcome to OpenBIOS v1.0 built on Jan 30 2011 08:49
Type 'help' for detailed information
Trying disk...
Not a bootable ELF image
Loading a.out image...
Loaded 7680 bytes
entry point is 0x4000
bootpath: /iommu/sbus/espdma/esp/sd@0,0

Jumping to entry point 00004000 for type 00000005...
switching to new context:
bootblk: can't find the boot program
halt, power off

Jason Stevens said...

quux see if you can boot this image...

http://vpsland.superglobalmegacorp.com/install/qemu/solaris24minimal.disk.gz

the great quux said...

@Neozeed - yep, that image boots up just fine. Not sure what I did wrong - I followed your instructions for creating that 36GB image pretty exactly, except I did not use a Solaris 8 format since Solaris 2.6 format seemed to work just fine, and I can mount it from the CD and install Solaris 2.6 on it and stuff. Perhaps I will try again with a Solaris 8 format. Thanks for the disc, and I was checking out your blog before, it was really cool!! :)

the great quux said...

Well even the Sol8 format with a new 36G disk did not work. Since I booted Sol2.4 from neo's disk I tried using it to install Sol2.6 (wiping out the entire disk) and it actually worked and booted Sol2.6 (with start scripts disabled and the libC errors).

@atar - what is the cost of the sparc32 support, and does that allow it to boot sol2.6 with everything enabled?

atar said...

Yes, if "everything" means the server apps. The local graphics adapter is not implemented (I haven't got urge for it). Otherwise, yes, since it can run Java 1.4 and Oracle under Solaris 9, it should be able to run any server app under Solaris 2.6. Can you drop me a line? atar4qemu@gmail.com

the great quux said...

I figured out that sun4m architecture has a limitation of 2GB on the root slice. Once I installed Solaris 2.6 or Solaris 8 with that in mind, it boots just fine from my own 36GB disk! I have Solaris 2.6 booting using the SS-5 firmware (and many rc2.d's commented out), and Solaris 8 booting using OpenBIOS trunk, and both using QEMU trunk. There are some bumps along the way and certain things do not work (the machine will sometimes not boot, certain programs will behave unexpected) but it's excellent for historical interest.

Jason Stevens said...

Signed 32 bit integers strike back!

Anonymous said...

Thanks for this site!
Is there a public solution for Solaris 2.6 boot message:
Run-time error, libC:
Trying to release a lock that was not acquired in this thread
Abort - core dumped
Run-time error, libC:
Trying to release a lock that was not acquired in this thread
The system is ready.

Unknown said...

Amazing progress here:

I am hitting the MMU trap issue, booting a Solaris 8 CDROM image:

panic[cpu0]/thread=fbe35e40: trap: unexpected MMU trap

Is there a fix for this? or is it still an outstanding issue?

atar said...

What are the qemu, OBP (or OpenBIOS) versions and Solaris patch level (there were a few Solaris 8 distributions, so just "8" doesn't identify it good enough)?

What is your boot command?

Can you give more context what happens just before the panic?

Unknown said...

Thanks for looking.

QEMU PC emulator version 0.12.4, Copyright (c) 2003-2008 Fabrice Bellard

running strings on the CD image yields: multi_ICD_SOL_8_202_SPARC

invocation command:
./qemu/sparc-softmmu/qemu-system-sparc -bios ss5.bin -nographic -L . -hda 36GB.disk -m 256 -M SS-5 -cdrom Solaris_2.8_1.iso

Unknown said...

sorry additional info:

Boot command: boot disk2:d -vs

error context:


audiocs0 at sbus0: SBus slot 4 0xc000000 SBus level 5 sparc ipl 9
audiocs0 is /iommu@0,10000000/sbus@0,10001000/SUNW,CS4231@4,c000000
pseudo-device: lofi0
lofi0 is /pseudo/lofi@0
pseudo-device: fcp0
fcp0 is /pseudo/fcp@0
|
panic[cpu0]/thread=fbe35e40: trap: unexpected MMU trap

fbe35a88 unix:get_fault_type+3b8 (5, fbe35b7c, 78400020, f0258328, 1, 9)
%l0-7: 044000c7 00000036 fbe35c04 00000002 00000004 00000004 00000007 00000000
fbe35b00 unix:trap+728 (0, fbe35c04, 78400020, f02583a8, 0, 0)
%l0-7: 00000000 00000000 fbe35c04 00000009 00000036 00000001 00000007 f02ac080
fbe35ba8 unix:fault+84 (f5e76020, f0250eb4, fbe35e40, f024fd7c, 0, 48000e2)
%l0-7: 044000c1 f5e740e8 f5e740ec 00000040 00000009 00000002 f024fd18 fbe35ba8
fbe35c50 le:le_rx_timeout+20 (f5be9800, f5be9800, ffffffff, f024fd18, f024fd58, 200)
%l0-7: 044000c2 f005b8e4 f009e420 00000010 00000020 00000020 00000007 00001000
fbe35cb0 le:le_watchdog+a4 (f5bb9800, f5be9800, 20, 0, 0, 0)
%l0-7: 044000c3 f009e424 f00625c4 00000020 00000040 00000040 00000007 00000001
fbe35d10 genunix:callout_execute+84 (f59a5000, f59a5820, 1336, f59a5020, 8, 80000000)
%l0-7: f5e73f94 f59a5cf8 00001336 bffff338 f5ee4910 f59a5000 00000007 f0276800
fbe35d70 genunix:taskq_thread+188 (f5a13f08, 0, f02583a8, 10000, f5a13f36, f5a13f54)
%l0-7: f0099ce0 f5a13f34 f5a13f30 f5a12fb0 f5a13f08 f5a13f28 00000000 f0276800

syncing file systems... done

atar said...

Have you read the how-to?

"The qemu version 0.13+ is capable of booting Solaris. Nevertheless some bugfixes or features are only included in the "bleeding edge", a.k.a git master."

Unknown said...

Thanks! I did read but missed that point. I'll give it a try.

Unknown said...

opps I incorrectly reported the qemu version that I was running:

QEMU emulator version 0.13.50, Copyright (c) 2003-2008 Fabrice Bellard

atar said...

That's interesting. Try qemu 0.14.1 and if it makes no difference please try the le trick.

Nigel Horne said...

I just tried it with the latest GIT Qemu and Solaris-10, but it failed for me:

njh@packard:~/qemu/solaris-10-sparc$ qemu-system-sparc -M SS-5 -bios /usr/local/share/qemu/ss5.bin -nographic -cdrom sol-10-u9-ga-sparc-dvd.iso

Power-ON Reset

$$$$$ WARNING: No Keyboard Detected! $$$$$
MMU Context Table Reg Test
MMU Context Register Test
MMU TLB Replace Ctrl Reg Tst
MMU Sync Fault Stat Reg Test
MMU Sync Fault Addr Reg Test
MMU TLB RAM NTA Pattern Test
ERROR : Address= 000000fc, exp= 07ffffdc, obs= 00000000, xor= 07ffffdc
initializing TLB
initializing cache

Allocating SRMMU Context Table
Setting SRMMU Context Register
Setting SRMMU Context Table Pointer Register
Allocating SRMMU Level 1 Table
Mapping RAM
Mapping ROM

ttya initialized
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 32 Megabytes
Probing Memory Bank #3 32 Megabytes
Probing Memory Bank #4 Nothing there
Probing Memory Bank #5 Nothing there
Probing Memory Bank #6 Nothing there
Probing Memory Bank #7 Nothing there
Incorrect configuration checksum;
Setting NVRAM parameters to default values.
Setting diag-switch? NVRAM parameter to true
Probing CPU FMI,MB86904
Probing /iommu@0,10000000/sbus@0,10001000 at 5,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 SUNW,CS4231 power-management
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 Nothing there
screen not found.
Can't open input device.
Keyboard not present. Using tty for input and output.
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 32 Megabytes
Probing Memory Bank #3 32 Megabytes
Probing Memory Bank #4 Nothing there
Probing Memory Bank #5 Nothing there
Probing Memory Bank #6 Nothing there
Probing Memory Bank #7 Nothing there
Incorrect configuration checksum;
Setting NVRAM parameters to default values.
Setting diag-switch? NVRAM parameter to true
Probing CPU FMI,MB86904
Probing /iommu@0,10000000/sbus@0,10001000 at 5,0 espdma esp sd st SUNW,bpp ledma le
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 SUNW,CS4231 power-management
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 Nothing there

SPARCstation 5, No Keyboard
ROM Rev. 2.15, 128 MB memory installed, Serial #0.
Ethernet address 52:54:0:12:34:56, Host ID: 80000000.



Boot device: /iommu/sbus/ledma@5,8400010/le@5,8c00000 File and args:
Internal loopback test -- Wrong packet length; expected 36, observed 64

Can't open boot device

Type help for more information
ok

Jason Stevens said...

That looks normal. Now you just have to tell it to boot something.

«Oldest ‹Older   1 – 200 of 361   Newer› Newest»