Monday, January 30, 2012

How to setup FreeRDP from Linux (Ubuntu) to Windows 7

This one's for all those tech geeks out there...

There's finally a working solution to use RemoteApp from Windows - that means you can finally have a RELIABLE seamless desktop with a remote Windows PC on you linux machine.

First off: why do this?

I was using VirtualBox with their great seamless mode for a while with Ubuntu, but it was never really stable. After a few hours it would crash every time. When it was running, it ran well. But it never worked for very long.

The xFreeRDP solution lets you connect to a remote computer and use windows programs seamlessly with Microsoft's RemoteApp (which is built in to Win7, Vista, Server)


How...

1. Make sure you have Windows 7 ENTERPRISE or ULTIMATE or Windows Server.  This won't work on Windows 7 Pro.

2. Download the latest version of FreeRDP from here: https://github.com/FreeRDP/FreeRDP

3. Setup your system for compiling it - on Ubuntu you need to do the following:

$ sudo apt-get install build-essential git-core cmake libssl-dev libx11-dev libxext-dev libxinerama-dev libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev libasound2-dev libcups2-dev

$ sudo apt-get install libavutil-dev libavcodec-dev 

$ cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON .

$ make

$ sudo make install

$ sudo cat > /etc/ld.so.conf.d/freerdp.conf 
/usr/local/lib/freerdp
/usr/local/lib

$ ldconfig


4. On your Windows 7 machine, run Regedit and under HKLocalMachine\SOFTWARE\Policies\Microsoft\Windows NT add a key named "Terminal Services"

5. Under that, add a DWORD32 value named "fAllowUnlistedRemotePrograms" and set the value to 1

If you don't do this, you will get the following error: RAIL exec error: execResult=RAIL_EXEC_E_NOT_IN_ALLOWLIST NtError=0x15


6. run the following command on your Linux box


$ xfreerdp -u <username>  --app --plugin ./usr/local/lib/freerdp/rail.so --data "%windir%\system32\cmd.exe" -- <ip of your windows machine>

Note your rail.so path may be different, so you may have to search for it.

That's it... you can now launch programs from the cmd shell.

10 comments:

  1. Hi there, thanks for the docu. I was wondering if you could help me out. I get the error message "make: *** No targets specified and no makefile found. Stop." after the "cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON ." command.

    Any help much appreciated.

    Thanks,

    G

    ReplyDelete
  2. Where can I find a step by step guide on getting this to work? This is exactly what I have been searching for!
    I guess I will be upgrading to Win7 Ultimate because it doesn't work on Win7 Pro...hmm...
    Thanks and this post is a life saver!

    Mike

    ReplyDelete
  3. Hi, thanks for your effort but this will not work.

    ReplyDelete
  4. http://geekswithblogs.net/twickers/archive/2009/12/18/137048.aspx
    Is well worth a read. Shows how you can use a microsoft patch "Update for Windows® XP SP3 to enable RemoteApp" (there's also one for vista) to then run an XP, Vista, or Win7 guest O/S under Virtualbox and then from some other machine - use a "tsclient" or xfreerdp (or remina) to run just the app in it's own little seamless window. Just like the OP says. But, this guy has also found an Open source Gui that does all the guest O/S app setup for you and supplies you with a ".rdp" file.
    My personal experience with XP-SP3 guest under VirtualBox 4.1.16 was fine - except that remote sound INPUT (microphone on my remote client being recognized by the app in the XP-SP3 guest) didn't work. However, with Win7 Ultimate as a guest -- it did..
    davemguru

    ReplyDelete
  5. hi...Im student from Informatics engineering nice article,
    thanks for sharing :)

    ReplyDelete
  6. Thanks for the article. Very helpfully. Used it for my german article

    ReplyDelete
  7. Looking around for a way to connect my laptop, using Bodhi, a descendant of Ubuntu Precise, to a Win Server 2012 Datacenter running in their Azure cloud.... gotta do it quick before I get too far into my free 30 day MS Azure account....

    ReplyDelete
  8. Great article, helped me alot! RemoteApp works great with new syntax also! Cheers

    ReplyDelete
  9. This comment has been removed by the author.

    ReplyDelete
  10. I have a couple of questions.
    1. What if you'd like to avoid entering your IP every time? Wouldn't it be possible to create a LAN with static IP for the host and the guest?
    2. Font looks horrible (there is no anti-aliasing).
    3. If I run a program, I cannot log in to the virtual machine. Only one user at a time (no remote + local).

    ReplyDelete