Skip to content

Commit bab75de

Browse files
committed
Add options to start qemu with a graphical display
1 parent 52792d7 commit bab75de

File tree

2 files changed

+32
-7
lines changed

2 files changed

+32
-7
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ Options:
2424
- `--qemu-memory`: Size of memory for the host in MB. Default: `1024`
2525
- `--qemu-cpu-count`: Number of CPUs. Default: `1`
2626
- `--qemu-program` : Name of the qemu program to run. Default: `qemu-system-x86_64`
27+
- `--qemu-display` : Show the graphical display output to the user. Default: false
28+
- `--qemu-display-type` : Select type of display to use (sdl/vnc=localhost:0/etc)
2729
- `--qemu-nographic` : Use -nographic instead of -display none. Default: false
2830
- `--qemu-virtio-drives` : Use virtio for drives (cdrom and disk). Default: false
2931
- `--qemu-network`: Networking to be used: user, tap or bridge. Default: `user`

qemu.go

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ type Driver struct {
4040
DiskSize int
4141
CPU int
4242
Program string
43+
Display bool
44+
DisplayType string
4345
Nographic bool
4446
VirtioDrives bool
4547
Network string
@@ -84,6 +86,15 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
8486
Usage: "Name of program to run",
8587
Value: "qemu-system-x86_64",
8688
},
89+
mcnflag.BoolFlag{
90+
Name: "qemu-display",
91+
Usage: "Display video output",
92+
},
93+
mcnflag.StringFlag{
94+
EnvVar: "QEMU_DISPLAY_TYPE",
95+
Name: "qemu-display-type",
96+
Usage: "Select type of display",
97+
},
8798
mcnflag.BoolFlag{
8899
Name: "qemu-nographic",
89100
Usage: "Use -nographic instead of -display none",
@@ -191,6 +202,8 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
191202
d.DiskSize = flags.Int("qemu-disk-size")
192203
d.CPU = flags.Int("qemu-cpu-count")
193204
d.Program = flags.String("qemu-program")
205+
d.Display = flags.Bool("qemu-display")
206+
d.DisplayType = flags.String("qemu-display-type")
194207
d.Nographic = flags.Bool("qemu-nographic")
195208
d.VirtioDrives = flags.Bool("qemu-virtio-drives")
196209
d.Network = flags.String("qemu-network")
@@ -431,14 +444,24 @@ func (d *Driver) Start() error {
431444

432445
var startCmd []string
433446

434-
if d.Nographic {
435-
startCmd = append(startCmd,
436-
"-nographic",
437-
)
447+
if d.Display {
448+
if d.DisplayType != "" {
449+
startCmd = append(startCmd,
450+
"-display", d.DisplayType,
451+
)
452+
} else {
453+
// Use the default graphic output
454+
}
438455
} else {
439-
startCmd = append(startCmd,
440-
"-display", "none",
441-
)
456+
if d.Nographic {
457+
startCmd = append(startCmd,
458+
"-nographic",
459+
)
460+
} else {
461+
startCmd = append(startCmd,
462+
"-display", "none",
463+
)
464+
}
442465
}
443466

444467
startCmd = append(startCmd,

0 commit comments

Comments
 (0)