Hello, As a blind developer I would be very happy to use QEMU's baum chardev for a braille display. Unfortunately, this device fails to detect the tty in which the spice client is running. I would like to improve this device but I don't yet know how to achieve a better solution.
The current code calls qemu_console_get_window_id() to get the tty. This function returns zero, which causes the code to skip even the default behavior of brlapi's brlapi__enterTtyMode() (including checcking some env variables such as CONTROLVT). Furthermore, window id sounds like something different than a tty number, maybe a number of X display? The code does not currently consider the fact that the lifetime of the connected graphical consoles is not the same as the lifetime of the VM. I hardcoded a tty number to the sources of QEMU version 3.0.0 to gladly verify that the device is working besides these problems. So, I have a handful of open questions to start with: Is it possible to get callbacks for connect and disconnect of a graphical console (like spice and vnc)? How? Is it further possible to get any information of the connected client to determine the tty, and possibly sub-windows too (see brlapi__enterTtyModeWithPath), in which the client is running? Such events should lead to calls of brlapi__EnterTtyMode() and brlapi__leaveTtyMode(). To get this device working properly would be a life changing lifehack for me so I highly appreciate any help! It would allow the use of Linux side by side with Windows and ChromiumOS, which is a big leap in this rather poorly accessible world. If this is successful, I'm looking forward to spreading the word and helping others too! With kind regards and informally on behalf of the Finnish braille authority, -- Teemu Kuusisto