QEMU/Guests/Mac OS 9: Difference between revisions
(→Sound) |
Undefishin (talk | contribs) No edit summary |
||
(10 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:How to install Mac OS 9 in QEMU}} |
|||
[[File:MacOS9.2 Desktop.png|thumb|Mac OS 9.2 desktop]] |
[[File:MacOS9.2 Desktop.png|thumb|Mac OS 9.2 desktop]] |
||
'''Mac OS 9''' is an operating system created |
This page details how to install Mac OS 9 in QEMU. '''Mac OS 9''' is an operating system created by Apple in October of 1999. This was the final release in the classic Mac OS series. The OS was famously discontinued in 2002 with a mock funeral by Steve Jobs at the Apple Worldwide Developers Conference. |
||
This article will describe in detail how to install Mac OS 9.2 with mouse drivers, sound, networking, and graphics. This tutorial should work with Mac OS 9.0 and 9.1 (which needs an additional flag; more details below). |
This article will describe in detail how to install Mac OS 9.2 with mouse drivers, sound, networking, and graphics. This tutorial should work with Mac OS 9.0 and 9.1 (which needs an additional flag; more details below). |
||
==Prerequisites== |
|||
==Before you start== |
|||
===QEMU=== |
|||
Versions of Mac OS prior to 10.4 (Tiger) did not run on x86 hardware. Instead, it used a PowerPC CPU. Because of this, it's not possible to run this OS with KVM, so we'll need to use pure software emulation, which may be a little slow but shouldn't be agonizing if you're on a newer PC. |
|||
You need [[QEMU/Installation|QEMU]] installed, specifically the PowerPC version since old Macs used PowerPC instead of x86. On Arch you can install it with <code>pacman -S qemu-system-ppc</code> and on Debian/Ubuntu you can install it with <code>apt install qemu-system-ppc</code>. The Windows version should come with it already installed. |
|||
===Mac OS 9.2.1 CD=== |
|||
You can grab a Mac OS 9.2.1 ISO from [https://winworldpc.com/product/mac-os-9/92 WinWorldPC]. |
|||
You will need a Mac OS 9.2.1 CD. You can either use a physical disc or download one from [https://winworldpc.com/product/mac-os-9/92 WinWorldPC]. |
|||
== |
==Starting up== |
||
=== |
===Installation=== |
||
As always, the first thing we want to do is create the hard disk image by opening the Terminal or Command Prompt and typing this: |
As always, the first thing we want to do is create the hard disk image by opening the Terminal or Command Prompt and typing this: |
||
<pre>qemu-img create -f qcow2 macos9.img 2G</pre> |
<pre>qemu-img create -f qcow2 macos9.img 2G</pre> |
||
[[How to create a disk image in QEMU|See this page for more information on how this command works.]] |
'''2G''' can be replaced with however big you want the hard drive to be (with G standing for Gigabytes). Mac OS 9 is a very old OS and thus does not take up a lot of space. [[How to create a disk image in QEMU|See this page for more information on how this command works.]] |
||
When that's done, we can start up QEMU with the following command: |
|||
You should see an output like this: |
|||
[[File:MacOS Img Created.png|700px]] |
|||
Now we're ready to go. |
|||
===Installation=== |
|||
Now, we'll start QEMU like this: |
|||
<pre>qemu-system-ppc -M mac99 -m 512 -hda macos9.img -cdrom /path/to/macos-9-cd.iso -netdev user,id=mynet -device sungem,netdev=mynet -device usb-mouse -device usb-kbd -boot d</pre> |
<pre>qemu-system-ppc -M mac99 -m 512 -hda macos9.img -cdrom /path/to/macos-9-cd.iso -netdev user,id=mynet -device sungem,netdev=mynet -device usb-mouse -device usb-kbd -boot d</pre> |
||
This sets the machine type to "mac99" (basically a G4 Mac). You can also set it to <code>-M g3beige</code> which is a Power Mac G3. We also add a USB mouse and keyboard for far smoother input. |
|||
A breakdown of this command: <code>qemu-system-ppc</code> is the name of the QEMU emulator, of course. <code>-M mac99</code> tells it to emulate a "Mac99" model (which is a G4 Mac). QEMU also supports a Beige PowerMac G3. You can type <code>-M ?</code> for a full list. <code>-m 512</code> adds 512 MB of RAM to the machine. The system becomes really unstable with more than 1 GB of RAM so I recommend setting this to about 896 MB (the maximum supported by Mac OS 9) at most. <code>-hda macos9.img</code> is the hard drive. <code>-cdrom /path/to/macos-9-cd.iso</code> adds a CDrom drive, which needs to be changed to point to the Mac OS ISO. <code>-netdev user,id=mynet</code> adds a virtual "user" network and sets up some network configuration. It'll also attach to your host's LAN. <code>-device sungem,netdev=mynet</code> adds a virtual NIC (in this case, a SunGEM network card) and assigns it to the virtual network specified before. <code>-device usb-mouse</code> and <code>-device usb-kbd</code> add a USB mouse and keyboard which will allow for much better input (especially if you are hosting this on [[CollabVM]]). And finally, <code>-boot d</code> tells the machine to boot from the CD-ROM drive. |
|||
We set the RAM to 512 MB, though you can run it with as little as 40 MB and as high as 768 MB. The OS starts becoming severely unstable if more than a GB of RAM is given. |
|||
If you are installing Mac OS 9.0 or 9.1, you will also need to add <code>-cpu G3</code> to the flags for it to work. |
|||
If you are installing Mac OS 9.0 or 9.1, you'll also need to add <code>-cpu G3</code> to the flags for it to work. |
|||
With all that in mind, we are now ready to start. |
|||
When you start QEMU, you should see a yellow screen with some details like this: |
When you start QEMU, you should see a yellow screen with some details like this: |
||
Line 71: | Line 68: | ||
You may have a "Setup Assistant" appear. You can go through and set everything up or close it, it doesn't matter much, though it will help you set up some basic network functions like shared folders and the like, so I recommend it. It's a very simple wizard. |
You may have a "Setup Assistant" appear. You can go through and set everything up or close it, it doesn't matter much, though it will help you set up some basic network functions like shared folders and the like, so I recommend it. It's a very simple wizard. |
||
==Software== |
|||
Now that we have our system set up, we'll probably want to install some software. Fortunately, a lot of it was preserved thanks to the efforts of [https://macintoshgarden.org/ Macintosh Garden], [https://www.macintoshrepository.org/ Macintosh Repository], and the Internet Archive. Pretty much every major software for OS 9 is on Macintosh Garden and Repository, so I recommend checking those ones out first. Some convenient and interesting software is listed below. |
|||
Note: You may have to right click some of the links and click "Save link as...". This is due to a recent change in policy in browsers such as Chrome regarding HTTP links. |
|||
===Sound=== |
|||
*[https://macintoshgarden.org/apps/classilla Classilla (Firefox 2 fork)] |
|||
*[http://files.mac-attic.com/downloads/internet/browsers/Internet-Explorer-5.1.7.hqx Internet Explorer 5.1.7 (final version of IE for OS 9)] |
|||
*[https://macintoshgarden.org/apps/official-macintosh-garden-sherlock-plugins Official Macintosh Garden Sherlock Plugins] |
|||
*[http://files.mac-attic.com/downloads/utilities/Virtual-CD.hqx Virtual CD/DVD-ROM Utility] |
|||
*[https://www.macintoshrepository.org/809-stuffit-deluxe-1-5-x-8-x StuffIt Deluxe] (for HQX/SIT files) |
|||
*[https://winworldpc.com/product/microsoft-office/2001-mac Microsoft Office 2001] |
|||
==Sound support== |
|||
Unfortunately, the stock QEMU does not come with proper sound drivers for Mac OS 9, so we'll need to build a fork of QEMU that adds these sound card drivers. This section will be technically advanced and is only recommended for more experienced users. The instructions change depending on your OS. |
Unfortunately, the stock QEMU does not come with proper sound drivers for Mac OS 9, so we'll need to build a fork of QEMU that adds these sound card drivers. This section will be technically advanced and is only recommended for more experienced users. The instructions change depending on your OS. |
||
====Compiling on Linux==== |
====Compiling on Linux==== |
||
Clone the source code tree like so: |
|||
<pre>git clone --recursive -b screamer https://github.com/mcayland/qemu.git qemu-screamer |
|||
cd qemu-screamer/</pre> |
|||
Install the proper build dependencies. This varies from distro to distro, so I included a table with a few example commands: |
|||
{| class="wikitable" |
|||
|- |
|||
! Distribution |
|||
! Command |
|||
|- |
|||
| Arch Linux |
|||
| <code>pacman -S libffi gettext glib2 pkgconf autoconf automake pixman ninja mesongnutls libjpeg-turbo libpng libslirp libssh libusb lzo ncurses nettle snappy vde2</code> |
|||
|- |
|||
| Debian/Ubuntu |
|||
| <code>apt install libglib2.0-dev libgcrypt20-dev zlib1g-dev autoconf automake libtool bison flex libpixman-1-dev</code> |
|||
|- |
|||
|} |
|||
<code>cd</code> into the folder. We'll configure the build here. We're only going to compile the PowerPC version of QEMU to save time, though if you want to build every version, just remove the <code>--target-list=ppc-softmmu</code> flag at the very end. Execute the following command: |
|||
<pre>./configure --target-list=ppc-softmmu</pre> |
|||
Finally, build QEMU: |
|||
<pre>cd build/ |
|||
make -j$(nproc) |
|||
</pre> |
|||
Afterwards, you'll find the proper <code>qemu-system-ppc</code> in the <code>build/</code> folder. |
|||
====Compiling on macOS==== |
====Compiling on macOS==== |
||
First things first, this requires Homebrew. If you don't have it, install it by following the guide [https://brew.sh/ on the official website]. |
First things first, this requires Homebrew. If you don't have it, install it by following the guide [https://brew.sh/ on the official website]. |
||
Clone the source code tree |
Clone the source code tree like so: |
||
<pre>git clone --recursive -b screamer https://github.com/mcayland/qemu.git qemu-screamer |
<pre>git clone --recursive -b screamer https://github.com/mcayland/qemu.git qemu-screamer |
||
Line 93: | Line 130: | ||
<pre>brew install libffi gettext glib pkg-config autoconf automake pixman ninja meson gnutls jpeg libpng libslirp libssh libusb lzo ncurses nettle snappy vde</pre> |
<pre>brew install libffi gettext glib pkg-config autoconf automake pixman ninja meson gnutls jpeg libpng libslirp libssh libusb lzo ncurses nettle snappy vde</pre> |
||
Now, <code>cd</code> into the folder. We are going to configure the build. We are only going to compile the PowerPC version of QEMU to save time, though if you want to build every version of QEMU, just remove the <code>--target-list= |
Now, <code>cd</code> into the folder. We are going to configure the build. We are only going to compile the PowerPC version of QEMU to save time, though if you want to build every version of QEMU, just remove the <code>--target-list=ppc-softmmu</code> flag at the very end. Execute the following command: |
||
<pre>PKG_CONFIG_PATH="$(brew --prefix)/opt/ncurses/lib/pkgconfig" ./configure --target-list= |
<pre>PKG_CONFIG_PATH="$(brew --prefix)/opt/ncurses/lib/pkgconfig" ./configure --target-list=ppc-softmmu</pre> |
||
Finally, build QEMU: |
Finally, build QEMU: |
||
Line 106: | Line 143: | ||
====Compiling on Windows==== |
====Compiling on Windows==== |
||
We will need to download and install the latest version of [https://www.msys2.org/#installation MSYS2]. Follow the instructions on the page. |
|||
A terminal should open when the installation finishes, if not just open it from the Start menu. When the terminal is open, we'll update MSYS2's packages by running: |
|||
<pre>pacman -Syu</pre> |
|||
When the updates are installed, the terminal will close. Open it again and run the following command to finish updating the packages: |
|||
<pre>pacman -Su</pre> |
|||
Now, install the build dependencies for QEMU: |
|||
<pre>pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-glib2 mingw64/mingw-w64-x86_64-gtk3 mingw64/mingw-w64-x86_64-SDL2 git python python-setuptools ninja</pre> |
|||
When this is finished, close the MSYS2 terminal and open the MinGW terminal (should be in the Start menu), and run the commands below to prepare the build environment for QEMU's build scripts: |
|||
<pre> |
|||
cp -v /mingw64/bin/x86_64-w64-mingw32-gcc-ar.exe /mingw64/bin/x86_64-w64-mingw32-ar.exe |
|||
cp -v /mingw64/bin/x86_64-w64-mingw32-gcc-ranlib.exe /mingw64/bin/x86_64-w64-mingw32-ranlib.exe |
|||
cp -v /mingw64/bin/windres.exe /mingw64/bin/x86_64-w64-mingw32-windres.exe |
|||
cp -v /mingw64/bin/nm.exe /mingw64/bin/x86_64-w64-mingw32-nm.exe |
|||
cp -v /mingw64/bin/objcopy.exe /mingw64/bin/x86_64-w64-mingw32-objcopy.exe |
|||
</pre> |
|||
Now it's time to clone the source tree like so: |
|||
<pre>git clone --recursive -b screamer https://github.com/mcayland/qemu.git qemu-screamer |
|||
cd qemu-screamer/</pre> |
|||
Now we'll configure the build. To save time we only build the PowerPC QEMU target, but if you want to build all of them, just remove the <code>--target-list=ppc-softmmu</code> flag from the end. Also, unlike with macOS/Linux builds, we'll be disabling the GTK UI since it has mouse input issues, as well as DirectSound audio backend because it results in audio issues with OS X (though not Mac OS 9). |
|||
<pre>./configure --cross-prefix=x86_64-w64-mingw32- --disable-gtk --enable-sdl --audio-drv-list=sdl --target-list=ppc-softmmu</pre> |
|||
Now we build QEMU: |
|||
<pre>cd build/ |
|||
make -j$(nproc)</pre> |
|||
Afterwards, you'll find the proper <code>qemu-system-ppc</code> in the <code>build/</code> folder. |
|||
==Credits== |
|||
*[https://gist.github.com/akemin-dayo/0e9bdcd74b2ad7f0bcf56e0680256103 akemin-dayo's QEMU Screamer guide] |
|||
[[Category:OS Installation guides]] |
|||
[[Category:Tutorials]] |
|||
[[Category:QEMU guides]] |
Latest revision as of 10:48, 28 August 2024
This page details how to install Mac OS 9 in QEMU. Mac OS 9 is an operating system created by Apple in October of 1999. This was the final release in the classic Mac OS series. The OS was famously discontinued in 2002 with a mock funeral by Steve Jobs at the Apple Worldwide Developers Conference.
This article will describe in detail how to install Mac OS 9.2 with mouse drivers, sound, networking, and graphics. This tutorial should work with Mac OS 9.0 and 9.1 (which needs an additional flag; more details below).
Prerequisites
QEMU
You need QEMU installed, specifically the PowerPC version since old Macs used PowerPC instead of x86. On Arch you can install it with pacman -S qemu-system-ppc
and on Debian/Ubuntu you can install it with apt install qemu-system-ppc
. The Windows version should come with it already installed.
Mac OS 9.2.1 CD
You will need a Mac OS 9.2.1 CD. You can either use a physical disc or download one from WinWorldPC.
Starting up
Installation
As always, the first thing we want to do is create the hard disk image by opening the Terminal or Command Prompt and typing this:
qemu-img create -f qcow2 macos9.img 2G
2G can be replaced with however big you want the hard drive to be (with G standing for Gigabytes). Mac OS 9 is a very old OS and thus does not take up a lot of space. See this page for more information on how this command works.
When that's done, we can start up QEMU with the following command:
qemu-system-ppc -M mac99 -m 512 -hda macos9.img -cdrom /path/to/macos-9-cd.iso -netdev user,id=mynet -device sungem,netdev=mynet -device usb-mouse -device usb-kbd -boot d
This sets the machine type to "mac99" (basically a G4 Mac). You can also set it to -M g3beige
which is a Power Mac G3. We also add a USB mouse and keyboard for far smoother input.
We set the RAM to 512 MB, though you can run it with as little as 40 MB and as high as 768 MB. The OS starts becoming severely unstable if more than a GB of RAM is given.
If you are installing Mac OS 9.0 or 9.1, you'll also need to add -cpu G3
to the flags for it to work.
When you start QEMU, you should see a yellow screen with some details like this:
The system should begin starting up after a few seconds:
It usually takes around a minute to start, but if you're on a slower/older machine it may take several minutes. When it's done it should drop you into a live Mac OS 9 environment like this:
Click the "Utilities" folder. Open the "Drive Setup" utility and initialize the volume (labeled <not initialized>).
It'll warn you that it will destroy all data on the volumes. Click Initialize and proceed. It will partition the disk, and then we can proceed with the installation. Go back to the root CD folder and click "Install Mac OS 9.2.1" (or whatever version). Click Continue, make sure the Destination Disk is the one you just initialized, accept the software license agreement, and click "Start" to begin the installation.
The system will now install. It will give an ETA of about 7 minutes usually but it might take longer to actually install. Just sit back, let it do its thing, go watch some YouTube videos or something while it does this.
When it's done installing you will get a message box asking if you want to exit or continue to install other software. Choose "Continue" and close out of QEMU (press Ctrl+ALT+G to release the mouse grab). Change the -boot d
flag to -boot c
so that it boots to the new image, like so:
qemu-system-ppc -M mac99 -m 512 -hda macos9.img -netdev user,id=mynet -device sungem,netdev=mynet -device usb-mouse -device usb-kbd -boot c
You may also remove the CD rom if you want. You will see the same yellow boot screen as before, and if all went well, you should see this (you may have to jiggle your mouse a bit to make it actually load):
And if all went well, you should be in the desktop! Hooray!
You may have a "Setup Assistant" appear. You can go through and set everything up or close it, it doesn't matter much, though it will help you set up some basic network functions like shared folders and the like, so I recommend it. It's a very simple wizard.
Software
Now that we have our system set up, we'll probably want to install some software. Fortunately, a lot of it was preserved thanks to the efforts of Macintosh Garden, Macintosh Repository, and the Internet Archive. Pretty much every major software for OS 9 is on Macintosh Garden and Repository, so I recommend checking those ones out first. Some convenient and interesting software is listed below.
Note: You may have to right click some of the links and click "Save link as...". This is due to a recent change in policy in browsers such as Chrome regarding HTTP links.
- Classilla (Firefox 2 fork)
- Internet Explorer 5.1.7 (final version of IE for OS 9)
- Official Macintosh Garden Sherlock Plugins
- Virtual CD/DVD-ROM Utility
- StuffIt Deluxe (for HQX/SIT files)
- Microsoft Office 2001
Sound support
Unfortunately, the stock QEMU does not come with proper sound drivers for Mac OS 9, so we'll need to build a fork of QEMU that adds these sound card drivers. This section will be technically advanced and is only recommended for more experienced users. The instructions change depending on your OS.
Compiling on Linux
Clone the source code tree like so:
git clone --recursive -b screamer https://github.com/mcayland/qemu.git qemu-screamer cd qemu-screamer/
Install the proper build dependencies. This varies from distro to distro, so I included a table with a few example commands:
Distribution | Command |
---|---|
Arch Linux | pacman -S libffi gettext glib2 pkgconf autoconf automake pixman ninja mesongnutls libjpeg-turbo libpng libslirp libssh libusb lzo ncurses nettle snappy vde2
|
Debian/Ubuntu | apt install libglib2.0-dev libgcrypt20-dev zlib1g-dev autoconf automake libtool bison flex libpixman-1-dev
|
cd
into the folder. We'll configure the build here. We're only going to compile the PowerPC version of QEMU to save time, though if you want to build every version, just remove the --target-list=ppc-softmmu
flag at the very end. Execute the following command:
./configure --target-list=ppc-softmmu
Finally, build QEMU:
cd build/ make -j$(nproc)
Afterwards, you'll find the proper qemu-system-ppc
in the build/
folder.
Compiling on macOS
First things first, this requires Homebrew. If you don't have it, install it by following the guide on the official website.
Clone the source code tree like so:
git clone --recursive -b screamer https://github.com/mcayland/qemu.git qemu-screamer cd qemu-screamer/
Then, install all the build dependencies through Homebrew:
brew install libffi gettext glib pkg-config autoconf automake pixman ninja meson gnutls jpeg libpng libslirp libssh libusb lzo ncurses nettle snappy vde
Now, cd
into the folder. We are going to configure the build. We are only going to compile the PowerPC version of QEMU to save time, though if you want to build every version of QEMU, just remove the --target-list=ppc-softmmu
flag at the very end. Execute the following command:
PKG_CONFIG_PATH="$(brew --prefix)/opt/ncurses/lib/pkgconfig" ./configure --target-list=ppc-softmmu
Finally, build QEMU:
cd build/ make -j$(sysctl -n hw.ncpu)
Afterwards, you'll find the proper qemu-system-ppc
in the build/
folder.
Compiling on Windows
We will need to download and install the latest version of MSYS2. Follow the instructions on the page.
A terminal should open when the installation finishes, if not just open it from the Start menu. When the terminal is open, we'll update MSYS2's packages by running:
pacman -Syu
When the updates are installed, the terminal will close. Open it again and run the following command to finish updating the packages:
pacman -Su
Now, install the build dependencies for QEMU:
pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-glib2 mingw64/mingw-w64-x86_64-gtk3 mingw64/mingw-w64-x86_64-SDL2 git python python-setuptools ninja
When this is finished, close the MSYS2 terminal and open the MinGW terminal (should be in the Start menu), and run the commands below to prepare the build environment for QEMU's build scripts:
cp -v /mingw64/bin/x86_64-w64-mingw32-gcc-ar.exe /mingw64/bin/x86_64-w64-mingw32-ar.exe cp -v /mingw64/bin/x86_64-w64-mingw32-gcc-ranlib.exe /mingw64/bin/x86_64-w64-mingw32-ranlib.exe cp -v /mingw64/bin/windres.exe /mingw64/bin/x86_64-w64-mingw32-windres.exe cp -v /mingw64/bin/nm.exe /mingw64/bin/x86_64-w64-mingw32-nm.exe cp -v /mingw64/bin/objcopy.exe /mingw64/bin/x86_64-w64-mingw32-objcopy.exe
Now it's time to clone the source tree like so:
git clone --recursive -b screamer https://github.com/mcayland/qemu.git qemu-screamer cd qemu-screamer/
Now we'll configure the build. To save time we only build the PowerPC QEMU target, but if you want to build all of them, just remove the --target-list=ppc-softmmu
flag from the end. Also, unlike with macOS/Linux builds, we'll be disabling the GTK UI since it has mouse input issues, as well as DirectSound audio backend because it results in audio issues with OS X (though not Mac OS 9).
./configure --cross-prefix=x86_64-w64-mingw32- --disable-gtk --enable-sdl --audio-drv-list=sdl --target-list=ppc-softmmu
Now we build QEMU:
cd build/ make -j$(nproc)
Afterwards, you'll find the proper qemu-system-ppc
in the build/
folder.