RDP client for Haiku

Today I needed to connect to a Windows server and I wanted to try from my Haiku instance to avoid rebooting.

Given it was more up-to-date, I installed FreeRDP. And using it I was able to connect.

But the connection was near to unusable. It took like 1 second to redraw the screen, so you can approximate to 1FPS :smiley:

Did anyone try to use an RDP or VNC client before? Did one work well?

I saw that FreeRDP on HaikuDepot is a fairly old version (2.4.1), but when I tried to compile the most recent one 2.9.0 I got into quite a few troubles (missing librt, some undefinied symbols) and thus I was trying to understand what are the options.

IMG_20221218_120354_599
IMG_20221218_120350_199

12 Likes

Awesome! Is there a package for remmina? Can’t see it anywhere

Can you share where (missing: APPINDICATOR_LIBRARY APPINDICATOR_INCLUDE_DIR) dependency can be found? It doesn’t seem to be available on HaikuDepot, nor I could find the library source code on a quick search on google, where can appindicator be downloaded to compile Remmina?

Ok, I was able to compile it using cmake -GNinja . -DWITH_VTE=OFF -DHAVE_LIBAPPINDICATOR=OFF -DWITH_WEBKIT2GTK=OFF -DFREERDP_INCLUDE_DIR=/system/develop/headers/freerdp2 -DWITH_CUPS=OFF -DWITH_FREERDP3=OFF -DWINPR_INCLUDE_DIR=/system/develop/headers/winpr2/ -DCMAKE_INSTALL_PREFIX=/boot/home/Remmina

Also I had to do a minor patch to src/CMakeList.txt to make it compile

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a6e1c9e05..282212a42 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -155,7 +155,7 @@ compile_gresources(
 add_custom_target(resource DEPENDS ${RESOURCE_FILE})
 add_executable(remmina ${REMMINA_SRCS} ${RESOURCE_FILE})
 add_dependencies(remmina resource)
-target_link_libraries(remmina ${GTK_LIBRARIES} -rdynamic)
+target_link_libraries(remmina ${GTK_LIBRARIES} -lnetwork)
 
 if(WITH_PYTHONLIBS)
   if(PythonLibs_FOUND)

But in the end, not much changed from using freerdp provided by HaikuDepot, as Remmina links against it. I guess improvements can be seen by building newest FreeRDP, but I failed to do so for now.

4 Likes

5 Likes

Would you be willing to provide the patched version?

I tried building FreeRDP latest checkout, but with X11 there are undefined symbols in Xlib (like XUnmapSubwindows), with Wayland it relies on linux/input.h for Keyboard and Mouse handling and it seemed to miss _IOR definition from ioctl.h which I’m not sure how they should be defined in Haiku.

Soon. I’m currently writing modules for sound playback and clipboard integration.

6 Likes

FreeRDP updated to 2.9.0

  • audio backend implemented
1 Like

Probably something I could implement in Xlibe without too much work. But the native client for FreeRDP is probably better to use overall.

1 Like

I almost completely rewrote the Haiku-backend for FreeRDP. It now supports audio playback and clipboard operation (only text/plain). The new version is already available on HaikuDepot.

17 Likes

That’s great, thank you for such effort :smiley:

Sadly I updated to FreeRDP 2.9 and now when I try to connect to the server I only get a white window. Is there any setting that might be causing this?

It’s weird. Try turning on 32-bit color. /bpp:32

This are my options: freerdp winserver.rdp +bitmap-cache +glyph-cache /rfx +gfx:AVC444 /compression /clipboard /network:modem

But even more interestingly, I succeeded compiling Remmina against the new freerdp library. And that works great, it’s only the freerdp command that shows a white window :man_shrugging:

I have not tested the connection with gfx enabled. Try without it.

Same behaviour, I also tried with freerdp /bpp:32 and nothing else, still white window.

I’m on a train right now, so I won’t be able to look more closely until three days later. Sorry.

In remmina there is a problem with the keyboard when working with rdp. The modifier keys do not work.

That’s actually easy to solve, if you click on the Remmina Main Menu (The hamburger button on the right), then Preferences, and go into the RDP section, there is a Use client keyboard mapping option that addresses that issue.

Is there any error messages in the terminal when connecting?