GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

About Qemu-system-ppc, a PPC Mac emulator for Windows, macOS and Linux that can run Mac OS 9.0 up to Mac OS X 10.5

Moderators: Cat_7, Ronald P. Regensburg

LightBulbFun
Tinkerer
Posts: 50
Joined: Mon Jul 13, 2015 11:32 am

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by LightBulbFun »

claunia wrote:Thanks,

From source (qemu-git-90f54472f407f1d0ad0ccab6f59d65b286f269b2) with the OpenBIOS and OF OptionROM you sent me things change as following:

BeOS on 8 bit color: "Couldn't allocate system memory for device tree. Try quitting some applications to free up memory."
BeOS on 16 bit color: blank screen
AmigaOS: hangs without error message (regression)
MorphOS: same error messages
Rhapsody: same error messages
OS X 1.0 Server, 1.1 Server: same error messages
OS X 1.2 Server: booting cd:,\\:tbxi crashes QEMU, cd:%BOOT same error
DP: same error messages
DP2, DP3: cd:,\\:tbxi crashes qemu, cd:9,\\:tbxi hangs on happy mac
DP4: cd:,\\:tbxi boot OS 9 based installed, cd:9,\\:tbxi hangs on happy mac
Public Beta: "Still waiting for root device"
8.5, 8.5.1, 8.6, 8.7 same errors
OS X 10.0 and 10.1 now boot and install
with the DP2 3 etc i have found that using the default CPU option of G4 causes it to hang at the happy mac using a G3 CPU lets them boot up
mcayland
Mac Mechanic
Posts: 152
Joined: Sun Nov 01, 2015 10:33 pm

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by mcayland »

Hi claunia,

Lots here but I'll do my best...
claunia wrote:Thanks,

From source (qemu-git-90f54472f407f1d0ad0ccab6f59d65b286f269b2) with the OpenBIOS and OF OptionROM you sent me things change as following:
Since QEMU 2.7 is about out the door, many of Ben's fixes aren't upstream yet due to freeze. If you want to match the pre-built OS X binaries from this site then probably the best place to go is dgibson's ppc-for-2.8 branch at https://github.com/dgibson/qemu/commits/ppc-for-2.8 which is mostly up to date.
claunia wrote: BeOS on 8 bit color: "Couldn't allocate system memory for device tree. Try quitting some applications to free up memory."
BeOS on 16 bit color: blank screen
AmigaOS: hangs without error message (regression)
MorphOS: same error messages
MorphOS... there was a thread about on the OpenBIOS list last year. Short version: the MorphOS writers made several mistakes in their boot code using real addresses where they should have used virtual addresses. Not that this was noticed on real Apple OF since the MMU is disabled by default, however it breaks OpenBIOS which currently only runs in virtual mode.
claunia wrote: Rhapsody: same error messages
OS X 1.0 Server, 1.1 Server: same error messages
OS X 1.2 Server: booting cd:,\\:tbxi crashes QEMU, cd:%BOOT same error
These look like simple Forth errors. If you head over to the OpenBIOS list I'm sure we can fix these without too much difficulty.
claunia wrote: DP: same error messages
DP2, DP3: cd:,\\:tbxi crashes qemu, cd:9,\\:tbxi hangs on happy mac
DP4: cd:,\\:tbxi boot OS 9 based installed, cd:9,\\:tbxi hangs on happy mac
I think someone in this thread commented that DP worked? But you need the ppc-for-2.8 branch plus the new OpenBIOS ROM with the driver.
claunia wrote: Public Beta: "Still waiting for root device"
I bet this is the same problems with the Forth in the DP (which looks like it is failing to read a sector from disk). Again I don't think solving this will be too hard if you don't mind joining the OpenBIOS list.
claunia wrote: 8.5, 8.5.1, 8.6, 8.7 same errors
I did try and enable the /rtas node in OpenBIOS earlier in this thread, however it seems OS 8.5 is looking for an "nvram-fetch" token or similar which hasn't been implemented yet. Contributions welcome ;)
claunia wrote: OS X 10.0 and 10.1 now boot and install
Excellent :D
mcayland
Mac Mechanic
Posts: 152
Joined: Sun Nov 01, 2015 10:33 pm

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by mcayland »

