Documentation: Suggest using x86_64 QEMU on Windows

The x86_64 QEMU binary supports both i386 as well as x86_64 guests.
By using the x86_64 binary users won't have to change anything when
switching between i386 and x86_64 builds.
This commit is contained in:
Gunnar Beutner 2021-07-10 13:46:36 +02:00
parent ee7e9f05a8
commit df84550b8f
Notes: sideshowbarker 2024-07-18 09:22:48 +09:00
2 changed files with 9 additions and 6 deletions

View file

@ -19,13 +19,16 @@ section to set up QEMU on your host system.
## Setting up QEMU ## Setting up QEMU
- Grab the latest QEMU binaries from [here](https://www.qemu.org/download/#windows) and install them. - Grab the latest QEMU binaries from [here](https://www.qemu.org/download/#windows) and install them. At a minimum you
will need to install the tools as well as the system emulators for i386 and x86_64.
- Locate the executable `qemu-system-i386.exe` in WSL. ![QEMU Components](QEMU_Components.png)
By default this will be located at `/mnt/c/Program Files/qemu/qemu-system-i386.exe`.
- Locate the executable `qemu-system-x86_64.exe` in WSL.
By default this will be located at `/mnt/c/Program Files/qemu/qemu-system-x86_64.exe`.
- Set the `SERENITY_QEMU_BIN` environment variable to the location above. For example: \ - Set the `SERENITY_QEMU_BIN` environment variable to the location above. For example: \
`export SERENITY_QEMU_BIN='/mnt/c/Program Files/qemu/qemu-system-i386.exe'` `export SERENITY_QEMU_BIN='/mnt/c/Program Files/qemu/qemu-system-x86_64.exe'`
- Set the `SERENITY_KERNEL_CMDLINE` environment variable to disable VirtIO support (Because it is currently broken on - Set the `SERENITY_KERNEL_CMDLINE` environment variable to disable VirtIO support (Because it is currently broken on
native windows QEMU): native windows QEMU):
@ -73,7 +76,7 @@ with feature detection logic in libgcc and resulting in this error.
To workaround this, first adjust the `SERENITY_QEMU_CPU` setting to emulate a more restricted feature set. `SERENITY_QEMU_CPU="qemu32"` To workaround this, first adjust the `SERENITY_QEMU_CPU` setting to emulate a more restricted feature set. `SERENITY_QEMU_CPU="qemu32"`
appears to work in some cases, however in others causes the boot freeze issue above. It's worth playing around with appears to work in some cases, however in others causes the boot freeze issue above. It's worth playing around with
various different values here to see if you can find one that works for you. Running `qemu-system-i386.exe -cpu ?` will various different values here to see if you can find one that works for you. Running `qemu-system-x86_64.exe -cpu ?` will
list the supported CPU configurations. list the supported CPU configurations.
If you cannot find a working CPU feature set, the next workaround is to patch libgcc in the Serenity toolchain build to If you cannot find a working CPU feature set, the next workaround is to patch libgcc in the Serenity toolchain build to
@ -88,7 +91,7 @@ Rebuild the toolchain using `Toolchain/BuildIt.sh` as normal, then rebuild Seren
On some Windows systems running with >100% scaling, the booting phase of Serenity might slow to a crawl. Changing the On some Windows systems running with >100% scaling, the booting phase of Serenity might slow to a crawl. Changing the
zoom settings of the QEMU window will speed up the emulation, but you'll have to squint harder to read the smaller display. zoom settings of the QEMU window will speed up the emulation, but you'll have to squint harder to read the smaller display.
A quick workaround is opening the properties of the QEMU executable at `C:\Program Files\qemu\qemu-system-i386.exe`, and A quick workaround is opening the properties of the QEMU executable at `C:\Program Files\qemu\qemu-system-x86_64.exe`, and
in the Compatibility tab changing the DPI settings to force the scaling to be performed by the System, by changing the in the Compatibility tab changing the DPI settings to force the scaling to be performed by the System, by changing the
setting at at the bottom of the window. The QEMU window will now render at normal size while retaining acceptable emulation speeds. setting at at the bottom of the window. The QEMU window will now render at normal size while retaining acceptable emulation speeds.

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB