58 comments

[ 4.3 ms ] story [ 136 ms ] thread
> Resource Limit Is Reached

> The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.

F

Would this also work with remote Windows RDP sessions?
No, but there are Linux RDP clients (such as Remmina) you can use which I would imagine would also work well from a Pi.
yes. any darn thing that can run a rdp client can work. i have been using a 512mb thin client on a big fat windows 10 machine for more than 4 years now you can most definitely use any Rpi
I worked at a place that swapped out our HP pa-risc workstations for sun ray thin client machines. I actually didn’t mind as the network was pretty fast.

The raspberry pi is a competent little computer and probably way more capable than those “sun” ray thin clients

https://en.m.wikipedia.org/wiki/Sun_Ray

We had Sun rays at uni. I kinda liked them.
The SunRays were sweet. The CPU of the RPi is capable of running circles around the one found in the 'Rays, but in my experience, performance was limited by the server.

The Sun Rays had also decent sound ("CD quality"), a Cisco compatible VPN client and a smart card which allowed one to comfortably drag one's session from one Ray to another (home to office, cubicle to lab, etc.).

I use x2go all the time, I have one single big workstation, and the laptops and the "thin" machine in my lab are tethered to it all the time, even when outside, via wireguard.

I'm not surprised a raspi can do that, as I've used an antique thinkpad x201 for doing it for many many years now!

I'm using freerdp client to connect to an xrdp server. I'm positively surprised of the good user experience it provides on a LAN. Anyone having hands-on experience comparing x2go and xrdp?
Do you know if there is a functioning xrdp server+client combination for Linux? I would like to try to compare to x2go. I tried some on opensuse last year but it didn't work.
I'm successfully using the packages in ubuntu focal (20.04, the latest LTS). It was nearly straight-forward: install and run xrdp on the server, install package freerdp2-x11 on the client. The only unintuitive thing was the keyboard mapping to use, specified with an awkward value passed to the /kbd flag.
well, there's also the audio issues. pulseaudio config for remote use isn't always reliable. but otherwise, yeah xrdp works great for access from machine that already have the client installed.
I used to use cheap Wyse Winterms in a configuration like this years ago. They could be had for about $20 a pop used on eBay 15 years go. A quick look now confirms they can still be had for about $15-20 each. Pair with xrdp on a server and it works great.
I have not done a comparison, but RDP is mostly pixel based from what I understand, while x2go is "protocol" based (and therefore limited to xorg/x11), so it's a LOT quicker than say, VNC (even with compression) -- for example, if you drag a window around, it's perfectly "instant" -- there is no lag.

I can develop using geany/vscode/eclipse remotely over a reasonably good DSL/fibre connection and quite frankly, there is zero difference with being "local" to the workstation. Don't even need a LAN.

Only thing which obviously doesn't work as good is web browsing/video etc as that is inherently a lot more pixel pushing.

Haha.... HN traffic killed the server but anyways the new offering from Raspberry in indeed a great microcontroller from projects.

Ordered it.

Is it really worth posting? I mean it's like "PC as a photo editing machine" and then describe how you install the Photoshop. Come on HN you can do better!
We use such a setup for the students‘ computer lab at our research institute. Great way to get a lot of cheap work stations and introduce students to Linux and server computing.

Although one should also mention that the Pis are a little too slow for „serious“ work, and x2go can be buggy.

meh. if you are on windows you should check rdpwrap. i personally dont give a rats ass about "licensing". using kms38 on ltsc. then use krdc or remmina or whatever and that works beautifully.

it just has to be updated whenever windows gets a new update, lets say every 6 months or so, im not sure

other than that, i have never used linux as a "server" but i guess the performance would be equally good.

How’s the experience of working on it? I’ve been struggling to get a decent remote setup even in my home lab due to network latency. Could be because I’m trying to drive 4K. Even Win10 RDP over a 1300mbps network struggles. I wonder if I need to bite the bullet and install a real graphics card in the R720.