LightBulbFun wrote: with the DP2 3 etc i have found that using the default CPU option of G4 causes it to hang at the happy mac using a G3 CPU lets them boot up
Hmmm is that not resolved by the latest ppc-for-2.8 branch at https://github.com/dgibson/qemu/commits/ppc-for-2.8?
LightBulbFun
Tinkerer
Posts: 50
Joined: Mon Jul 13, 2015 11:32 am

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by LightBulbFun »

mcayland wrote:
LightBulbFun wrote: with the DP2 3 etc i have found that using the default CPU option of G4 causes it to hang at the happy mac using a G3 CPU lets them boot up
Hmmm is that not resolved by the latest ppc-for-2.8 branch at https://github.com/dgibson/qemu/commits/ppc-for-2.8?
i was just testing it out on the QEMU Pre2.8 binaries posted here (have yet to play with compiling my own when i saw progress was made with the Video card i had to have a play :) )
WizKid
Tinkerer
Posts: 72
Joined: Sun Jul 31, 2016 11:58 pm

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by WizKid »

Seems like qemu isn't properly giving the guest OS an IP address:

Image

Tried with the two following command lines, same result:

Code: Select all

qemu-system-ppc-28pre-vga -bios ./openbios-qemu-vga.elf -boot c -M mac99 -m 512 -prom-env 'auto-boot?=true' -prom-env 'boot-args=-v' -netdev user,id=MacOS,net=10.0.2.0/24,dhcpstart=10.0.2.10 -device rtl8139,netdev=MacOS -drive file=macos9.raw,format=raw,media=disk -drive file=iso/macos-922.iso,format=raw,media=cdrom
and

Code: Select all

qemu-system-ppc-28pre-vga -bios ./openbios-qemu-vga.elf -boot c -M mac99 -m 512 -prom-env 'auto-boot?=true' -prom-env 'boot-args=-v' -netdev user,id=network0 -device rtl8139,netdev=network0 -drive file=macos9.raw,format=raw,media=disk -drive file=iso/macos-922.iso,format=raw,media=cdrom  

Doesn't matter if it's DHCP or static, still doesn't work.

Have tried specifiying the same dynamically-assigned IPs as static, same result. Even tried different client IP (.128) same result.

Also, that looks like an invalid name server ip. Looks more like a multicast IP address.

Using WhatRoute 1.7 (included with Mac OS 9) to test connectivity.
Last edited by WizKid on Thu Aug 04, 2016 4:24 pm, edited 1 time in total.
claunia
Space Cadet
Posts: 3
Joined: Wed Aug 03, 2016 2:49 am

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by claunia »

Hi mcayland,

I can't help you with patches, I'm busy with other projects, I can only provide you with testing and if you need something from a real machine, I have one of each PowerPC Macintosh models but a few.

With the git you told me to use everything returns to my first test results, but =>10.0, those keep working.
Darwin 1.0 now boots from HDD, manually (boot hd:7,\\:tbxi)
MkLinux now shows some kernel messages, but still hangs.
LightBulbFun
Tinkerer
Posts: 50
Joined: Mon Jul 13, 2015 11:32 am

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by LightBulbFun »

playing with the networking 2.7rc0 build from http://www.emaculation.com/forum/viewto ... =34&t=9012 I can confirm that networking is working in 10.4.11 using built in drivers for the rtl8139 NIC. also seems like USB might be working tho when i tried attaching a USB sound card while it showed up in USB devices in system profiler OS X did not recognise it as a sound device in system preferences

Image

Image

Image

btw this is my cmd-line

Code: Select all

