Commit Graph

307 Commits

Author SHA1 Message Date
Martin Wimpress
c94b6a0a56
Add support for boot and driver ISO image
Installing Windows 10 in VirtIO enabled Qemu requires additional drivers. This change makes it possible to exposed those drivers during a Windows 10 install.
2020-03-21 00:11:04 +00:00
Martin Wimpress
e8ddb13e9b
Update README 2020-03-20 21:53:45 +00:00
Martin Wimpress
70b5d8148c
Default to gl=on and clean up graphics status
Actually, `gl=on` and `virgil=on` are both required to enable full acceleration. `virgil=on` is not currently working with GTK, so set to off if GTK is used.
2020-03-20 21:48:27 +00:00
Martin Wimpress
b9e6558bd6
Refactor -display configuration build 2020-03-20 20:37:11 +00:00
Martin Wimpress
8bacffc65b
Use USB3 qemu-xhci
8 ports assigned all are USB2 and USB3 capable.
2020-03-20 20:36:16 +00:00
Martin Wimpress
8e214447e8
Use new style -netdev 2020-03-20 20:35:11 +00:00
Martin Wimpress
cbe9125730
Set gl=off
Turns out `gl=on` is not required for Virgil 3D. In fact having `gtk,gl=on` and `virgl=on` will break rendering.
2020-03-20 20:34:02 +00:00
Martin Wimpress
949c3bf614
qemu-virgil should be installed from the edge channel. Closes #6 2020-03-20 18:58:19 +00:00
Martin Wimpress
65735c9c8d
Add --status-quo option to preserve the existing disk state
Starting a VM with `--status-quo` will prevent any changes being committed to the disk image. However, while the VM is boot you can make changes but on next boot none will have been preserved.
2020-03-20 18:35:29 +00:00
Martin Wimpress
588e5de640
Add snapshot usage 2020-03-20 18:22:03 +00:00
Martin Wimpress
a79e16e1b7
Add snapshot management support 2020-03-20 18:17:53 +00:00
Martin Wimpress
fb627583b9
Prevent starting multiple instances of the same VM 2020-03-20 18:16:51 +00:00
Martin Wimpress
d48dc74e95
Catch missing disk configuration early 2020-03-20 18:16:08 +00:00
Martin Wimpress
31c02550d3
Catch error when deleting a disk 2020-03-20 18:12:13 +00:00
Martin Wimpress
91117fb30d
Remove snap restore and slightly refactor disk deletion 2020-03-20 15:34:18 +00:00
Martin Wimpress
ed601549c0
Correct disk initialisation logic 2020-03-20 15:31:24 +00:00
Martin Wimpress
a688c798f5
Correct disk creation/enumeration order 2020-03-20 14:22:22 +00:00
Martin Wimpress
38307c1c0f
Refactor initial disk creation and boot order 2020-03-20 14:18:29 +00:00
Martin Wimpress
510c2e0525
Rename quickemu.sh to quickemu
For simplicity.
2020-03-20 13:53:42 +00:00
Martin Wimpress
44ca3689d8
Setup EFI vars device when EFI booting.
This also allows Virgil 3D to work when EFI booting
2020-03-20 13:50:01 +00:00
Martin Wimpress
c61c3dad2a
Minor refactor of disk setup. 2020-03-20 13:47:34 +00:00
Martin Wimpress
c4bea19bf2
Use new QEMU -audiodev to setup audio devices
Migrate to the new `-audiodev` . This also clearly labels the audio inputs and outputs in audio mixers on the host.
2020-03-20 13:46:18 +00:00
Martin Wimpress
2690663b3b
Refactored so that quickemu is only compatible with qemu-virgil
Trying to maintain compatibility with other builds of QEMU going back into the past is futile. Quickemu now only intended to work with the qemu-virgil snap.
2020-03-20 01:49:43 +00:00
Martin Wimpress
db33fc02a7
White space clean up 2020-03-19 23:20:58 +00:00
Martin Wimpress
34147ab202
Detect if a disk has (most likely) not been installed to and handle accordingly
The default qcow2 is 197632, so double that and anything smaller is considered unsed. Makes booting to a live session many times easier.
2020-03-19 23:20:46 +00:00
Martin Wimpress
27e5b6a174
Use $QEMU_VER for version based conditionals 2020-03-19 23:18:49 +00:00
Martin Wimpress
75f108ebfd
Find the most suitable QEMU executable automatically
The favours `qemu-virgil`. Can be overridden via `--qemu`.
2020-03-19 23:17:45 +00:00
Martin Wimpress
873e49678a
Update README 2020-03-19 21:24:07 +00:00
Martin Wimpress
47b5611aaf
Add OVMF boot logo 2020-03-19 19:22:38 +00:00
Martin Wimpress
0a1a7b3851
Automatically expose the VM via ssh 2020-03-19 17:29:01 +00:00
Martin Wimpress
292686c3ca
Add get_port() function
Find a free port from an available range.
2020-03-19 17:28:13 +00:00
Martin Wimpress
4d7910b868
Don't swallow stderr 2020-03-19 15:28:15 +00:00
Martin Wimpress
47e044b18a
Direct the serial mon to stdout
This is particularly useful when EFI booting
2020-03-19 15:27:37 +00:00
Martin Wimpress
da411be3eb
Correct typo is smbd: status 2020-03-19 15:26:51 +00:00
Martin Wimpress
01688b3ab5
Catch disk image creation errors 2020-03-19 15:26:21 +00:00
Martin Wimpress
3b5fdcb6ea
Set virgl=off when booted using EFI
OVMF booting appears to not be compatible with virgl
2020-03-19 15:26:01 +00:00
Martin Wimpress
c664baaf08
Put the VM name in the window title and assign it to the process 2020-03-19 15:24:27 +00:00
Martin Wimpress
cdb4c12170
Prefer SDL unless EFI boot is selected, the fallback to GTK
EFI booting doesn't appear to work with SDL and GL enabled.
2020-03-19 03:27:14 +00:00
Martin Wimpress
79eb15e7c8
Refactor to improve stdout presentation 2020-03-19 03:07:52 +00:00
Martin Wimpress
47da9ca28b
Fix EFI booting 2020-03-19 02:36:44 +00:00
Martin Wimpress
1b65ce8530
Update TODO status in README.md 2020-03-19 02:14:52 +00:00
Martin Wimpress
5dbe63040f
Clean up options parsing 2020-03-19 02:12:57 +00:00
Martin Wimpress
2e4cbd297a
Update vm_boot() to keep most variables in the local scope 2020-03-19 02:12:36 +00:00
Martin Wimpress
2f8ebe795e
Update usage() to keep variables in the local scope 2020-03-19 02:07:49 +00:00
Martin Wimpress
ce43eb55b1
Update README.md 2020-03-19 02:06:55 +00:00
Martin Wimpress
0287b727d0
Add connecting the kvm interface to README. Closes #2 2020-03-19 01:49:17 +00:00
Martin Wimpress
68a1f9cc20
Automatically set a sensible resolution for the guest VM. Closes #1
Introspect connected monitors to determine a sane default resolution for the guest VM based on the lowest resolution of all connected monitors.
2020-03-19 01:45:38 +00:00
Martin Wimpress
bcae15019d
Simplify option for enabling EFI 2020-03-19 01:41:58 +00:00
Martin Wimpress
b2c44fe879
Export $HOME from the host to the guest VM is smbd is available 2020-03-19 01:39:23 +00:00
Martin Wimpress
bc322f280c
Remove "docs" from the script itself 2020-03-17 01:53:06 +00:00