Would love to hear more experiences of others who remote this way where you are “offloading” your compute power elsewhere.

What switch/router is it going through? There's a lot of gigabit hardware that can't push gigabit speeds.
I have a totally over-engineered UniFi setup at home. I’m pretty confident the network is not the issue.

I experience the performance issues on the LAN, for instance, even with a 1,300mbps negotiated connection.

Ah, okay. And I guess you've already played with various group policy around compression, gpu acceleration (RemoteFX) , etc, for RDP.
RemoteFX is something I had not heard of - will take a look!
Do you even struggle with RDP when you're on the same network?

We also have an R720 at work, running a Windows Server 2016 under Hyper-V and it performs very poorly (Windows UI is super slow, etc.). I know next to nothing about physical servers, but I've had great success swapping HDDs for SSDs in laptops to dramatically increase Windows' modern UI's performance. Our R720 has HDDs instead of SSDs, I've thought of upgrading them to see how it works out.

If you ever find a solution, please let me know.

Yes! I am having the same issue, but I have a mixture of old school 10k SAS disks and a bunch of desktop grade SATA SSDs.

Windows performance on this machine is atrocious (virtualized in ESXI) whereas Linux is great.

RemoteFX will enable both GPU acceleration in apps as well as GPU acceleration in the RDP session encode but...

RDP is still only limited to 30 FPS for whatever reason and so you may continue to be disappointed in it.

Also 1,300 Mbps sounds like a wireless network so your main problem on the network side is being half duplex and airtime delays (even from just beacons) not throughput. I'd pick a 100 Mbps hardwire to RDP on over any Wi-Fi setup as the video bandwidth isn't actually that helpful but jitter/latency are problems with trying to send inputs at the same time. Not much you can do about that though.

Doesn't remote fx require special hardware/os on the host side?
Not really, OS wise it can't be Home edition but because Homedoesn't officially support hosting RDP at all. Hardware wise it requires basically "a gpu", even a low end decade old integrated Intel GPU will work.
Yeah my use case isn't really some sort of RDI farm, but just a way to access one of my existing machines which I also happen to use physically. For that use case RDP (without remotefx) works fine, but it doesn't look like setting up remotefx would be easy.
I think you might be reading about RemoteFX vGPU or something else in the RemoteFX family? If so that's a different thing than RemoteFX for RDP. The latter is literally just enabling a couple Group Policies in gpedit - otherwise it's exactly the same as running normal RDP.
Every nerd knob for RDP host configuration can be found under this tree in the group policy editor https://i.imgur.com/PtN0fNt.png

The 2 you need to enable to just enable RemoteFX are "Use hardware graphics adapters for all Remote Desktop Service sessions" to Enabled and "RemoteFX for Windows Server 2008 R2/Configure RemoteFX" to "Enabled". These 2 should net you GPU acceleration in the remote session.

For GPU accelerated encoding you can also set "Configure H.264/AVC hardware encoding for Remote Desktop Connections" to "Enabled".

Those 3 policies are all I usually tick but the rest of the policies in that tree are nerd knob tunables with many relating to bandwidth/resource utilization/image quality tradeoffs if that so interests you.

I connect from Windows 10 client to a Windows 10 host using RDP driving dual 4K and it feels like native, though I mostly just use single 4K. This it’s my daily driver over a standard UK fibre to the cabinet (FTTC) connection client end to a gigabit connection host side.

I’m generally using office, internet, Windows terminals/ssh, IDEs etc. Very rarely an overly dramatic full page video advert will jolt me back to reality that I’m doing this over RDP.

I saw you wrote that you don't think the network is your problem, but it could be. The 1300mbps and UniFI makes me think you are using a wireless connection, and those often deliver much lower bandwidth than they should, and always have more latency than I expect.

Use a wired 1Gbps connection. If it works acceptably -- which it has in every single setting I've tried -- then it is your network, though it might not be where you usually look (e.g. speedtest measures your overall bandwidth, but if you have many retransmits, you might have horrible interactive experience even with sufficient bandwidth).

