From 940a2f85f3ae10274cf094a52781ae75d8dcc25e Mon Sep 17 00:00:00 2001 From: Arthur Sengileyev Date: Sun, 30 Mar 2025 23:01:37 +0300 Subject: [PATCH] Bind QEMU GA socket only in virtio mode Signed-off-by: Arthur Sengileyev --- pkg/qemu/qemu.go | 13 ++++++++----- pkg/qemu/qemu_driver.go | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pkg/qemu/qemu.go b/pkg/qemu/qemu.go index f0a92c37a0d..f190bede85d 100644 --- a/pkg/qemu/qemu.go +++ b/pkg/qemu/qemu.go @@ -45,6 +45,7 @@ type Config struct { LimaYAML *limayaml.LimaYAML SSHLocalPort int SSHAddress string + VirtioGA bool } // MinimumQemuVersion is the minimum supported QEMU version. @@ -987,11 +988,13 @@ func Cmdline(ctx context.Context, cfg Config) (exe string, args []string, err er args = append(args, "-chardev", fmt.Sprintf("socket,id=%s,path=%s,server=on,wait=off", qmpChardev, qmpSock)) args = append(args, "-qmp", "chardev:"+qmpChardev) - // Guest agent via serialport - guestSock := filepath.Join(cfg.InstanceDir, filenames.GuestAgentSock) - args = append(args, "-chardev", fmt.Sprintf("socket,path=%s,server=on,wait=off,id=qga0", guestSock)) - args = append(args, "-device", "virtio-serial") - args = append(args, "-device", "virtserialport,chardev=qga0,name="+filenames.VirtioPort) + if cfg.VirtioGA { + // Guest agent via serialport + guestSock := filepath.Join(cfg.InstanceDir, filenames.GuestAgentSock) + args = append(args, "-chardev", fmt.Sprintf("socket,path=%s,server=on,wait=off,id=qga0", guestSock)) + args = append(args, "-device", "virtio-serial") + args = append(args, "-device", "virtserialport,chardev=qga0,name="+filenames.VirtioPort) + } // QEMU process args = append(args, "-name", "lima-"+cfg.Name) diff --git a/pkg/qemu/qemu_driver.go b/pkg/qemu/qemu_driver.go index ec3da5390a6..64e3504d5da 100644 --- a/pkg/qemu/qemu_driver.go +++ b/pkg/qemu/qemu_driver.go @@ -77,6 +77,7 @@ func (l *LimaQemuDriver) Start(ctx context.Context) (chan error, error) { LimaYAML: l.Instance.Config, SSHLocalPort: l.SSHLocalPort, SSHAddress: l.Instance.SSHAddress, + VirtioGA: l.VirtioPort != "", } qExe, qArgs, err := Cmdline(ctx, qCfg) if err != nil {