./qemu-system-ppc27 -bios ./openbios-qemu-busmaster.elf -boot c -M mac99 -m 512 -prom-env 'auto-boot?=false' -prom-env 'boot-args=-v' -netdev user,id=network0 -device rtl8139,netdev=network0  -drive file=/Volumes/Storage/OS-images/OSX-604-10.4.img,format=raw,media=disk -g 1024x768x32 -cpu 750 -usb -device usb-audio
WizKid
Tinkerer
Posts: 72
Joined: Sun Jul 31, 2016 11:58 pm

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by WizKid »

Seems like there's a regression in the 2.8 preview zip file, because no matter what I try I can't get networking to work. Even if I specify the same IP info that the DHCP server assigns in 2.7, it still doesn't work:

IP: 10.0.2.15
Netmask: 255.255.255.0
Gateway: 10.0.2.2
Nameserver: 10.0.2.3

2.8pre assign the 169 address via DHCP as in my previous post.

Seems like there's a regression. Don't know if it's fixed in the latest trunk, though.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by Cat_7 »

That's why you should use qemu and bios from the download in this topic:

http://www.emaculation.com/forum/viewto ... 104#p52104

There is now also a build from the 28pre branch supporting VGA/Resolution/color depth switching. It supports networking when used in combination with the openbios from the Qemu27 download. See the same topic.

Best,
Cat_7
Programmingkid
Apple Corer
Posts: 243
Joined: Sun Jan 31, 2016 6:01 pm

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by Programmingkid »

kataetheweirdo wrote: With SDL on in 64-bit Windows 10 and using any OpenBIOS image, the mouse is completely unusable. The mouse can move very erratically for a few seconds and then stops dead in its tracks. Often, that behavior is moving in a random direction and in a certain distance for every mouse movement. Eventually, I can't control the cursor anymore.

I think it might be the mouse drivers, as I see three of them - a Dell Touchpad and two HID-compliant mice. Keyboards is just as bad with five keyboard drivers loaded in - HID Keyboard Device, eHome MCIR 109, eHome MCIR, eHome Remote Control, and Standard PS2. I'm not sure how QEMU handles these and I (not so fondly) recall this being a potential issue in DOSBox (which does use SDL).

Disabling all the mouse drivers except for the Dell Touchpad results in a mouse is controllable for a brief period of time (under 5 seconds), but the cursor quickly becomes uncontrollable.

It should be noted I've been testing QEMU on a laptop computer older than 5 years. With this in mind, QEMU does run rather slow, though it should not make a difference as to how the mouse is handled.

I'll be trying this out further with other ROMs when this is possible, extracted from actual Macintoshes.

As for the OpenBIOS list on the unimplemented registers, I was referring to resolving the invalid SPR errors the PPC emulation was encountering.

I did find a USB-to-Serial driver for Mac OS Classic, but I'm not sure if I should test Mac OS 9 with that yet. I also am trying to figure out how to disable serial through the command line. It is possible that differences between the streams QEMU typically outputs/inputs and Open Transport's streams are causing conflicts in regularly booting the system up.

I don't see any distinguishing between Port B and DDRB in QEMU's CUDA code, although I will need to do more research on the CUDA, if possible. Something to note is that these may rely on PowerPC instruction eieio.

All of my trace files looks something like this now (this is the raw hex for the trace files):
FF FF FF FF FF FF FF FF B4 29 A4 0A CB 77 B1 F2 03 00 00 00 00 00 00 00
I think I have a fix for this problem. My patch doesn't solve the problem 100%. It does make things considerably more usable. All it does is increase the time between polling cycles. My guess is some kind of race condition brought on by multithreading is the cause. A true fix might involve having one thread access a shared variable at a time.

Apply to QEMU:

diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
index 05c02fb..0e97d0a 100644
--- a/hw/misc/macio/cuda.c
+++ b/hw/misc/macio/cuda.c
@@ -911,7 +911,7 @@ static void cuda_realizefn(DeviceState *dev, Error **errp)
s->tick_offset = (uint32_t)mktimegm(&tm) + RTC_OFFSET;

