[Spice-devel] Agent crashes on Alpine Linux guest due to lack of /dev/uinput

Frediano Ziglio freddy77 at gmail.com
Thu Nov 10 07:42:04 UTC 2022


Il giorno gio 10 nov 2022 alle ore 07:18 Frediano Ziglio
<freddy77 at gmail.com> ha scritto:
>
> Il giorno gio 10 nov 2022 alle ore 03:14 let-me-use-copy-and-paste
> <let-me-use-copy-and-paste at proton.me> ha scritto:
> >
> > > > > I installed Alpine Linux 3.16 virtual machine edition on QEMU/KVM using Virt-Manager. I installed XFCE on it. I wanted to enable copy-and-paste, so I tried to install spice-vdagent on it, but it kept crashing. I checked the output using the "-x" parameter, and basically, it crashed due to the lack of /dev/uinput. The screenshot is at https://i.imgur.com/9WKaVG8.png
> > > > >
> > > > > I do not know Linux much, so I am not sure if /dev/uinput is not present due to the settings of the virtual machine or because I have not installed something on Alpine Linux. I tried the standard edition of Alpine, and right after the installation, /dev/uinput was not present.
> > > > >
> > > > > In case that Alpine Linux indeed does not support /dev/uinput, can't the spice service run anyway? All I want is text copy-and-paste between the host and the guest, and does that feature need /dev/uinput?
> > > >
> > > > Hi,
> > > > try to add "-f -u /dev/null" to the parameters (that is
> > > > "--fake-uinput --uinput-device /dev/null").
> > > >
> > > > Frediano
> > >
> > >
> > > In Alpine Linux, if I install the "spice-vdagent" package, there seem to be two executables: spice-vdagentd and spice-vdagent. I ran spice-vdagentd with "-x -d -d -f -u /dev/null" and this time, it did not crash. But as soon as I ran "spice-vdagent -x -d", the virtual machine's mouse stopped working. With the debug messages from spice-vdagentd, I knew that the daemon was receiving the mouse pointer movements and button clicks, but somehow the XFCE desktop did not get it, so I could not do things like clicking a window. Keyboard was working, though. Also, probably copy-and-paste also would work, because in the debug message from spice-vdagent, it seemed to have received the event, when I copied some text on the host OS. How can I fix this mouse not moving problem?
> > >
>
> I suspected the mouse could have some issues. To implement client
> mouse the agent is getting the mouse movements and using /dev/uinput
> to send that back to the guest. The issue is that the spice-server in
> this case is not forwarding the mouse events to Qemu (but to the
> agent). I'll need to have a look at the code, maybe there's a
> combination you can use server mouse (that does not need the agent)
> having the agent running to support other features.
>

You need to pass "agent-mouse=off" to Qemu, see
https://people.freedesktop.org/~teuf/spice-doc/html/ch03.html or
"qemu-system-x86_64  --help".

> > > Also, there is another problem. It seems that after running "spice-vdagentd -x -f -u /dev/null", any subsequent execution of it fails with "Fatal could not create the server socket /run/spice-vdagentd/spice-agent-sock: Error binding to address (GUnixSocketAddress): No such file or directory. Rebooting the guest OS did not solve the problem. Here is the screenshot: https://i.imgur.com/pKtD8BH.png
> > >
>
> Probably simple, either there the file
> /run/spice-vdagentd/spice-agent-sock is present or the directory was
> deleted for some reason.
>

Try mkdir -p /run/spice-vdagentd before launching the daemon. Not sure
who deletes the directory (if that's the problem).

> > > Luckily, I had created a snapshot right after installing Alpine Linux and XFCE, so I can revert it and keep testing. If there is anything more I can do, please let me know.
> >
> > If there currently is no way to solve this problem, can't the agent be updated so that it would not crash when /dev/uinput is not present, and continue to do what it can do without /dev/uinput? I mean, all I want is copy-and-paste, and I am not sure why that cannot function without /dev/uinput.
>
> The agent is not crashing, it exists refusing to work. As said above
> I'll have a look.
>

Frediano


More information about the Spice-devel mailing list