Keyboard input doesn't seem to work with krdp

I’m trying to use krdp 6.3.2 on Kubuntu and (after recompiling freerdp3 to get h.264 support in the client) I have it working to the point where I am able to connect to the server, see the screen, and make input with the mouse (moving and clicking). However, keyboard input does not seem to work. I’ve tried this with multiple different applications on the server side and Remmina, sdl-freerdp3, and the Windows client on the client side. I don’t see any open bug reports or forum posts or anything describing this issue, so I suspect I might have some kind of misconfiguration or something that is causing me problems.

Here’s what krdp logs when I make a connection from a Windows PC:

Mar 05 14:48:36 <redacted> krdpserver[255521]: org.kde.krdp: Initializing Freedesktop Portal Session
Mar 05 14:48:36 <redacted> krdpserver[255521]: org.kde.krdp: Session setup completed, start processing...
Mar 05 14:48:36 <redacted> krdpserver[255521]: org.kde.krdp: Started Freedesktop Portal session
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: VA-API version 1.22.0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Found init function __vaDriverInit_1_22
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: va_openDriver() returns 0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: VA-API version 1.22.0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Found init function __vaDriverInit_1_22
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: va_openDriver() returns 0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: VA-API version 1.22.0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Found init function __vaDriverInit_1_22
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: va_openDriver() returns 0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: VA-API version 1.22.0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Found init function __vaDriverInit_1_22
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: va_openDriver() returns 0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: VA-API version 1.22.0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Found init function __vaDriverInit_1_22
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: va_openDriver() returns 0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: VA-API version 1.22.0
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: Found init function __vaDriverInit_1_22
Mar 05 14:48:36 <redacted> krdpserver[255521]: libva info: va_openDriver() returns 0
Mar 05 14:48:36 <redacted> krdpserver[255521]: [14:48:36:442] [255521:00057dd1] [ERROR][com.freerdp.core.tpkt] - [tpkt_ensure_stream_consumed_]: [rdp_read_info_packet] Received invalid TPKT header length 660, 214 bytes too long!
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp: New client connected:  Windows platform Windows NT
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp: Video stream initialized
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp: Received caps:
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp:   RDPGFX_CAPVERSION_8 AVC: false YUV420: false
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp:   RDPGFX_CAPVERSION_81 AVC: false YUV420: false
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp:   RDPGFX_CAPVERSION_10 AVC: true YUV420: false
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp:   RDPGFX_CAPVERSION_102 AVC: true YUV420: false
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp:   RDPGFX_CAPVERSION_103 AVC: true YUV420: false
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp:   RDPGFX_CAPVERSION_104 AVC: true YUV420: true
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp:   RDPGFX_CAPVERSION_105 AVC: true YUV420: true
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp:   RDPGFX_CAPVERSION_106 AVC: true YUV420: true
Mar 05 14:48:44 <redacted> krdpserver[255521]: org.kde.krdp: Selected caps: RDPGFX_CAPVERSION_106
Mar 05 14:48:49 <redacted> krdpserver[255521]: suspend frame ack
<repeated many times>
Mar 05 14:48:51 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:48:51 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:48:51 <redacted> krdpserver[255521]: suspend frame ack
Mar 05 14:48:52 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:48:52 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:48:54 <redacted> krdpserver[255521]: suspend frame ack
<repeated many times>
Mar 05 14:48:55 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:48:55 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:48:55 <redacted> krdpserver[255521]: suspend frame ack
<repeated many times>
Mar 05 14:48:59 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:48:59 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:49:03 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:49:03 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:49:05 <redacted> krdpserver[255521]: suspend frame ack
<repeated many times>
Mar 05 14:49:15 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:49:15 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:49:15 <redacted> krdpserver[255521]: suspend frame ack
<repeated many times>
Mar 05 14:49:18 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:49:18 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:49:19 <redacted> krdpserver[255521]: suspend frame ack
<repeated many times>
Mar 05 14:49:20 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:49:20 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:49:20 <redacted> krdpserver[255521]: suspend frame ack
<repeated many times>
Mar 05 14:49:22 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:49:22 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:49:26 <redacted> krdpserver[255521]: QObject::killTimer: Timers cannot be stopped from another thread
Mar 05 14:49:26 <redacted> krdpserver[255521]: QObject::startTimer: Timers cannot be started from another thread
Mar 05 14:49:29 <redacted> krdpserver[255521]: suspend frame ack
<repeated many times>
Mar 05 14:49:39 <redacted> krdpserver[255521]: [14:49:39:218] [255521:00057dd1] [WARN][com.freerdp.core.peer] - [peer_recv_data_pdu]: disconnect provider ultimatum sent to peer, closing connection
Mar 05 14:49:39 <redacted> krdpserver[255521]: [14:49:39:218] [255521:00057dd1] [ERROR][com.freerdp.core.transport] - [transport_check_fds]: transport_check_fds: transport->ReceiveCallback() - STATE_RUN_QUIT_SESSION [-2]
Mar 05 14:49:39 <redacted> krdpserver[255521]: org.kde.krdp: Unable to check file descriptor
Mar 05 14:49:39 <redacted> krdpserver[255521]: org.kde.krdp: Closing session
Mar 05 14:49:39 <redacted> krdpserver[255521]: [14:49:39:226] [255521:0003e621] [ERROR][com.freerdp.core.transport] - [transport_default_write]: BIO_should_retry returned an error: error:80000068:system library::Connection reset by peer
Mar 05 14:49:39 <redacted> krdpserver[255521]: [14:49:39:226] [255521:0003e621] [ERROR][com.freerdp.core.peer] - [transport_default_write]: ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D]
Mar 05 14:49:39 <redacted> krdpserver[255521]: QObject::~QObject: Timers cannot be stopped from another thread
Mar 05 14:49:39 <redacted> krdpserver[255521]: org.kde.krdp: Closing Freedesktop Portal Session

Same issue! No keyboard input.

Kubuntu 25.04 current build on both client and server.

sudo apt install krdp

In addition, just tried using the Windows RDP client to 25.04 server. Same issue, no keyboard input.

OK, so it’s not just me. I opened up 501262 – Keyboard input doesn’t seem to work with krdp 6.3. I suspect this is might be some sort of configuration or packaging issue, but I’m in an IRC channel with the head KDE packaging guy for Kubuntu, so I can let him know what needs changing if necessary.

2 Likes

Also keyboard/mouse input doesn’t work with krdp 6.3.5-1 on Debian Unstable (Sid) & krdc 4:25.04.2-1 on Debian Unstable. However, screen output works out of the box.

Windows App on Android (formerly Remote Desktop App) briefly shows mouse cursor on grey background, then kicks out of session.
I didn’t test RDP client on Windows yet.

1 Like

Same on Debian 13.1

Please don’t get me wrong, and at the same time I fully understand and acknowledge that the system is primarily developed on the developers’ enthusiasm

I believe it should be understood that if a problem is not solved for years, it effectively means handing over the initiative to other systems and people will simply move there. Especially when they see that a very basic issue has not been resolved for an entire year

For me, as an administrator, this is critical: managing other workstations while vnc does not work in this case. KDE is clearly moving away from X11, yet at the same time you are not providing a single proper solution for managing a remote machine

Once again, please excuse my poor English