Krdp Remote Access On Kubuntu 26.04 Not Working - No H264 Profile ...... SOME / MOST Cases ... Why & How To Fix?

Ubuntu Support Template

Ubuntu Version: kubuntu 26.04

Desktop Environment (if applicable): KDE

Problem Description:
krdp is installed for remote access on LAN. No active firewall. All machines connect to LAN ok (can ping and ssh etc.)

Remmina and Krdc remote clients installed on all machines

Cannot access any of the following from a kUbuntu machine in any combination

  • kUbuntu 26.04 New Install …. from kUbuntu 26.04 new install or upgrade (from 24.04) via krdc or remmina (deb or flatpak)
  • kUbuntu 26.04 Upgraded from 24.04 …. from kUbuntu 26.04 new install or upgrade (from 24.04) via krdc or remmina … nor from kubuntu 24.04 using remmina or krcd

BUT, what is wierd is that -

  • remmina on kUbuntu 26.04 or 24.04 CAN access an Arch VM running KDE and krdc without significant issue
    and krdc on kubuntu 26.04 can also access Arch KDE krdc without issue
  • ALSO the Arch KDE session can access kubuntu 26.04 kdrp via remmina or krdc
  • CONCLUSION - Arch is installing something that Ubuntu is not. How is it that a kubuntu/ Arch-kde machine pair can connect in either direction without trouble … but kUbuntu cannot ? Intuitively one would expect that kUbuntu to kUbuntu would work “out of the box”

Additional info … messages on krdpserver for kUbuntu-kUbuntu session (failed)

krdpserver -u xxxxxx -p yyyyyyy
org.kde.krdp: Listening for connections on QHostAddress(QHostAddress::Any) 3389
qt.qpa.services: Failed to register with host portal QDBusError(“org.freedesktop.portal.Error.Failed”, “Could not register app ID: App info not found for ‘org.kde.krdp-server’”)
org.kde.krdp: Session setup completed, start processing…
org.kde.krdp: New client connected: UNIX platform Unspecified version
org.kde.krdp: User “rdp-user” authenticated successfully
org.kde.krdp: Video stream initialized
org.kde.krdp: Initializing Freedesktop Portal Session
org.kde.krdp: Received caps:
org.kde.krdp: RDPGFX_CAPVERSION_8 AVC: false YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_81 AVC: false YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_10 AVC: false YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_101 AVC: true YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_102 AVC: false YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_103 AVC: false YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_104 AVC: false YUV420: true
org.kde.krdp: RDPGFX_CAPVERSION_105 AVC: false YUV420: true
org.kde.krdp: RDPGFX_CAPVERSION_106 AVC: false YUV420: true
org.kde.krdp: UNKNOWN_VERSION AVC: false YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_107 AVC: false YUV420: true
org.kde.krdp: Client does not support H.264 in YUV420 mode!
[13:14:50:200] [30879:000078af] [INFO][com.freerdp.core] - [rdp_print_errinfo]: ERRINFO_GRAPHICS_SUBSYSTEM_FAILED (0x0000112F):The server-side graphics subsystem is in an error state and unable to continue graphics encoding.
[13:14:50:200] [30879:000078af] [ERROR][com.freerdp.core.peer] - [rdp_set_error_info]: ERRINFO_GRAPHICS_SUBSYSTEM_FAILED [0x0001112F]
[13:14:50:200] [30879:000078af] [ERROR][com.freerdp.channels.rdpgfx.server] - [rdpgfx_recv_caps_advertise_pdu]: context->CapsAdvertise failed with error 20
[13:14:50:200] [30879:000078af] [ERROR][com.freerdp.channels.rdpgfx.server] - [rdpgfx_server_receive_pdu]: rdpgfx_recv_caps_advertise_pdu failed with error 20!
[13:14:50:200] [30879:000078af] [ERROR][com.freerdp.channels.rdpgfx.server] - [rdpgfx_server_receive_pdu]: Error while parsing GFX cmdId: RDPGFX_CMDID_CAPSADVERTISE (0x0012)
[13:14:50:200] [30879:000078af] [ERROR][com.freerdp.channels.rdpgfx.server] - [rdpgfx_server_handle_messages]: rdpgfx_server_receive_pdu failed with error 20!
[13:14:50:200] [30879:000078af] [ERROR][com.freerdp.channels.rdpgfx.server] - [rdpgfx_server_thread_func]: rdpgfx_server_handle_messages failed with error 20
[13:14:50:208] [30879:000078ac] [ERROR][com.freerdp.core.transport] - [transport_read_layer]: BIO_read retries exceeded
org.kde.krdp: Unable to check file descriptor
org.kde.krdp: Closing session
org.kde.krdp: Closing Freedesktop Portal Session

Additional info … messages on krdpserver for Arch-kUbuntu session (successful)

