Commit Graph

22 Commits

Author SHA1 Message Date
osy 79ed8c4480 config(qemu): default bus for PPC64 pseries machines
Resolves #5737
2023-10-02 19:06:02 -07:00
osy f072dced95 config(qemu): limit 2 units per IDE bus to supported machines 2023-07-07 16:57:31 -07:00
osy 3356e187d1 settings: support updating of interface version 2023-07-02 21:46:14 -05:00
osy 44973db9dd config(qemu): support multiple units on IDE bus
Previously, we assign 1 IDE device per IDE bus. This means on i440FX + PIIX
machines, we are limited to 2 IDE devices. The bus however supports 2 units
per bus so we should support 4 IDE devices without any extra configuration.

Changing the bus numbering would break many existing VMs so we introduce a
new configuration field for Drive configuration which records the interface
version and we only apply this new numbering to new IDE devices.

Fixes #5358
2023-07-02 21:31:48 -05:00
osy ff3dcc66c3 settings(qemu): support external read-write drives
This allows, for example, mounting a disk image as an emulated USB drive.
This also allows read-write floppy images. Some interfaces (IDE, SCSI, etc)
do not support removable rw images and will error on start.

Resolves #5079
2023-04-16 19:39:51 -07:00
osy b755d4a891 settings(qemu): fix "raw image" button
Fixes #5100
2023-03-10 19:17:10 -08:00
osy b23babba5c config(qemu): remove didSet for isRawImage
Consistency with other config handlers and avoids confusion.
2023-03-10 19:16:40 -08:00
osy 9530ba7f48 config: all external drives should be read-only
1. If a drive is external, assume it is also read-only.
2. Internal drives can now be marked read-only (QEMU)
3. Fix read-only bookmarks not being created in the helper.

Fixes #4838
2023-01-03 13:49:08 -08:00
osy 057ca49e98 vm(qemu): support saving external drive bookmark before starting QEMU
This requires us to save two bookmarks: one for the main process and one for
the helper process. This also simplifies the logic for changing images and we
no longer need to pass around references to the UTMQemuConfigurationDrive.
2022-08-27 18:07:25 -07:00
osy e499fd04e7 vm(qemu): implement registry for external drives
This shall replace the legacy UTMViewState and UTMDrive implementation.
2022-08-27 18:07:25 -07:00
osy d90a7b5601 project: use Swift 5.6 existentials 2022-07-20 17:48:27 -07:00
osy 981166ab2a config(qemu): fix no default UUID for drive 2022-07-15 18:04:05 -07:00
osy 32ff387071 wizard: use new configuration backend 2022-07-11 17:41:10 -07:00
osy f410c4d89a config: support converting to QCOW2 on save of image 2022-07-11 17:32:17 -07:00
osy aff65c58ee project: require iOS 14 and macOS 11.3
This allows us to freely make changes to the backend without being constrained
to supporting the pre-SwiftUI frontend (for iOS). On macOS, 11.3 fixed some
bugs that required ugly hacks to work around.
2022-07-03 22:47:15 +02:00
osy 4cd6fa4390 config: save drives named by UUID
This fixes some subtle issues with creating new drives and existing names.
2022-07-01 21:29:00 +02:00
osy 7d0abb4678 config: implement saving config and data in new format 2022-07-01 21:29:00 +02:00
osy 5427eeee2b config(qemu): change type from ObservableObject to struct
We were constrained to class types when we had to support Objective-C but now
that the backend is in Swift, we can use structs which work much better with
SwiftUI (without lots of hacks).
2022-07-01 15:45:00 +02:00
osy 82f64c4a05 settings: rewrite SwiftUI settings to adopt new config
We attempt to isolate each individual view to a single observable object
representing the single source of truth for a sub-section of settings.

At this point, we ensure UTM can compile but many functionality are broken
until the backend rewrite is complete.
2022-06-25 08:47:05 +03:00
osy 6c8c6d8dc6 qemu: migrate legacy QEMU config 2022-06-18 00:11:36 -07:00
osy 3d122c8728 config: implement defaults for new QEMU config backend 2022-05-30 18:06:59 -07:00
osy 77eb31e229 config: rewrite QEMU config in swift 2022-05-30 14:57:50 -07:00