@Everyone,
Even if Ubuntu is the only officially supported distro for RDM, we know Linux is all about choices and we wouldn't want to change that.
In that optic, here's a little guide to help you install RDM on your preferred, unsupported distro.
First of all, dependancies.
glibc 2.27
libwebkit2gtk-4.0
ca-certificates
libsecret-1-0
gnome-keyring
If you are installing RDM on a distro supporting .deb files, you are done.
Simply install the deb package and everything should be good to go.
You can start RDM using the menu icon or the remotedesktopmanager terminal command.
You can also opt to install the net.devolutions.RDM or net.devolutions.RDMFree flatpak package from flathub.
Otherwise, you can manually install RDM using the following steps
Extract deb file content. (ar x RemoteDesktopManager_x.x.x.x_amd64.deb)
Extract data.tar.xz content. (tar -xf data.tar.xz)
Copy bin/remotedesktopmananger to /bin
Copy usr/lib/devolutions/RemoteDesktopManager to /usr/lib/devolutions/RemoteDesktopManager
You can now start RDM using the remotedesktopmanager terminal command.
Let us know if you still have issues running RDM on your preferred distro.
Known issues.
On platform running non-gnome desktop environment, the splash screen might prevent entering your serial when launching RDM for the first time. Simply press the 'Cancel' button to close the dialog, that should make the splash screen disappear. You can then use the Help menu tab to access the registration form again.
Jonathan Lafontaine
Recommended Answer
I’m closing this thread since we now have a dedicated installation guide available:
https://docs.devolutions.net/rdm/installation/client/?tab=linux
The guide covers basic installation methods (DEB, RPM), as well as AUR, Cloudsmith, Flatpak, and manual installation for RDM Linux.
If you encounter any issues during installation, feel free to open a new thread on our forum.
Regards,
Gabriel Dubois
Hey,
so I got this up and running but I did not need to copy eveything over, though this might be part of the issue? I tried to use alien to convert the deb but it failed, however it left all the packages and looks like it installed the software. So I can launch it and I have the splash screen issue because I am running KDE but thats ok. So get round that issue. However when I relaunch the product activator and try and login with my account before I can enter my account details the product crashes with the following error:
^[^[Marshaling clicked signal
Exception in Gtk# callback delegate
Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Devolutions.RemoteDesktopManager.Business.TryGoOfflineException: Unable to connect to Devolutions acc
ount.
at Devolutions.RemoteDesktopManager.RDMOProxy.RDMOWebApiClient.Login (System.String username, System.String datasourceID, System.Boolean forcePromptLucid, System.String source, System.String applicationPassw
ord) [0x0037f] in <0ec0a23188e84f8687ec3aa3ee08b046>:0
at Devolutions.RemoteDesktopManager.Managers.RDMOManager.GetLoginInfo (System.Boolean forcePromptLucid, System.Boolean isFirstLogin) [0x0002d] in <86509d9baee44cf8819fd9d6da537f6d>:0
at Devolutions.RemoteDesktopManager.Managers.RDMOManager.Login (System.Boolean forcePromptLucid, System.Boolean isFirstLogin) [0x00009] in <86509d9baee44cf8819fd9d6da537f6d>:0
at Devolutions.RemoteDesktopManager.Managers.RDMOManager.EnsureLogged (System.Boolean forcePromptLucid) [0x00007] in <86509d9baee44cf8819fd9d6da537f6d>:0
at Devolutions.RemoteDesktopManager.Managers.RDMOManager.ApplyFreeEditionLicense () [0x00000] in <86509d9baee44cf8819fd9d6da537f6d>:0
at Devolutions.RemoteDesktopManager.Managers.RDMOManager.ApplyUserLicense () [0x00007] in <86509d9baee44cf8819fd9d6da537f6d>:0
at Client.Windows.RegistrationFreeOptionWindow.ValidateRegistration () [0x00034] in <c51ae6b1ddd24133b81e8165e76ed15f>:0
at Client.Windows.RegistrationFreeOptionWindow.OnOk (System.Object sender, System.EventArgs args) [0x00000] in <c51ae6b1ddd24133b81e8165e76ed15f>:0
at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo cult
ure) [0x0006a] in <d13c8b563008422a8c5aaec0a74089cc>:0
--- End of inner exception stack trace ---
at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo cult
ure) [0x00083] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x000e7] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00008] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at GLib.Signal.ClosureInvokedCB (System.Object o, GLib.ClosureInvokedArgs args) [0x00034] in <5a34df7d261240358d61453b6bc52857>:0
at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs args) [0x00009] in <5a34df7d261240358d61453b6bc52857>:0
at GLib.SignalClosure.MarshalCallback (System.IntPtr raw_closure, System.IntPtr return_val, System.UInt32 n_param_vals, System.IntPtr param_values, System.IntPtr invocation_hint, System.IntPtr marshal_data)
[0x00080] in <5a34df7d261240358d61453b6bc52857>:0
at GLib.ExceptionManager.RaiseUnhandledException (System.Exception e, System.Boolean is_terminal) [0x00000] in <5a34df7d261240358d61453b6bc52857>:0
at GLib.SignalClosure.MarshalCallback (System.IntPtr raw_closure, System.IntPtr return_val, System.UInt32 n_param_vals, System.IntPtr param_values, System.IntPtr invocation_hint, System.IntPtr marshal_data)
[0x00000] in <5a34df7d261240358d61453b6bc52857>:0
at System.Object.wrapper_native_0x7fcfd9f81e60 (System.IntPtr ) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at Gtk.Dialog.Run () [0x00000] in <c2feb1c5d39a4660b3f5c10dab7825eb>:0
at Devolutions.RemoteDesktopManager.Managers.UIManager.ShowFreeRegistration () [0x00000] in <c51ae6b1ddd24133b81e8165e76ed15f>:0
at Devolutions.RemoteDesktopManager.Services.UIService.ShowFreeRegistration () [0x00000] in <c51ae6b1ddd24133b81e8165e76ed15f>:0
at Devolutions.RemoteDesktopManager.Managers.RegistrationManager.ShowRegisterFree () [0x00000] in <86509d9baee44cf8819fd9d6da537f6d>:0
at Devolutions.RemoteDesktopManager.Managers.ActionManager.RegisterVersion () [0x00000] in <c51ae6b1ddd24133b81e8165e76ed15f>:0
at Devolutions.RemoteDesktopManager.Managers.ActionStateManager+<>c.<get_RegisterVersionState>b__133_0 (Devolutions.RemoteDesktopManager.IConnectionSource source) [0x00000] in <c51ae6b1ddd24133b81e8165e76ed1
5f>:0
at Client.Views.Controls.ActionButton.<set_ActionState>b__5_0 (System.Object sender, System.EventArgs args) [0x00000] in <c51ae6b1ddd24133b81e8165e76ed15f>:0
at System.Reflection.RuntimeMethodInfo.InternalInvoke (System.Reflection.RuntimeMethodInfo , System.Object , System.Object[] , System.Exception& ) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo cult
ure) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at GLib.Signal.ClosureInvokedCB (System.Object o, GLib.ClosureInvokedArgs args) [0x00000] in <5a34df7d261240358d61453b6bc52857>:0
at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs args) [0x00000] in <5a34df7d261240358d61453b6bc52857>:0
at GLib.SignalClosure.MarshalCallback (System.IntPtr raw_closure, System.IntPtr return_val, System.UInt32 n_param_vals, System.IntPtr param_values, System.IntPtr invocation_hint, System.IntPtr marshal_data)
[0x00000] in <5a34df7d261240358d61453b6bc52857>:0
at System.Object.wrapper_native_0x7fcfda0184d0 () [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at Gtk.Application.Run () [0x00000] in <c2feb1c5d39a4660b3f5c10dab7825eb>:0
at Devolutions.RemoteDesktopManager.Program.Main (System.String[] args) [0x00000] in <d3e4107d33824540b8a80da32fd54328>:0 Any ideas how to fix this?
i also dont seem to have the /user/share/mono or /user/share/.mono so maybe i am missing something?
I tried adding it as a datasource and got a similar error, but it didnt crash the system however I did see this error in the terminal:
(RemoteDesktopManager.Free:55755): Gtk-CRITICAL **: 20:44:01.025: gtk_entry_set_text: assertion 'text != NULL' failed
I also tried this:
mkdir -p /usr/share/.mono/new-certs/Trust
sudo trust extract --filter=ca-anchors --format=pem-directory-hash /usr/share/.mono/new-certs/Trust/But that did not work got the following:
11-kit: format requires a purpose, specify it with --purpose; defaulting to 'server-auth'
p11-kit: directory already exists: /usr/share/.mono/new-certs/Trust/
and still get the same issue, I checked the locations listed:
To generate the mono certificates, you can follow these steps
Make sure the /usr/share/mono/new-certs/Trust exists otherwise, mkdir -p /usr/share/.mono/new-certs/Trust
If the previous folder didn't exist or was empty, create the mono certificates using command "for f in /usr/share/ca-certificates/mozilla/*.crt ; do cp $f /usr/share/.mono/new-certs/Trust/$(openssl x509 -noout -hash -in $f).0 ; done"*
* On some systems, the ca-certificates are located in /usr/share/pki/trust and have a pem extension. In this case, replace the previous command with "for f in /usr/share/pki/trust/*.pem ; do cp $f /usr/share/.mono/new-certs/Trust/$(openssl x509 -noout -hash -in $f).0 ; done"
But none of them exist for me, running Fedora 33.
UPDATE: Ok looks like I fixed it, I removed the Trust folder then ran the commands this generated the Trust folder with all the certs. So the correct commands for me where:
mkdir -p /usr/share/.mono/new-certs/
sudo trust extract --filter=ca-anchors --format=pem-directory-hash /usr/share/.mono/new-certs/Trust/Though not sure I have my master key that its asking for :(, normally once logged in it just syncs my backup. How do I do this now? Both the My datasource button and devolution's account button are grayed out.
Hi,
What data source are you trying to connect to?
Jonathan Lafontaine
Hi,
What data source are you trying to connect to?
The online free account. I used a windows machine and exported it to a RDM file and then imported. So I restored the connection for now.
Could you please create a new thread for the RDP issue?
Jonathan Lafontaine
Could you please create a new thread for the RDP issue?
I fixed the RDP issue, my creds where wrong and as its linux it did not prompt just displayed a blank screen. Though I would say the refresh and performance is not as good, I tried the native RDP and its better. But nothing that cant be handled. Unless you have any ideas on tweaks.
Also a couple of other things, in the linux version you cant right click an entry and copy the username or password, same for password lists.
Events before login like running a powershell script also dont exist. However now powershell core exists surly that could have stayed? Or allow bash scripts? Some of my entries did lookups or other things before launching. Any ideas on them or do these need new threads as well?
Auto fill events also dont happen. It can discover the fileds but nothing is pasted. I am also using a password list entry if that makes a diffrence.
** (RemoteDesktopManager.Free:121852): WARNING **: 15:01:39.833: Error running javascript: https://signin.aws.amazon.com/ TypeError: undefined is not an object (evaluating 'document.forms['the_form']['resolving_input']')
** (RemoteDesktopManager.Free:121852): WARNING **: 15:01:39.833: Error running javascript: https://signin.aws.amazon.com/ TypeError: undefined is not an object (evaluating 'document.forms['the_form']['password']')
** (RemoteDesktopManager.Free:121852): WARNING **: 15:01:39.833: Error running javascript: https://signin.aws.amazon.com/ TypeError: null is not an object (evaluating 'document.getElementById('the_form').submit')
This is an exaple of what failes.
For the RDP credential problem, I'll create a ticket to check if we can improve the error handling to provide a better user experience.
To improve performance, you could try disabling some user experience features, like wallpaper, animations.
You can do so in the Experience tab of the RDP entry's settings.

Which native client are you comparing the performance to?
RDM Linux is relatively new (it is barely a year old) compared to other versions of RDM.
Your feedback is important to make sure we focusing our energy on bring back features users actual want and use.
The best way to do that is to create threads in the feature requests section.
Regards
Jonathan Lafontaine
I know its new and am very happy you guys have made this version. Its working for the most part, and its looking good just trying to keep updated on what I find as I do use it heavily at work and at home.
Ill look at seeing if I can improve the performance but it did not have this issue when using it from the same machine but as windows hence raising it now.
I was comparing it to the built in KRDC application.
The password list not being able to copy and past passwords same from the sessions is probably the most annoying part and it not being able to auto inject like it does on windows.
Anythoughts on this?
Auto fill events also dont happen. It can discover the fileds but nothing is pasted. I am also using a password list entry if that makes a diffrence.
** (RemoteDesktopManager.Free:121852): WARNING **: 15:01:39.833: Error running javascript: https://signin.aws.amazon.com/ TypeError: undefined is not an object (evaluating 'document.forms['the_form']['resolving_input']')
Well, that is the problem.
** (RemoteDesktopManager.Free:121852): WARNING **: 15:01:39.833: Error running javascript: https://signin.aws.amazon.com/ TypeError: undefined is not an object (evaluating 'document.forms['the_form']['resolving_input']')Looks like the javascript query we run to autofill the fields isn't working for this page.
I'll open a ticket to look into this.
For RDP, could you try disabling sandboxing to see if this improves the performance?
You can do so in the advanced tab of the RDP entry settings.
Jonathan Lafontaine
Yeah seems that way for all pages not just that one.
I will do that and see if that works.
Under advance I dont have any sandboxing options
Found it , its in the other advance section. However this seems to have causes some strange issues, not graphically. Just the way items perfom and act. Copy and pasting changes characters for example/.
There's another Advanced tab if you click on the RDP (Microsoft Remote Desktop) section
Jonathan Lafontaine
Found it , its in the other advance section. However this seems to have causes some strange issues, not graphically. Just the way items perfom and act. Copy and pasting changes characters for example/.
I'll take a look.
Jonathan Lafontaine
This is the error when starting up on Debian Buster, is it similar?
remotedesktopmanager
Unhandled Exception:
System.TypeInitializationException: The type initializer for 'GLib.Marshaller' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Sys' threw an exception. ---> System.EntryPointNotFoundException: SystemNative_LChflagsCanSetHiddenFlag assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) Interop+Sys.LChflagsCanSetHiddenFlag()
at Interop+Sys..cctor () [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
--- End of inner exception stack trace ---
at System.IO.FileSystem.FileExists (System.ReadOnlySpan`1[T] fullPath, System.Int32 fileType, Interop+ErrorInfo& errorInfo) [0x00007] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.IO.FileSystem.FileExists (System.ReadOnlySpan`1[T] fullPath) [0x00006] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.IO.File.Exists (System.String path) [0x00043] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.TryLoadTzFile (System.String tzFilePath, System.Byte[]& rawData, System.String& id) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.TryGetLocalTzFile (System.Byte[]& rawData, System.String& id) [0x0000f] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.GetLocalTimeZoneFromTzFile () [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.GetLocalTimeZone (System.TimeZoneInfo+CachedData cachedData) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo+CachedData.CreateLocal () [0x00018] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo+CachedData.get_Local () [0x0000c] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.get_Local () [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.CurrentSystemTimeZone..ctor () [0x00011] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZone.get_CurrentTimeZone () [0x00024] in <d13c8b563008422a8c5aaec0a74089cc>:0
at GLib.Marshaller..cctor () [0x00096] in <5a34df7d261240358d61453b6bc52857>:0
--- End of inner exception stack trace ---
at GLib.Global.set_ProgramName (System.String value) [0x00000] in <5a34df7d261240358d61453b6bc52857>:0
at Gtk.Application.SetPrgname () [0x00015] in <c2feb1c5d39a4660b3f5c10dab7825eb>:0
at Gtk.Application.Init () [0x00000] in <c2feb1c5d39a4660b3f5c10dab7825eb>:0
at Devolutions.RemoteDesktopManager.Program.Main (System.String[] args) [0x00000] in <41d0bbf81af6425aab6daf6143f93fec>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'GLib.Marshaller' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Sys' threw an exception. ---> System.EntryPointNotFoundException: SystemNative_LChflagsCanSetHiddenFlag assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) Interop+Sys.LChflagsCanSetHiddenFlag()
at Interop+Sys..cctor () [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
--- End of inner exception stack trace ---
at System.IO.FileSystem.FileExists (System.ReadOnlySpan`1[T] fullPath, System.Int32 fileType, Interop+ErrorInfo& errorInfo) [0x00007] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.IO.FileSystem.FileExists (System.ReadOnlySpan`1[T] fullPath) [0x00006] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.IO.File.Exists (System.String path) [0x00043] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.TryLoadTzFile (System.String tzFilePath, System.Byte[]& rawData, System.String& id) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.TryGetLocalTzFile (System.Byte[]& rawData, System.String& id) [0x0000f] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.GetLocalTimeZoneFromTzFile () [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.GetLocalTimeZone (System.TimeZoneInfo+CachedData cachedData) [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo+CachedData.CreateLocal () [0x00018] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo+CachedData.get_Local () [0x0000c] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZoneInfo.get_Local () [0x00000] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.CurrentSystemTimeZone..ctor () [0x00011] in <d13c8b563008422a8c5aaec0a74089cc>:0
at System.TimeZone.get_CurrentTimeZone () [0x00024] in <d13c8b563008422a8c5aaec0a74089cc>:0
at GLib.Marshaller..cctor () [0x00096] in <5a34df7d261240358d61453b6bc52857>:0
--- End of inner exception stack trace ---
at GLib.Global.set_ProgramName (System.String value) [0x00000] in <5a34df7d261240358d61453b6bc52857>:0
at Gtk.Application.SetPrgname () [0x00015] in <c2feb1c5d39a4660b3f5c10dab7825eb>:0
at Gtk.Application.Init () [0x00000] in <c2feb1c5d39a4660b3f5c10dab7825eb>:0
Do you have mono installed?
Jonathan Lafontaine