How To: setup an ubuntu virtual server for thin clients to use rdesktop into windows
I've wrestled this particular monster for a few weeks now and seeing as I've used sources from all over I thought I might be able to save someone else some time and trouble and post my 'how to'.
Before I get into it: It took me a while to work through a variety of different methods to accomplish my goal. My goal was to create a thin client that would be able to boot off pxe and load into a remote desktop session with our terminal server that would maintain connection after a user logged out. I didn't want multiple sign on's or a desktop that a user could view/manipulate or the ability to cancel out of the terminal session. So here's what I did:
1. Install Ubuntu 11.10 on Hyper-V host running Windows Server. I found a great walk-through for this at Narendra Patel's site. It covered everything I needed, including the bain of my existence when trying to proof of concept on another box, the network interface. Getting Ubuntu to correctly use apt-get to install and update through an NTLM proxy was always a pain. But after following those instructions it works a treat. i can install all the necessary software and just manually change the browser proxy settings if i needed.
2. Install a remote desktop client on the server. (honestly i was getting tired of standing at the terminal in my server room.) i used sudo apt-get install xrdp. the only thing i needed to do was change the keyboard shortcut keys. ('D' was set to minimize all windows. i set it to Alt + D and moved on.)
3. Install LTSP. Awesome step by step found here at Mojotechblog. My setup was actually easier as i didn't need to make any changes to eth0 after following Narendra's guide. Briefly, it was:
sudo apt-get install ltsp-server-standalone openssh-server
gedit /etc/ltsp/dhcpd.conf and corrected the settings to apply to my network.
ltsp-build-client –-arch i386
gedit /var/lib/tftpboot/ltsp/i386/lts.conf which created a conf file for my thin clients to use. I kept it fairly simple and added the following lines in:
RDP_OPTIONS = "-f -a 16"
RDP_SERVER = TS_IP_Address_goes_here
SCREEN_02 = rdesktop
I found without the rdp options -a and 16 i'd get nothing but a black screen and white cursor. had to add -f to full screen it otherwise i got a box about 800 x 600 in the top left for the terminal session.
4. finally i just wanted to make sure it was all up to date across the board so i ran:
sudo ltsp-update-image ltsp-update-sshkeys
5. and rebooted the server for good measure.
that's all it took to set up my ltsp server for thin clients to boot straight into a terminal server session. Just a few things I didn't have success with:
1. Windows Thin PC. I thought this might have been easiest to use due to already running a windows network environment and just installing this to older machines. The problem was that it's speed was still very dependent on the system's crappy internals to boot and couldn't quite get an rdp session to open like i desired. I had the help of another edugeek member (Thanks for all the help, FN-GM!) wherein we tried using vbscripts to open a default.rdp preconfigured with the settings i wanted but that never quite worked. We also tried using RDP+ but that was a whole other headache to run. (however it did work great if you could get the scripts to work properly) But again this didn't fulfill my main requirements for a thin client so i moved on.
2. Thinstation. Sounds great when i first heard of it. can boot off pxe or etherboot, only 10-15mb img file, can add rdesktop in to the build. but for the life of me couldn't get it running. some of it was my fault (i manually created a 'tftpboot' folder on my ubuntu test box and pointed my dhcp to that when i should have installed ltsp and found the real tftpboot folder under /var/lib/ not in /) but even after realizing my mistake it wouldn't boot pxelinux.0 without missing 'diag' folder. I still have never seen that folder. I'm making an educated guess that it is on the full install image but again it wouldn't install on any of my test machines to allow me to copy that folder. once i had ubuntu ltsp up and running i realize how much easier it would be to just work with that and there we had it.