s->adb_poll_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, cuda_adb_poll, s);
- s->autopoll_rate_ms = 20;
+ s->autopoll_rate_ms = 35;
s->adb_poll_mask = 0xffff;
}

from http://patchwork.ozlabs.org/patch/656443/
User avatar
sentient06
Mac Mechanic
Posts: 188
Joined: Tue Mar 29, 2011 8:57 pm
Location: London, UK

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by sentient06 »

LightBulbFun wrote:playing with the networking 2.7rc0 build from http://www.emaculation.com/forum/viewto ... =34&t=9012 I can confirm that networking is working in 10.4.11 using built in drivers for the rtl8139 NIC. also seems like USB might be working tho when i tried attaching a USB sound card while it showed up in USB devices in system profiler OS X did not recognise it as a sound device in system preferences
Damn that looks good! Tiger was stylish..

Did you try using classic in that box?
User avatar
adespoton
Forum All-Star
Posts: 4227
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by adespoton »

Classic worked in the PR builds; I've got 10.4.0 running Classic 9.2.1 -- items in this thread back a ways. Classic networking works as well.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by Cat_7 »

Here is a build of Qemu pre 2.8 for OSX, with VGA driver, networking and a working PMU. This allows booting, installing and running Leopard! Note that you need to use "mac99p" as machine model and use the included OpenBIOS. Both Qemu and OpenBIOS are from a repository by Ben Herrenschmidt.
This version does not run Puma (10.1), and cannot run Mac OS 9.0. Please also note that you might need a bigger hard disk image than provided to install Leopard if you want to update your version to 10.5.8.

http://www.open.ou.nl/hsp/downloads3/Qe ... 082016.zip

Best,
Cat_7

edit: oh, and it is slow ;-)
User avatar
adespoton
Forum All-Star
Posts: 4227
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by adespoton »

Thanks! I just started configuring an image of 10.5.8 for qemu last night... this should get me through the boot process.

I use a stripped-down version of 10.5.8 that's around 7GB in size. It has all the Intel code stripped out, among other things.

[edit] I presume this uses g4 instead of g3?
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by Cat_7 »

Yes, G4 as is the default in the latest builds.
LightBulbFun
Tinkerer
Posts: 50
Joined: Mon Jul 13, 2015 11:32 am

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by LightBulbFun »

Quick test with the latest build posted here at the time of posting and I have to say QEMU has come a long way :) I noticed that the mac99p machine is emulating a PowerMac G4 MDD 10.1.3+ should be able to boot on that machine but iv yet to test it in the emulator (I know because iv booted 10.1.3/5 on my dual 1.42 MDD before :) ) this is my cmd-line (i still need to test leo on it heh)

Code: Select all

 ./qemu-system-ppc-wip -bios ./openbios-qemu-wip.elf -boot c -M mac99p -m 1G -prom-env 'auto-boot?=false' -prom-env 'boot-args=-v' -netdev user,id=network0 -device rtl8139,netdev=network0 -g 1024x768x32 -drive file=/Volumes/Storage/OS-images/OSX-604-10.4.img,format=raw,media=disk
Image


btw on another note i noticed when playing with qemu-system-ppc64 when speccing a G5 CPU it seems that although the machine is seeming the same PowerMac3,1 but when doing a lspci in linux/some poking in OF i noticed its actually emulating a U3 memory controller that a real G5 would have so i would think something like a PowerMac7,2 model ID would be a better fit (esp as OS X platform drivers for the PowerMac3,1 are defo not going to be compatible with the U3 controller you need to specify PowerMac7,2/MacRISC4 to get the proper U3 drivers to load in OS X but at this stage OS X with the G5 option specced just hangs at bootx not even launching the kernel it seems) hope this makes sense he
User avatar
adespoton
Forum All-Star
Posts: 4227
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by adespoton »

