qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
	laurent@vivier.eu, qemu-devel@nongnu.org
Subject: Re: [PATCH v4 00/24] q800: add support for booting MacOS Classic - part 1
Date: Sun, 25 Jun 2023 23:18:56 +0100	[thread overview]
Message-ID: <a5de2959-491c-034d-c070-ed0aba9c83c7@ilande.co.uk> (raw)
In-Reply-To: <773ac3d3-a7a1-13eb-7434-67e0db9b64c9@linaro.org>

On 22/06/2023 11:07, Philippe Mathieu-Daudé wrote:

> On 21/6/23 16:06, Mark Cave-Ayland wrote:
>> On 21/06/2023 10:42, Philippe Mathieu-Daudé wrote:
>>
>>> On 21/6/23 10:53, Mark Cave-Ayland wrote:
>>>> [MCA: the original series has now been split into 2 separate parts based upon
>>>> Phil's comments re: QOM parenting for objects in Q800MachineState. Part 1
>>>> consists of the Q800MachineState patches along with QOM parenting fixes and
>>>> the 2 mac_via RTC patches.]
>>>>
>>>> This series contains the remaining patches needed to allow QEMU's q800
>>>> machine to boot MacOS Classic when used in conjunction with a real
>>>> Quadra 800 ROM image. In fact with this series applied it is possible
>>>> to boot all of the following OSs:
>>>>
>>>>    - MacOS 7.1 - 8.1, with or without virtual memory enabled
>>>>    - A/UX 3.0.1
>>>>    - NetBSD 9.3
>>>>    - Linux (via EMILE)
>>>>
>>>> If you are ready to experience some 90s nostalgia then all you need is
>>>> to grab yourself a copy of the Quadra 800 ROM (checksum 0xf1acad13) and a
>>>> suitable install ISO as follows:
>>>>
>>>>    # Prepare a PRAM image
>>>>    $ qemu-img create -f raw pram.img 256b
>>>>
>>>>    # Launch QEMU with blank disk and install CDROM
>>>>    $ ./qemu-system-m68k \
>>>>        -M q800 \
>>>>        -m 128 \
>>>>        -bios Quadra800.rom \
>>>>        -drive file=pram.img,format=raw,if=mtd \
>>>>        -drive file=disk.img,media=disk,format=raw,if=none,id=hd \
>>>>        -device scsi-hd,scsi-id=0,drive=hd \
>>>>        -drive file=cdrom.iso,media=cdrom,if=none,id=cd \
>>>>        -device scsi-cd,scsi-id=3,drive=cd
>>>>
>>>> And off you go! For more in-depth information about the installation process
>>>> I highly recommend the installation guide over at emaculation.com [1].
>>>> Compatibility is generally very good, and I'm pleased to report it is possible
>>>> to run one of the most popular productivity apps from the 90s [2].
>>>
>>> Could you add an Avocado test for this machine? See how the
>>> MipsFuloong2e test (tests/avocado/machine_mips_fuloong2e.py)
>>> handles the firmware (RESCUE_YL_PATH).
>>
>> In theory it is possible to do this, but how do we handle booting proprietary OS 
>> ISOs that are still within copyright?
> 
> Just provide the hash. You are not redistributing anything.

Another couple of questions: even without distributing the ROM or ISO, do I still 
need to provide URLs to these resources? I see that ISOs generally have URLs but 
given that the Mac sites hosting these images tend to be quite small, I'm not sure 
that providing a link to these sites within QEMU is something they would be 
particularly happy with.

I'm also not sure what is the best way to set up the test to confirm boot is working 
correctly. Ideally we would want to boot a MacOS install CD to the desktop, but there 
isn't an easy way to determine when this has occurred. Perhaps take a screendump 
every 2s or so and use tesseract-ocr to parse for when the menu bar appears on screen?


ATB,

Mark.



  reply	other threads:[~2023-06-25 22:20 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-21  8:53 [PATCH v4 00/24] q800: add support for booting MacOS Classic - part 1 Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 01/24] q800: fix up minor spacing issues in hw_compat_q800 GlobalProperty array Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 02/24] q800: add missing space after parent object in GLUEState Mark Cave-Ayland
2023-06-21 11:41   ` BALATON Zoltan
2023-06-21 14:24     ` Mark Cave-Ayland
2023-06-21 16:12       ` BALATON Zoltan
2023-06-21  8:53 ` [PATCH v4 03/24] q800: introduce Q800MachineState Mark Cave-Ayland
2023-06-21 11:33   ` BALATON Zoltan
2023-06-21 14:14     ` Mark Cave-Ayland
2023-06-21 16:25       ` BALATON Zoltan
2023-06-21  8:53 ` [PATCH v4 04/24] q800: rename q800_init() to q800_machine_init() Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 05/24] q800: move CPU object into Q800MachineState Mark Cave-Ayland
2023-06-21 11:56   ` BALATON Zoltan
2023-06-21 14:28     ` Mark Cave-Ayland
2023-06-21 17:06       ` Laurent Vivier
2023-06-21 12:27   ` BALATON Zoltan
2023-06-21  8:53 ` [PATCH v4 06/24] q800: move ROM memory region to Q800MachineState Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 07/24] q800: move GLUE device into separate q800-glue.c file Mark Cave-Ayland
2023-06-21  9:46   ` Philippe Mathieu-Daudé
2023-06-21 14:09     ` Mark Cave-Ayland
2023-06-21 12:00   ` BALATON Zoltan
2023-06-21 14:30     ` Mark Cave-Ayland
2023-06-21 16:27       ` BALATON Zoltan
2023-06-21 16:34         ` BALATON Zoltan
2023-06-21  8:53 ` [PATCH v4 08/24] q800-glue.c: switch TypeInfo registration to use DEFINE_TYPES() macro Mark Cave-Ayland
2023-06-21  9:43   ` Philippe Mathieu-Daudé
2023-06-21  8:53 ` [PATCH v4 09/24] q800: move GLUE device to Q800MachineState Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 10/24] q800: introduce mac-io container memory region Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 11/24] q800: reimplement mac-io region aliasing using IO " Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 12/24] q800: move VIA1 device to Q800MachineState Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 13/24] q800: move VIA2 " Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 14/24] hw/net/dp8393x.c: move TYPE_DP8393X and dp8393xState into dp8393x.h Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 15/24] q800: move dp8393x device to Q800MachineState Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 16/24] q800: move ESCC " Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 17/24] q800: move escc_orgate " Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 18/24] q800: move ESP " Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 19/24] q800: move SWIM " Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 20/24] q800: move mac-nubus-bridge " Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 21/24] q800: don't access Nubus bus directly from the mac-nubus-bridge device Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 22/24] q800: move macfb device to Q800MachineState Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 23/24] mac_via: fix rtc command decoding from PRAM addresses 0x0 to 0xf Mark Cave-Ayland
2023-06-21  8:53 ` [PATCH v4 24/24] mac_via: fix rtc command decoding for the PRAM seconds registers Mark Cave-Ayland
2023-06-21  9:42 ` [PATCH v4 00/24] q800: add support for booting MacOS Classic - part 1 Philippe Mathieu-Daudé
2023-06-21 14:06   ` Mark Cave-Ayland
2023-06-22 10:07     ` Philippe Mathieu-Daudé
2023-06-25 22:18       ` Mark Cave-Ayland [this message]
2023-06-22  7:34 ` Laurent Vivier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a5de2959-491c-034d-c070-ed0aba9c83c7@ilande.co.uk \
    --to=mark.cave-ayland@ilande.co.uk \
    --cc=laurent@vivier.eu \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).