I should note the same thing happens while hardwired. I definitely wanted to rule it out.
Is your Ubiquiti box doing Deep Packet Inspection over your home network?

It might be frantically trying to look at every packet flying by.

I work with RDP almost every day for several years now, hardly been a problem.

In fact just yesterday while I could easily connect with RDP, Slack was just dying when trying to share screens.

You could try solutions oriented toward gaming like Parsec or Nvidia Gamestream with Moonlight. They use hardware acceleration for video encoding and may have better latency than RDP.

https://parsec.app/

https://moonlight-stream.org/

Don't these and Stadia use RDP under the hood?
Afaik for both Parsec and Moonlight the video is a capture of the screen encoded in h264 or h265 and streamed to the remote client. They may be based on RDP for input but I don't think that's the case.

Moonlight is open-source, you can see in the code yourself as I don't understand most of it. There is also a project that attempt to replace the associated Nvidia Gamestream server but it is quite basic and no longer maintained : https://github.com/loki-47-6F-64/sunshine

If you're trying to drive 4K, I would look at the power of the thin client, and maybe try putting a graphics card there, rather than in the server.

I'd also check your choice of RDP client -- are you using the official Microsoft client or a FOSS one? I believe there are extensions to RDP that basically wrap H.264, which you'd probably want at that resolution.

I wonder how things like X2Go and LTSP (Linux Terminal Server Project) will be re-implemented when Wayland will take over.
Lol i'm getting downvoted (by Wayland fanboys I guess) but no answer so far
The X96 max referenced on the same site looks pretty neat. It's a little Android TV box that appears to be ~$30 or so if you order from China, or ~$65 from Amazon. http://www.multi-seat.com/x96-max/
X96 even has an LED clock display, so you can make it blink 12:00 all the time, just like the real machines.
A few years ago, on my raspberry pi 3, tigervnc was almost fast enough to drive fullscreen video. I had to recompile the jpeg library to switch to turbojpeg and rebuild tigervnc against that.

Hopefully this “just works” now on a raspberry pi 4 and newer raspbian, but I haven’t checked.

was doing this with a pi2 and some tweaked default settings pretty successfully - don't recall what - but I think turning off jpeg compression helped because the CPU didn't have to process the stream as much
I've been doing something similar, but I've had good luck using nomachine. My host machine is a Kubuntu VM running on my Proxmox server, and I switch between using a desktop and laptop as guests, also connecting in remotely via wireguard when away from home (which honestly isn't very much these days).

I tried using xrdp before, but, at least at the time I tried it a few years back, personally felt I got better performance with nomachine vs. xrdp, although perhaps this has changed now. I've tried x2go with individual applications before, but never the entire desktop, perhaps I'll have to give that a try sometime.

I used to use x2go for years, but the slow and buggy clients on macOS and Windows is the biggest drawback. Maybe one day it will get native clients and quickly become the standard.
The capabilities of using a tiny client for a beefy/flexible server seem to be getting better and more mature as robust clients get cheap and bandwidth get solid. I love it. I’ve been very very slowly using AWS as my “computer” more and more. S3 is a wonderfully cheap infinite hard drive and I never have to worry about migrating scripts. And EC2 is as flexible as computing gets. And since I need to recreate everything every time I boot up, reproducibility is a must, but that’s easy when you have it from the get go.

I kinda worry about the economical likely next steps of using a thin client like a raspberry pi, like everything will become netflix/stadia and you never own the important bits.

But on the technical side it’s really great.

I would love to read a blog post about your setup and your routine using this arrangement.
I've been working from home for almost a year using a Pi4B running remmina. The other end is a Dell workstation running x11vnc on Ubuntu 16.04. I've only experienced occasional hiccups that I've narrowed down to things interfering with the Pi wifi reception when it's in a heatsink case.