Bug 1761144

Summary: Remove unsupported options from xfreerdp /help
Product: Red Hat Enterprise Linux 8 Reporter: Gerrit Slomma <gerrit.slomma>
Component: freerdpAssignee: Ondrej Holy <oholy>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 8.0CC: jkoten, mkrajnak
Target Milestone: rc   
Target Release: 8.0   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: freerdp-2.0.0-47.rc4.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-11-04 02:39:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Gerrit Slomma 2019-10-12 21:19:42 UTC
Description of problem:

USB-redirect for xfreerdp to Windows-client not working.
Fails with missing library /usr/lib64/freerdp2/liburbdrc-client.so

Version-Release number of selected component (if applicable):
freerdp 2:2.0.0-46.rc4.el8

How reproducible:
launch xfreerpd session to a Windows-10-client with usb-redirection

Steps to Reproduce:
1.
2.
3.

Actual results:

[roadrunner@hive02 ~]$ xfreerdp /d:testdomain /gdi:hw /u:User /v:192.168.1.253:3389 /f /network:lan /usb:auto
[22:53:39:864] [4893:4894] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[22:53:39:864] [4893:4894] [INFO][com.freerdp.client.common.cmdline] - loading channelEx drdynvc
[22:53:39:948] [4893:4894] [INFO][com.freerdp.crypto] - creating directory /home/roadrunner/.config/freerdp
[22:53:39:948] [4893:4894] [INFO][com.freerdp.crypto] - creating directory [/home/roadrunner/.config/freerdp/certs]
[22:53:39:948] [4893:4894] [INFO][com.freerdp.crypto] - created directory [/home/roadrunner/.config/freerdp/server]
[22:53:39:026] [4893:4894] [ERROR][com.freerdp.crypto] - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[22:53:39:026] [4893:4894] [ERROR][com.freerdp.crypto] - @           WARNING: CERTIFICATE NAME MISMATCH!           @
[22:53:39:026] [4893:4894] [ERROR][com.freerdp.crypto] - @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[22:53:39:026] [4893:4894] [ERROR][com.freerdp.crypto] - The hostname used for this connection (192.168.1.253:3389) 
[22:53:39:026] [4893:4894] [ERROR][com.freerdp.crypto] - does not match the name given in the certificate:
[22:53:39:026] [4893:4894] [ERROR][com.freerdp.crypto] - Common Name (CN):
[22:53:39:026] [4893:4894] [ERROR][com.freerdp.crypto] - 	PC12.TESTDOMAIN.local
[22:53:39:026] [4893:4894] [ERROR][com.freerdp.crypto] - A valid certificate for the wrong name should NOT be trusted!
Certificate details:
	Subject: CN = PC12.TESTDOMAIN.local
	Issuer: CN = PC12.TESTDOMAIN.local
	Thumbprint: 47:c8:5a:18:09:35:26:63:3b:dd:1d:f1:b6:19:e0:e2:b3:07:30:ba
The above X.509 certificate could not be verified, possibly because you do not have
the CA certificate in your certificate store, or the certificate has expired.
Please look at the OpenSSL documentation on how to add a private CA to the store.
Do you trust the above certificate? (Y/T/N) y
Password: 
[22:53:46:331] [4893:4894] [INFO][com.freerdp.gdi] - Local framebuffer format  PIXEL_FORMAT_BGRX32
[22:53:46:331] [4893:4894] [INFO][com.freerdp.gdi] - Remote framebuffer format PIXEL_FORMAT_RGB16
[22:53:46:370] [4893:4894] [INFO][com.winpr.clipboard] - initialized POSIX local file subsystem
[22:53:46:371] [4893:4894] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel urbdrc
[22:53:46:372] [4893:4894] [ERROR][com.winpr.library] - LoadLibraryA: /usr/lib64/freerdp2/liburbdrc-client.so: cannot open shared object file: No such file or directory
[22:53:46:372] [4893:4894] [WARN][com.freerdp.addin] - Failed to load channel urbdrc [(nil)]
[22:53:46:372] [4893:4894] [ERROR][com.freerdp.channels.drdynvc.client] - drdynvc_virtual_channel_event_connected failed with error 1
[22:53:46:372] [4893:4894] [ERROR][com.freerdp.core] - drdynvc_virtual_channel_init_event_ex reported an error. Error was 1
[22:53:46:372] [4893:4894] [ERROR][com.freerdp.core] - checkChannelErrorEvent() failed - 0
[22:53:46:372] [4893:4894] [INFO][com.freerdp.client.common] - Network disconnect!
[22:53:46:372] [4893:4894] [ERROR][com.freerdp.client.x11] - Failed to check FreeRDP file descriptor
[22:53:46:373] [4893:4894] [ERROR][com.winpr.sync.wait] - invalid hHandle.
[22:53:46:373] [4893:4894] [ERROR][com.freerdp.channels.drdynvc.client] - WaitForSingleObject failed with error 6
[22:53:46:373] [4893:4894] [ERROR][com.freerdp.channels.drdynvc.client] - drdynvc_virtual_channel_event_disconnected failed with error 6

Expected results:

RDP-session is established.

Additional info:

Comment 1 Ondrej Holy 2019-10-15 13:38:22 UTC
It doesn't work on Fedora as well, this is because the corresponding -DCHANNEL_URBDRC_CLIENT=ON and -DCHANNEL_URBDRC=ON build options are not used (resp. some dependencies are missing). Hmm, it would be nice to remove "/usb" from help output if it is not built. Also, it would be nice to print more user-friendly error in this case. Anyway, I will take a look at what needs to be done to support this feature...

Comment 2 Ondrej Holy 2019-11-15 11:52:19 UTC
I've tried to rebuild the freerdp package with the mentioned build options, but the redirection fails for me with various errors, which made me think that it is not enabled on purpose. Can you please be more specific about your needs? Is it ok if we remove /usb and other unsupported options from help, or do you really need USB redirection for some reason? Also if you are our customer, please contact our support team.

Comment 3 Gerrit Slomma 2019-11-15 12:04:06 UTC
I just wanted to provide the (virtualized on a server) Windows 10 with a localy plugged in USB-Stick and -smartcard-Reader.
If it is not possible to support it i could live with that for the moment.
But i think the help and doc should be updated.

Comment 4 Ondrej Holy 2019-11-18 09:42:18 UTC
Thanks for the info. Mass storage devices aren't supported by USB redirection. There is /drive for this purpose. For smartcards there is /smartcard. So you should not need /usb, but let this open as it would be nice to remove unsupported options from the help...

Comment 7 Gerrit Slomma 2020-05-09 11:25:08 UTC
Hello.
/drives, /audio, /mic, /smartcard are working.
But what about webcams?

Comment 8 Martin Krajnak 2020-05-13 12:58:35 UTC
The xfreerdp binary from freerdp-2.0.0-47.rc4.el8 does not contain /usb in help anymore.

Comment 9 Ondrej Holy 2020-05-13 13:14:11 UTC
For webcams is /usb needed, but if I am not mistaken, it is not enabled, because it is pretty buggy. There is also a new protocol for webcam redirection, but it is not implemented yet, see https://github.com/FreeRDP/FreeRDP/issues/4971. If you need this feature, please open a new feature report, but preferably over our customer portal...

Comment 12 errata-xmlrpc 2020-11-04 02:39:26 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: freerdp and vinagre security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2020:4647