krdpserver -u xxxxxx -p yyyyyyy
org.kde.krdp: Listening for connections on QHostAddress(QHostAddress::Any) 3389
qt.qpa.services: Failed to register with host portal QDBusError(“org.freedesktop.portal.Error.Failed”, “Could not register app ID: App info not found for ‘org.kde.krdp-server’”)
org.kde.krdp: Session setup completed, start processing…
org.kde.krdp: New client connected: UNIX platform Unspecified version
org.kde.krdp: User “rdp-user” authenticated successfully
org.kde.krdp: Video stream initialized
org.kde.krdp: Initializing Freedesktop Portal Session
org.kde.krdp: Received caps:
org.kde.krdp: RDPGFX_CAPVERSION_8 AVC: false YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_81 AVC: true YUV420: true
org.kde.krdp: RDPGFX_CAPVERSION_10 AVC: true YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_101 AVC: true YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_102 AVC: true YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_103 AVC: true YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_104 AVC: true YUV420: true
org.kde.krdp: RDPGFX_CAPVERSION_105 AVC: true YUV420: true
org.kde.krdp: RDPGFX_CAPVERSION_106 AVC: true YUV420: true
org.kde.krdp: UNKNOWN_VERSION AVC: false YUV420: false
org.kde.krdp: RDPGFX_CAPVERSION_107 AVC: true YUV420: true
org.kde.krdp: Selected caps: RDPGFX_CAPVERSION_107
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QApplication(0x7ffdf8dd84f0), parent’s thread is QThread(0x6485889aef90), current thread is QThread(0x648588c7cc00)
org.kde.krdp: Started Freedesktop Portal session
libva info: VA-API version 1.23.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
kpipewire_vaapi_logging: VAAPI: Intel iHD driver for Intel(R) Gen Graphics - 26.1.2 () in use for device “/dev/dri/renderD128”
kpipewire_vaapi_logging: VAAPI: entrypoint 6 of profile 13 is not supported by the device “/dev/dri/renderD128”
libva info: VA-API version 1.23.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
kpipewire_vaapi_logging: VAAPI: entrypoint 6 of profile 14 is not supported by the device “/dev/dri/renderD128”
kpipewire_vaapi_logging: VAAPI: entrypoint 8 of profile 14 is not supported by the device “/dev/dri/renderD128”
libva info: VA-API version 1.23.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
kpipewire_vaapi_logging: VAAPI: entrypoint 6 of profile 6 is not supported by the device “/dev/dri/renderD128”
libva info: VA-API version 1.23.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
kpipewire_vaapi_logging: VAAPI: entrypoint 6 of profile 13 is not supported by the device “/dev/dri/renderD128”
[Parsed_scale_vaapi_1 @ 0x74a4c804b700] Failed to create processing pipeline config: 12 (the requested VAProfile is not supported).
[Parsed_scale_vaapi_1 @ 0x74a4c804b700] Failed to configure output pad on Parsed_scale_vaapi_1
kpipewire_record_logging: Failed configuring filter graph
[libx264 @ 0x74a4c804d280] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x74a4c804d280] profile Constrained Baseline, level 6.1, 4:2:0, 8-bit
kpipewire_dmabuf_logging: eglChooseConfig returned this many configs: 1

Known issue, disabled by upstream Debian nearly 9 years ago. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880157

Unfortunately, we’re between a rock and a hard place on this one as we can’t allow the required component into the main repository, so it has to stay this way.

2 Likes

thanks for the response :slight_smile:

I eventually found that both the Snap and Flatpak versions of Remmina work nicely …. krdc not so much

So I’ve landed on using the Snap version of Remmina (noting that it is necessary to provide the security permissions noted in the welcome message)

sudo snap connect remmina:audio-record :audio-record
sudo snap connect remmina:avahi-observe :avahi-observe
sudo snap connect remmina:cups-control :cups-control
sudo snap connect remmina:mount-observe :mount-observe
sudo snap connect remmina:password-manager-service :password-manager-service
sudo snap connect remmina:ssh-keys :ssh-keys
sudo snap connect remmina:ssh-public-keys :ssh-public-keys

thanks again

1 Like

Current FreeRDP supports loading of openh264 at run time. This would allow H.264 decoding without static dependency and Ubuntu provides libopenh264 in universe.

Thanks for the pointer to H264 ….. I found that installing

intel-media-va-driver-non-free

enabled the server to offload h264 to the gpu and cpu usage dropped markedly on my underpowered Intel 4005 CPU

Also … it is possible to manage the rdp “server” (krdp) over an ssh session ie. log in and start / restart or stop the rdp server. There’s a systemd service defined at

/usr/lib/systemd/user/app-org.kde.krdpserver.service

so you can start an ssh session then to start or stop the server …

systemctl –user start ‘app-org.kde.krdpserver’

so if the rdp server stops for any reason it can be restarted. I chose to

  1. create a copy of the service in ~/.config/systemd/user/krdc.service
  2. modify my service to autostart and restart (if it fails)
  3. enable the service so it auto-starts and I’m no longer reliant on the KDe Settings dialog (pros and cons to that)

The above is not necessary and may even be a trap, but it’s much easier for me to find and manage

I’ve tested and confirmed the service can be started and stopped and restarted over ssh

Net - I’m much more comfortable relying on krdp for remote access & management since I know that I can manage the rdp server over ssh (via the service)

YMMV