Hi,
I am porting FreeRDP and Guacamole to OpenBSD for the use of RDP.
Guacamole works perfect with ssh sessions to Linux/OpenBSD systems, but
I am really after the RDP functionality which doesn't work with the
latest guacamole release.
To ensure that the issue is not a "fixed" bug, I am using the "main"
branch of Guacamole (as of the morning of June 25, 2020).
I have got the FreeRDP port of the main branch (freerdp-3.0.0dev)
working using xfreerdp to Windows XP totally fine. xfreerdp from the
latest release branch of FreeRDP (2.1.2) does not work properly, that's
why I've worked on the latest GIT Repository. I found individual
patches that made xfreerdp from 2.1.2 work, so I went all in and am
working with the main branch.
Guacamole connects to the same Windows XP box (legacy, interfaced to
proprietary hardware and cannot be upgraded) fine, but when I click on
the "Start" menu, guacamole errors out and a reconnect happens, which
errors out again, etc.
What would be the best way to be troubleshooting this? I am an
experienced C programmer, but new to FreeRDP/Guacamole.
desktop# guacd -f -L debug
guacd[626]: INFO: Guacamole proxy daemon (guacd) version 1.2.0 started
guacd[626]: DEBUG: Successfully bound socket to host 127.0.0.1,
port 4822
guacd[626]: INFO: Listening on host 127.0.0.1, port 4822
guacd[626]: INFO: Creating new client for protocol "rdp"
guacd[626]: INFO: Connection ID is
"$51851f68-c2b4-41b7-a254-75a45ce5e554"
guacd[71005]: DEBUG: Processing instruction: size
guacd[71005]: DEBUG: Processing instruction: audio
guacd[71005]: DEBUG: Processing instruction: video
guacd[71005]: DEBUG: Processing instruction: image
guacd[71005]: DEBUG: Processing instruction: timezone
guacd[71005]: DEBUG: Parameter "console" omitted. Using default value
of 0.
guacd[71005]: DEBUG: Parameter "console-audio" omitted. Using default
value of 0.
guacd[71005]: DEBUG: Parameter "disable-auth" omitted. Using default
value of 0.
guacd[71005]: INFO: No security mode specified. Defaulting to
security mode negotiation with server.
guacd[71005]: DEBUG: User resolution is 1920x937 at 96 DPI
guacd[71005]: DEBUG: Parameter "dpi" omitted. Using default value of 96.
guacd[71005]: DEBUG: Using resolution of 1920x937 at 96 DPI
guacd[71005]: DEBUG: Parameter "read-only" omitted. Using default
value of 0.
guacd[71005]: DEBUG: Parameter "client-name" omitted. Using default
value of "Guacamole RDP".
guacd[71005]: DEBUG: Parameter "enable-wallpaper" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "enable-theming" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "enable-font-smoothing" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "enable-full-window-drag" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "enable-desktop-composition" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "enable-menu-animations" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "disable-bitmap-caching" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "disable-offscreen-caching" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "disable-glyph-caching" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "color-depth" omitted. Using default
value of 16.
guacd[71005]: DEBUG: Parameter "enable-printing" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "printer-name" omitted. Using default
value of "Guacamole Printer".
guacd[71005]: DEBUG: Parameter "enable-drive" omitted. Using default
value of 0.
guacd[71005]: DEBUG: Parameter "drive-name" omitted. Using default
value of "Guacamole Filesystem".
guacd[71005]: DEBUG: Parameter "drive-path" omitted. Using default
value of "".
guacd[71005]: DEBUG: Parameter "create-drive-path" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "disable-download" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "disable-upload" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "timezone" omitted. Using default
value of "America/Edmonton".
guacd[71005]: DEBUG: Parameter "enable-sftp" omitted. Using default
value of 0.
guacd[71005]: DEBUG: Parameter "sftp-hostname" omitted. Using default
value of "192.168.124.101".
guacd[71005]: DEBUG: Parameter "sftp-port" omitted. Using default
value of "22".
guacd[71005]: DEBUG: Parameter "sftp-username" omitted. Using default
value of "steve".
guacd[71005]: DEBUG: Parameter "sftp-password" omitted. Using default
value of "".
guacd[71005]: DEBUG: Parameter "sftp-passphrase" omitted. Using
default value of "".
guacd[71005]: DEBUG: Parameter "sftp-root-directory" omitted. Using
default value of "/".
guacd[71005]: DEBUG: Parameter "sftp-server-alive-interval" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "sftp-disable-download" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "sftp-disable-upload" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "recording-name" omitted. Using
default value of "recording".
guacd[71005]: DEBUG: Parameter "recording-exclude-output" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "recording-exclude-mouse" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "recording-include-keys" omitted.
Using default value of 0.
guacd[71005]: DEBUG: Parameter "create-recording-path" omitted. Using
default value of 0.
guacd[71005]: INFO: Resize method: none
guacd[71005]: DEBUG: Parameter "enable-audio-input" omitted. Using
default value of 0.
guacd[71005]: DEBUG: Parameter "gateway-port" omitted. Using default
value of 443.
guacd[71005]: DEBUG: Parameter "disable-copy" omitted. Using default
value of 0.
guacd[71005]: DEBUG: Parameter "disable-paste" omitted. Using default
value of 0.
guacd[71005]: DEBUG: Parameter "wol-send-packet" omitted. Using
default value of 0.
guacd[71005]: INFO: User "@922fd4ca-e877-4c72-9747-552be84fb27e"
joined connection "$51851f68-c2b4-41b7-a254-75a45ce5e554" (1 users now
present)
guacd[71005]: DEBUG: Client is using protocol version "VERSION_1_1_0"
guacd[71005]: INFO: Loading keymap "base"
guacd[71005]: INFO: Loading keymap "en-us-qwerty"
guacd[71005]: DEBUG: freerdp_connect:freerdp_set_last_error_ex
resetting error state
guacd[71005]: DEBUG: Support for CLIPRDR (clipboard redirection)
registered. Awaiting channel connection.
guacd[71005]: DEBUG: Local framebuffer format PIXEL_FORMAT_BGRX32
guacd[71005]: DEBUG: Remote framebuffer format PIXEL_FORMAT_RGB16
guacd[71005]: DEBUG: primitives autodetect, using generic
guacd[71005]: DEBUG:
freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting
error state
guacd[71005]: DEBUG: freerdp_tcp_connect:freerdp_set_last_error_ex
resetting error state
guacd[71005]: DEBUG: CLIPRDR (clipboard redirection) channel connected.
guacd[71005]: DEBUG: Clipboard data received. Reporting availability
of clipboard data to RDP server.
** Everything works now, until I click on the "Start" Menu **
guacd[71005]: DEBUG: [0x18] FastGlyph - update_read_dstblt_order() failed
guacd[71005]: DEBUG: order flags 05 failed
guacd[71005]: DEBUG: Fastpath update Orders [0] failed, status 0
guacd[71005]: DEBUG: fastpath_recv_update() - -1
guacd[71005]: DEBUG: fastpath_recv_update_data() fail
guacd[71005]: DEBUG: transport_check_fds:
transport->ReceiveCallback() - -3
guacd[71005]: DEBUG: freerdp_check_fds() failed - 0
guacd[71005]: ERROR: Connection closed.
guacd[71005]: INFO: User "@922fd4ca-e877-4c72-9747-552be84fb27e"
disconnected (0 users remain)
guacd[71005]: INFO: Last user of connection
"$51851f68-c2b4-41b7-a254-75a45ce5e554" disconnected
guacd[71005]: DEBUG: Requesting termination of client...
guacd[71005]: INFO: Internal RDP client disconnected
guacd[71005]: DEBUG: Client terminated successfully.
guacd[626]: INFO: Connection
"$51851f68-c2b4-41b7-a254-75a45ce5e554" removed.
The xfreerdp version that works:
desktop$ xfreerdp /buildconfig
This is FreeRDP version 3.0.0-dev (n/a)
Build configuration: BUILD_TESTING=ON BUILTIN_CHANNELS=ON HAVE_AIO_H=
HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1
HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1
HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS=
HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL=1 HAVE_SYSLOG_H=1
HAVE_SYS_EVENTFD_H= HAVE_SYS_FILIO_H=1 HAVE_SYS_MODEM_H=
HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H=1 HAVE_SYS_STRTIO_H=
HAVE_SYS_TIMERFD_H= HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1
HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=OFF WITH_CAIRO=OFF WITH_CCACHE=ON
WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON
WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON
WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON
WITH_CLIENT_INTERFACE=OFF WITH_CUPS=ON WITH_DEBUG_ALL=OFF
WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF
WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF
WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF
WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF
WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF
WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF
WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF
WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF
WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF
WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF
WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF
WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF
WITH_DEBUG_XV=OFF WITH_DIRECTFB=OFF WITH_DSP_EXPERIMENTAL=OFF
WITH_DSP_FFMPEG=OFF WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=TRUE
WITH_FFMPEG=TRUE WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF
WITH_GSSAPI=OFF WITH_GSTREAMER_0_10=OFF WITH_GSTREAMER_1_0=OFF
WITH_ICU=OFF WITH_IPP=OFF WITH_JPEG=OFF WITH_LAME=OFF
WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=OFF WITH_MACAUDIO=OFF
WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON
WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF
WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=OFF WITH_PCSC=ON
WITH_PROFILER=OFF WITH_PULSE=OFF WITH_SAMPLE=OFF
WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1
WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1
WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1
WITH_SERVER=OFF WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF
WITH_SOXR=OFF WITH_SSE2=OFF WITH_SWSCALE=OFF WITH_THIRD_PARTY=OFF
WITH_VAAPI=OFF WITH_VALGRIND_MEMCHECK=OFF
WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=OFF WITH_WINPR_TOOLS=ON
WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON
WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON
WITH_XRENDER=ON WITH_XSHM=ON WITH_XV=ON WITH_ZLIB=ON
Build type: Release
CFLAGS: -O2 -pipe -g -I/usr/X11R6/include
-I/usr/local/include -Wno-unused-parameter -Wno-unused-macros
-Wno-padded -Wno-c11-extensions -Wno-gnu
-Wno-unused-command-line-argument -Wno-deprecated-declarations -DWINPR_DLL
Compiler: Clang, 8.0.1
Thanks,
Steve Williams