Oleksij Samorukov wrote: > On FreeBSD the virtio-console port is a tty, unlike Linux's > /dev/virtio-ports which is a character device. It defaults to canonical > mode with echo and software flow control enabled, so the QGA stream > protocol does not work: the initial guest-sync handshake is held in the > line discipline and the host eventually times out. > > The existing FreeBSD-specific code only clears ECHO. Configure the port > the same way as the ISA serial path: disable canonical mode, echo and > software flow control, and set VMIN/VTIME. Use TCSANOW instead of > TCSAFLUSH so a handshake that arrives between open() and tcsetattr() is > not discarded. > > Tested on FreeBSD 15.1 aarch64 under UTM/QEMU. Before the change > utmctl ip-address timed out and the guest received zero bytes; after the > change QGA commands and guest-set-time work. > > Cc: [email protected] > Fixes: c6cd588bb3a29a831c862780631a7d2145ade5de ("qga: Add initial FreeBSD > support") > Signed-off-by: Oleksij Samorukov <[email protected]> > --- > qga/channel-posix.c | 22 +++++++++++++++++----- > 1 file changed, 17 insertions(+), 5 deletions(-)
Hi Kostiantyn, Sorry to pester you, but is there a chance to pull this in while we're still in a soft freeze? Possibly along with the illumos build fixes [1]. 1: https://patchew.org/QEMU/[email protected]/
