SeamlessVirtualization


Rather than have an entire separate Windows desktop, you can run virtualized programs directly on your Linux desktop using the latest (version 1.5.0) rdesktop package that comes with Ubuntu 7.04, and Windows XP Professional's Terminal Services feature.

  • You do not however need a whole Windows installation (and therefore not need a virtualization at all) to:
    • run Windows applications in general. This can be done with the open source project [Wine]
    • use Internet Explorer. See InstallingInternetExplorer

    • edit video, develop web applications, etc... There are very many open source alternatives to your old Windows application. See http://www.osalt.com/

OpenSourceSeamlessVirtualizationResized.png

  • Start a Windows XP pro VM.
    • If using VMware, configure host-only networking, and note the VMs IP address for later.
      • You do not have to use host-only networking. Worked for me with "Custom: Specific visual network" [Ramvi]

    • If using QEmu, use the following command

qemu -m 384 -redir tcp:3389::3389 windows.img

This makes any connections to the localhost port 3389 be directed to the QEmu VM on port 3389, where Windows Terminal Services will run.

  • In the VM, log in as Administrator. Open the Control Panel (click StartControl Panel)

  • Enable Terminal Services: in the control panel, click User Accounts. Ensure that Use the Welcome Screen and Fast User Switching are both checked. Click OK. Note: Fast User Switching is not available to computers that are part of a network domain.

  • Allow remote connections: in the control panel, click System. On the Remote tab, tick Allow users to connect remotely to this computer. If you want to connect to a limited account, click 'Select Remote Users' and make sure the user account is in the list. Click OK.

  • In the VM, download http://www.cendio.com/downloads/servercd (registration email required). Extract the archive and run its tl-3.4.0-server\windows-tools\wts-tools\tl-wts-tools installer. Then log out of the VM.

  • If you don't have 'Internet > Remote Desktop Viewer' then install rdesktop on the host. See InstallingSoftware.

  • Test running an application seamlessly.

rdesktop -A -s "%ProgramFiles%\ThinLinc\WTSTools\seamlessrdpshell.exe %ProgramFiles%\Internet Explorer\iexplore.exe" localhost:3389 -u administrator -p password

For QEmu, use 'localhost' for <IP of VM>. For VMWare and for VirtualBox, use the IP address noted down earlier.

A large window will pop up briefly with the Windows login screen, then your application should start in its own window.

You can now create a desktop launcher to run the command above in future, when the VM has been started. High-resolution .PNG icons for Windows applications are available from DeviantArt.

Making Windows Apps Look at Home in Ubuntu

To help Windows apps look at home in Ubuntu, you may configure Windows to use the Ubuntu Human theme.

SeamlessVirtualizationWithThemingResized.png

  • In the VM, download the Human for Windows theme from http://www.deviantart.com/download/37743373/. Extract the file to C:\windows\resources\Themes.

  • In the VM, specify the theme to be used for Terminal Services in\the Group Policy Object Editor.
    • Click StartRun. Then type gpedit.msc.

    • In the Group Policy Object Editor, navigate to User Configuration/Administrative Templates/Control Panel/Display/Desktop Themes.

    • Open the Load a specific visual style file or force Windows Classic setting. Enable the setting, and enter %windir%\Resources\Themes\Human\Human.msstyles as the style.

  • Note: Windows 2003 only must also enable the Theme Service under services.msc.

  • Log out of Windows (you must log out of all accounts)

  • Test your application from the host:

rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe C:\Program Files\Internet Explorer\iexplore.exe" <IP of VM>:3389 -u administrator -p password

If using QEmu, use 'localhost' rather than the IP of the VM.

The new theme will take effect after the login screen.

Some themes that are larger or smaller than default might show a few lines of the Windows wallpaper color.

Shortcomings/Notes

  • Due to limitations in Windows XP clients, only one user can be logged in remotely at a time. The way the current solution is designed, this translates to one program running at a time.
    • I find that the best application to start is "C:\WINDOWS\SYSTEM32\taskmgr.exe". It lets you start more applications and got options for logging out (which you should do when done with Windows. Or else I've found that you're not able to log back in) ~~~~
    • Not necessarily. I've found that if you launch a program that can launch other programs (ex: my computer or cmd.exe), you can use it to open other programs, which then also show up as windows. I've tried it, and I was able to run Internet Explorer and Adobe Acrobat at the same time. The limitation seems to be in the windows program, not anything in rdp. -- JoeTerranova

    • I don't mind running one program at a time, but I've noticed that if you run a single program via seamlessrdp that cannot be used to log out (notepad for example), the user remains logged in after closing the program window, and attempting to launch the application again fails (it hangs during login). I have to login via VMWare console and manually log out before the rdp method will work again. The best workaround for my money is to create a simple batch file on the windows machine that runs the program I want and then logs off after the program exits. For example:

 c:
 cd \Program Files\Internet Explorer
 iexplore.exe
 logoff

Save that batch file, and call it via your rdesktop command. IE will run, and when you close the window you'll be automatically logged off.

  • However, RDP 6.0 (since Windows Server 2003 SP1) supports running individual programs, so no need for seamless desktop. Does rdesktop support 6.0 features yet? -- MarkReitblatt

    • Not yet. Ideally needs Microsoft need to release the protocol documentation. --ChrisRose4

  • There's an unofficial patch for XP Service Pack 2 that allows you to run unlimited concurrent remote user sessions to get around this limitation (it uses a terminal services library from a beta of SP2 that accidentally removed the limitation). It's probably OK for home users although I wouldn't recommend it for a business. http://www.kood.org/terminal-server-patch/

  • If you add a registry DWORD called NoDesktop to HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer and set it to 1 then log out and log in, you can start explorer in your rdesktop command line and get just a Windows taskbar. Of course, then you can't see your desktop if e.g. you log in using VNC. see http://www.linux.com/feature/124908?theme=print

  • The Human theme does not work in Windows XP x64.
  • There is an unofficial rdesktop version with seamless support made by Fontis IT Consulting. It's provide some interesting feature like loading multiple application in a Master Slave mode. So you can call rdesktop several time to open more application in the same user session. http://www.fontis.com.au/rdesktop

  • There is a freely available utility that launches a launchpad from which you can configure and run several applications from one seamlessrdp session. http://www.miguelfurtado.com/srdp.aspx

  • The Windows classic theme has glitches on the taskbar - use the hideous Luna theme or Human theme instead Smile :)

  • XP Pro SP3 with the Hardy and Intrepid alpha 6 versions of rdesktop caused segmentation faults all over the place for me - I found that the 1.5.0 version from Debian doesn't have this problem - see https://bugs.launchpad.net/ubuntu/+source/rdesktop/+bug/275545 - fubarbundy

  • The 1.6 version of rdesktop in Intrepid seems to not hide window decorations - Hardy's 1.5 version or Debian's 1.5 and 1.6 versions don't have this problem - see https://bugs.launchpad.net/ubuntu/+source/rdesktop/+bug/275528 - fubarbundy

  • At least for XP Pro SP3, you can improve the appearance of Windows by enabling 24 bit colour and font smoothing. In Windows, run regedit, change HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\ColorDepth to 4, under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations add a DWORD called AllowFontAntiAlias and set its value to 1, and under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp add an identical key (AllowFontAntiAlias 1). Restart Windows and Robert's your mother's brother. - fubarbundy


CategoryVirtualization

SeamlessVirtualization (last edited 2012-06-06 16:38:30 by 199-188-193-149)