How to setup Thinstation 5.3 thin client for use with VMware Horizon View 5 – Part IPosted: February 20, 2015
Part III – How to add drivers to your Thinstation build
Part IV – How to configure Thinstation and Google Chrome for a true, thin client experience
Towards the end of my studying for the VCP5-Desktop exam, I decided to look into using some old laptops and PCs I had lying around as thin clients. Searching the web, I ended up settling on and wresting with Thinstation for a couple days. As one of the few, free, thin client options, Thinstation is probably the most stable and most up to date software available. This post shares the efforts I put into getting it running in my home lab.
You can follow Thinstation documentation in the same way that one can simply walk into Mordor.”
– Mike Brown
My end state goal is to touch the thin client as little as possible before working from a View desktop. So my vision, then, is to PXE boot the end point, let it download the thin client OS, and have it auto-launch a View desktop client. From there, a user could enter credentials and log in.
What’s the idea?
There are a few ways to get Thinstation working in a PXE boot environment. The overall idea, no matter how you go about it, is that you have to use a development station to build the thin client boot image that will be downloaded to your thin client hardware via a PXE boot infrastructure. There are no good materials on the intertubes to follow in a step-by-step fashion for this setup, so here’s my attempt at the first such walkthrough, as far as I can tell.
The above graphic describes the servers and clients in the environment. I used a Windows Server 2008 R2 VM as a DHCP server and Active Directory, the Thinstation ISO was used to install the PXE boot server in a VM, what the Thinstation team calls the “DevStation,” a name I’ll continue to use in this article, a View Connection Server 5.3 server in a VM, the thin client hardware (an old Dell Inspiron 6000 laptop for me), and finally, a Windows 7, View Composer Linked-Clone desktop.
I am, of course, leaving out a few crucial elements, like a vCenter Server, ESXi hosts, and View Composer, but that’s really not the detail needed in this post. I’m assuming you already have a working View environment at least for LAN users. I happen to be using linked-clones, which requires View Composer, but you don’t even need those. Full View desktops would work just as well in this post.
Using the diagram above, here’s a quick refresher on PXE booting.
1. The thin client hardware has been configured in the BIOS to PXE boot first. In addition, I chose to disable all other boot options. When PXE booting, the client requests a DHCP address and receives one. As a PXE boot client, it also receives, from the DHCP server, Option 66, the IP address of the PXE boot server, and Option 67, the path and boot file name to request from the PXE boot server. The boot file name is pxelinux.0.
2. With this information in hand, the thin client then requests the boot file from the DevStation PXE boot server via TFTP. The DevStation has a built in TFTP server with all the correct files and directories populated after an image build. It downloads pxelinux.0 which directs it to further download, from the PXE boot server, the files required to boot a thin client operating system, namely vmlinuz and initrd.
3. Once booted into the thin client OS, you can launch a Horizon View client or web browser and make a connection request to the View Connection Server.
4. The View Connection Server validates your credentials against AD and you’re directed to your View desktop.
5. Finally, you make a direct connection to your View desktop from the thin client.
Install the DevStation
The DevStation is a PXE boot server, TFTP server, and build/development environment for your thin client OS images.
While you have the option to create your own development station from a Linux build of your own making, the Thinstation ISO will create such a DevStation very easily and quickly, which is very nice for a non-Linux geek like me. So turn up a VM in your hypervisor of choice and boot from the ISO. I used VMware Workstation 8 with 2 GB of RAM and a 20 GB .vmdk. My VM settings are shown to the right. If you give it less than 2 GB of RAM, it will complain and boot into a debug or maintenance mode, if I recall. You don’t need the printer or USB controller, or floppy, necessarily. I didn’t bother minimizing this build. I chose the “Other Linux 2.6.x kernel” virtual hardware version and used the following ISO in this walkthrough:
If things go well, you’ll be greeted with this screen.
In a moment, you’ll be presented with a desktop GUI and instructions on how to install the OS to your virtual disk. These instructions are also on the Thinstation Git page. I didn’t find them useful at all before I actually started poking around and using the software. The documentation constantly refers to this, “development environment.” I see “development” and I run the other way. I don’t want to be a code monkey. Don’t get me wrong – I’ve been writing scripts for years, from batch files and VBScripts in my Windows days to PowerShell and PowerCLI today, but I’m not trying to recompile a damn kernel or whatever just to get a thin client working. It’s not worth my time to figure that out. I’d rather fork out the money for real thin client hardware or be relegated to a 60-day trial of Windows ThinPC.
Honestly, the folks who develop Thinstation are a lot smarter than me. My short rant above just goes to show how lazy I am.
Well, it turns out that it’s not *all* that bad, this “development environment” they speak of. You do have to “build” the thin client OS, but it’s pretty simple if you have some basic skills like me. It’s mostly editing text files, actually, and a bit of moving around in a Linux file system. So, here we go.
Hit OK in the “Install to HD” window. The system will verify connectivity to the Internets and let you know which hard disk it will use, in this case, /dev/sda. I’ll spare you the simplistic screenshots and simply list the configuration options you’ll be presented with.
- 1. Screen resolution
- 2. Time zone
- 3. Locale/Keyboard map
- Warning that you’re about to erase the selected disk (/dev/sda)
- A second warning that you’re about to blow away /dev/sda
A terminal window opens and begins the installation.
The installer creates a filesystem on the virtual disk and then connects to Sourceforge to download thindev-default-5.3.tar.xz at 267MB.
What makes this ISO installation a development environment is that it creates a special directory structure and adds files for the purpose of building Thinstation thin client OS images. It even builds the first image for you. You’ll pretty much only have to work out of the /thinstation directory. You can see this directory being populated below from the most recent repositories on Git. Pretty much everything you need to build and customize images will use this directory.
After your first build process, you could PXE boot your thin client immediately and be on your way. But this isn’t a perfect world and in reality, you may have to do a bit of tweaking to get your hardware working as it’s supposed to (I’m talking drivers here).
If you built your own Linux development box for this purpose, you’d have to install all the required software packages, find all the right files and repos yourself, and place them in the correct directory structures all on your lonesome. I’m not quite sure, but perhaps the Thinstation home page has a download link to the tarball downloaded in the screenshot above, which may do some of this for you.
After a little time installing and configuring the environment, you’re presented with the next steps.
A reboot shows the GRUB boot loader (?). Just choose Standard or let it boot automatically.
And the splash screen for Thinstation…
Finally, you’re presented with your desktop – no login required. In later posts, I’ll show you where to change the default passwords.
All in all, Thinstation is very simple to setup and get going – but for some un-fathomable reason, it took me two days to get this far. I had no idea the ISO was used to build a PXE boot server with built in TFTP server that, in addition, had an entire build environment for the thin client OS images. Frankly, I had no idea I was supposed to “build” images at all. Perhaps it’s been too long. When I was an SCCM admin years ago, I pushed out Windows desktop images via PXE. Of course, I had to build images then and make sure DHCP, SCCM, and WDS were configured correctly. Either way, I guarantee you I was googling for one of these recently:
As a sneak peek, here’s a screenshot of an HTML Blast connection to a Windows 7 desktop in my lab. The thin client OS itself is stock at this point. I’ve also figured out a way to startup Google Chrome in Kiosk Mode which provides a full screen, much like F11 would offer, in addition to setting the homepage to my View Connection Server Web Portal. That way, when user logs in, they’ll find themselves presented with a View client login prompt and be directed to their desktop – they never even have to *see* the Linux thin client desktop.