Can PowerMac7,2/MacRISC4 be specified via -prom-env? If so, this would be a useful temp fix to test and see if anything else throws an error with that value corrected. I wonder if 10.5 would run any faster under this configuration....
LightBulbFun
Tinkerer
Posts: 50
Joined: Mon Jul 13, 2015 11:32 am

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by LightBulbFun »

adespoton wrote:Can PowerMac7,2/MacRISC4 be specified via -prom-env? If so, this would be a useful temp fix to test and see if anything else throws an error with that value corrected. I wonder if 10.5 would run any faster under this configuration....
a while back i did try and change it to MacRISC4 via OF but it still hung in the same place at Bootx (shame OF time keyboard arguments dont pass to OS X as in a real mac if your at a OF prompt and type boot and right away hold cmd v it will also boot BootX in verbose mode as well as the OS X kernel)
User avatar
adespoton
Forum All-Star
Posts: 4227
Joined: Fri Nov 27, 2009 5:11 am
Location: Emaculation.com
Contact:

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by adespoton »

One other question: do I need to recompile the OpenBIOS from scratch in order to get 1280x720 resolution to present itself, or is there some way to do that with the existing build?
User avatar
celebi23
Granny Smith
Posts: 101
Joined: Wed Jun 18, 2008 5:53 am

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by celebi23 »

Image

Wow, Mac OS 9.2.2 with working internet :D I even have sftp & ftp set up with remote log in & file sharing on the Mac os x side so that I can connect with Transmit & share files back & forth. Pretty awesome setup. Thank you to everyone who worked on Qemu to get it to this point. Oh & I posted this from Classilla on 9.2.2 :P
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by Cat_7 »

do I need to recompile the OpenBIOS from scratch in order to get 1280x720 resolution to present itself, or is there some way to do that with the existing build?
For now, yes.

Best,
Cat_7
MetalSnake
Granny Smith
Posts: 120
Joined: Fri Nov 09, 2007 5:42 pm

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by MetalSnake »

Is it possible to run any Mac OS classic version with 256 colors in qemu (host is OS X El Capitan)? When I set -g 1024x768x16 it doesn't boot anymore.
User avatar
Cat_7
Expert User
Posts: 6145
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by Cat_7 »

When you use this version of qemu, you can change resolution/color depth inside Mac OS:
http://www.open.ou.nl/hsp/downloads3/Qe ... ga-OSX.zip

Best,
Cat_7
User avatar
sidoh
Tinkerer
Posts: 51
Joined: Sun Aug 21, 2016 12:59 am
Location: Unknown

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by sidoh »

Hello to everyone here. I dunno what to say exactly here but I have QEMU 2.7.0rc3 a shot (I'm a Windows user here, as the only Mac I have is an iBook G4 from 2004) and have been really pleased with it's performance so far. Mac OS 9.1, 9.2.1 and 9.2.2 now work perfectly with either G3 or G4 emulation.

Image

I haven't tested OS X proper yet, as I only have OS X Cheetah and Puma, which don't boot in 2.7.0rc3. I would be interested to try it out if I ever compile a qemu version from the ppc-for-2.8 branch (compiling qemu for w64 isn't exactly the easiest thing ever).
CharlesS
Granny Smith
Posts: 107
Joined: Thu Aug 14, 2008 9:05 am

Re: GSOC qemu Boot Mac OS >= 8.5 on PowerPC system

Post by CharlesS »

To me, being able to run 9.2.2 is way more exciting than the early OS X versions, given that most software for 10.0-10.4 can be run easily enough just by running Snow Leopard in VMWare. A fully emulated 9.2.2, particularly one that's not crashing every five minutes like SheepShaver is wont to do, is something we've never had before—and with good performance, too.
There's no earthly way of knowing, which direction we are going, for the rowers keep on rowing, and they're certainly not showing any signs that they are slowing.
Post Reply