#1094489 libvirt-daemon-driver-qemu: request to add support for Braille display and SDL

Package:
libvirt-daemon-driver-qemu
Source:
libvirt-daemon-driver-qemu
Description:
Virtualization daemon QEMU connection driver
Submitter:
Adam Myrow
Date:
2025-02-02 21:54:02 UTC
Severity:
normal
Tags:
#1094489#5
Date:
2025-01-28 15:52:08 UTC
From:
To:
Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
I am blind, and have a Braille display.  I would like to be able to use the
Qemu feature where I can pass the Braille display to the guest.  With a
plain Qemu instance, this can be done by specifying "-display sdl" and
"-usbdevice braille" as options.  The SDL display apparently is the only
one that works with the Braille device.  Without this capability, I have to
use USB passthrough, and must stop Brltty in order to get the display to
work in the guest.  This is irritating, as I then lose Braille in the host
OS.  When Qemu is using the "-usbdevice braille" option, the Braille
display works seemlessly between the host OS and the guest OS.  This
feature is the main reason I want to use Qemu, and I like the libvirt
interface, as it makes configuring a guest far easier than writing complex
scripts to get the exact right command line.
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
Because the Braille device is not directly supported, I used the procedure
to add custom arguments to the Qemu command line.  I changed the top of the
XML file so that it begins as follows.
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
I then added the following to the end of the XML file for the domain.
  <qemu:commandline>
    <qemu:arg value='-usbdevice'/>
    <qemu:arg value='braille'/>
  </qemu:commandline>
I then verified that the guest could see the display.  It did, and is
communicating with it.  However, because it requires SDL to share the
display between the host and guest, no text appears.  So, I next changed
the display to sdl as follows.
    <graphics type='sdl' display=':0' xauth='/home/myrowa/.Xauthority'>
   * What was the outcome of this action?
The domain failed to start, giving the rather cryptic error "qemu
unexpectedly closed the monitor."
   * What outcome did you expect instead?
I expected the SDL window to come up, and the Braille display to show the
text from the guest OS.

#1094489#10
Date:
2025-02-02 21:50:08 UTC
From:
To:
Control: tags -1 upstream

Hi Adam,

having libvirt expose this QEMU feature sounds like a reasonable
idea, however it's something that we can achieve from the Debian
side alone.

Can you please file an upstream issue at

https://gitlab.com/libvirt/libvirt/-/issues/

so that they're aware of your request and can consider implementing
it?

Thanks.