- Raspberry Pi Rev B with a network connection, monitor, kb, etc.
- A SD card at least 2GB in size. The faster the better.
Let's Set it Up
- Insert the SD card to a workstation to image it. On that workstation:
- Download the ISO. Links here.
- Unpack the ISO to a temporary directory.
- If you're on Linux, skip to step 6. Download DD for windows from here.
- Unpack DD to a working directory and make note of where it is; we'll be using it in a moment.
- Insert your SD card and wipe out all partitions on it. I'll assume you know how for Linux; in Windows use Diskpart: Diskpart (Enter), List Disk (Enter), Select Disk X (Enter), List Partition (Enter), Select Partition X (Enter), Delete Partition (Enter). Repeat list, select, delete for each partition on the SD card then Exit (Enter). Make sure you don't execute this sequence on any other drives or you will loose all your data!
- Image the drive using DD: dd bs=1M if=c:\temp\RPi-TC_ARMv6j_r1.img od=d: WHERE: c:\temp\RPi... = the image location and od=d: references the location of the SD card. Update: If you have issues with dd, give Roadkill's disk imager a try.
- Remove the SD card (properly) and insert it into the Raspberry Pi
- Start it the Pi.
Once the Pi Boots (Note that boot animation) you'll see a bunch of icons on the desktop. To connect to an RDP session, do the following:
- Double click on X2Go Client
- Click the "New Session" button in the upper left corner.
- Name the session, enter the host (make sure the host name corresponds to the cert CN)
- Enter your login as domain\username
- Change "Session Type" to "Connect to Windows terminal server" and check the "Direct RDP Connection"
- Click the "Settings" tab and change the Display to the desired resolution. (Fullscreen works) Note that I haven't been able to get xfreerdp to work yet but rdesktop is working.
- Click "OK"
- Click the newly created session and then enter in your password.
- Enjoy your RDP session! If you selected Fullscreen, note that the kb combo to go back to a window is CTRL+ALT+ENTER
- As of now it seems that NLA is not supported, though I'm looking into it. To disable NLA uncheck the box labled "Allow connections only from computers running Remote Desktop with Network Level Authentication" in the "Remote" tab of the advanced system properties dialog of the machine you're connecting to.
- RemoteFX works, but it is actually slower than standard RDP. I'm looking into this too.
- Audio redirection, clipboard, multitouch, and USB passthrough don't seem to work. Guess what, I'm looking into that.
- I haven't tried the other clients yet, though I can report success using the VMWare view client direct from a friend.
- The Raspberry Pi has issues with some mice. If your mouse seems unresponsive try a different model.
- The newest build uses a tweaked kernel. Though I haven't needed to, you can switch back to the standard Raspberry Pi kernel by changing the line kernel=kernel.img to kernel=kernel-std.img in /boot/config.txt and rebooting. Debian comes with Vi and Nano that you can use to modify it.
Overall this is a interesting project that has been alot of fun to play around with. As always if you have any questions or comments throw them in the comments section!
Update: I'm getting quite a few hits on this one and I just want to underscore before it is proposed in production at your company that it's not quite ready for prime time yet due to the issues listed above. I look forward to helping drive it there though; I intend on updating as I drive towards tweaking RDP to be perform better.
And more importantly, there is a new build posted here! Note Remmina isn't working yet but Gibbio is working on it.
Update 6/27: Gibbio has posted a new build that looks quite interesting. Among other things he has provided the XFCE desktop environment.
Update 7/1: The newest build works fine with xfreerdp which seems to perform a bit better than rdesktop. To use it, either launch from a terminal or create a shortcut with the following syntax:
xfreerdp /v:server.domain.ext /u:UserName /p:Password /d:DOMAIN /f /cert-ignore
Where: /v: is the target machine, /u: is the username to use, /p:is that user's password, /d:is the domain in which the user resides, /f is for fullscreen mode (if desired) and /cert-ignore is to ignore an untrusted cert, which is likely if you're using the default self-signed certs. For the rest of the options, see the wiki page.
Links: Olivier Muret: French Raspberry Pi RDP Writeup
Thanks for reading!