Build a VMware View Thin Client

Disclaimer

Build Process

Package Management

Optional VMware Tools Installation

Configuration

Optional Remove TTY Configurations

Optional Grub Configuration

Configure VMware View

Configure GDM

Optional Disable GDM Extras

Kiosk Gnome Configuration

Autostart VMware View Client

Reboot

Document History

Revision Number

Revision Date

Summary of Changes

Author

1

1 March 2012

Initial

M.Marseglia

1.1

7 March 2012

Added revision history

M.Marseglia

Disclaimer

This documentation is primarily intended for me.  It isn’t pretty and it is as close to accurate as possible.

Brief

This process builds a VMware View Thin Client using Ubuntu 10.04 Long Term Support.  After booting the operating system runs GDM.  GDM automatically signs in as an unprivileged user and runs the VMware View Thin Client in full screen mode.

Most of the following instructions are run from the command line, require root and some familiarity with linux.

One of the challenges was that this VMware View Client requires some sort of window manager or something in order to enter full screen mode.  I struggled creating simpler kiosk-like environments, http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS, but failed because I could not get the client to run full screen.  This was the only way I found to make that happen.

I’m using the following VMware View Client:

Package: vmware-view-client

New: yes

State: installed

Automatically installed: no

Version: 1.3.0-0ubuntu1+lucid2

Priority: extra

Section: net

Maintainer: Michael Vogt <michael.vogt@canonical.com>

Uncompressed Size: 25.2M

Depends: libatk1.0-0 (>= 1.29.3), libc6 (>= 2.3.6-6~), libcairo2 (>= 1.2.4), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.22.0), libgtk2.0-0 (>= 2.18.0),

         libpango1.0-0 (>= 1.14.0), libpcsclite1 (>= 1.5.3), libpixman-1-0, libpng12-0 (>= 1.2.13-4), libssl0.9.8 (>= 0.9.8k-1), libstdc++6 (>= 4.1.1),

         libx11-6 (>= 0), libxcursor1 (> 1.1.2), libxext6 (>= 0), libxfixes3 (>= 1:4.0.1), libxi6 (>= 2:1.1.2), libxinerama1, libxml2 (>= 2.6.27), libxrandr2

         (>= 2:1.2.0), libxrender1, libxtst6, zlib1g (>= 1:1.1.4), zenity

Conflicts: vmware-view-open-client, vmware-view-pcoip

Replaces: vmware-view-pcoip

Description: Deliver rich, personalized virtual desktops with VMware View 5

 Use the VMware View Client for Linux Tech Preview and turn your Ubuntu PC into a thin client and connect to your company's Virtual Desktop Infrastructure.

 With VMware View 5 PCoIP capabilities you can deliver a personalized high fidelity experience for end-users across sessions, devices, and operating systems.

Build Process

Operating System

I chose an Ubuntu LTS release.  Install Ubuntu Desktop.

Ubuntu 10.04 LTS Desktop

tasksel ubuntu-desktop

Package Management

Enable Extra Repositories

Enable backports and partner repositories.  Uncomment the following two lines in /etc/apt/sources.list

deb http://us.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse

deb http://archive.canonical.com/ubuntu lucid partner

scripted:

 sed 's/^#deb \(.*backports.*\)$/deb \1$/' /etc/apt/sources.list

 sed 's/^#deb \(.*partner.*\)$/deb \1$/' /etc/apt/sources.list

Upgrade the OS

aptitude update && aptitude safe-upgrade -y

Install the VMware View Client

aptitude -y install vmware-view-client

Optional VMware Tools Installation

If running this as a Virtual Machine, install VMware tools

Configuration

Create a kiosk user named ‘kiosk’.

adduser --home /home/kiosk --shell /bin/false --disabled-password --gecos kiosk --quiet kiosk

Optional Remove TTY Configurations

I chose to remove all but one TTY.

ls -l /etc/init/tty*.conf|grep -v 1|xargs -n1 rm

Optional Grub Configuration

Password protect grub from tampering

cat >> /etc/grub.d/40_custom << EOF

set superusers="<USERNAME>"

password <USERNAME> 1StrongPassword

EOF

Edit 10_linux and 20_memtest86+.  Add --user <USERNAME> to menutitle lines.  Restricts editing grub boot config.

Update grub

update-grub

Configure VMware View

Create vmware-view mandatory config.

This config is applied to every user.  Reference: http://sc.marseglia.org/viewopts

mkdir /etc/vmware

cat > /etc/vmware/view-mandatory-config << EOF

view.defaultShowBrokerOptoions = "FALSE"

view.defaultBroker = "https://<YOUR VIEW CONNECTION SERVER>"

view.defaultDomain =  "<YOUR DOMAIN>"

view.nonInteractive = "TRUE"

view.defaultProtocol = "PCOIP"

view.autoConnect = "FALSE"

view.sslVerificationMode = "3"

EOF

Configure GDM

Create GDM config.  Autologin the kiosk user.  This will make the kiosk user automagically log into GDM.

cat > /etc/gdm/custom.conf << EOF

[daemon]

AutomaticLoginEnable=true

AutomaticLogin=kiosk

DefaultSession=gnome

EOF

Optional Disable GDM Extras

Edit /usr/share/gconf/schemas/gdm-simple-greeter.schemas.  Disable most things.

Disable restart button

      <applyto>/apps/gdm/simple-greeter/disable_restart_buttons</applyto>

      <owner>gdm-simple-greeter</owner>

      <type>bool</type>

      <default>TRUE</default>

Disable user list in greeter.

<applyto>/apps/gdm/simple-greeter/disable_user_list</applyto>

      <owner>gdm-simple-greeter</owner>

      <type>bool</type>

      <default>TRUE</default>

Disable accessibility options, screen keyboard, screen reader, screen magnifier.

      <applyto>/apps/gdm/simple-greeter/accessibility/screen_keyboard_enabled</applyto>

      <owner>gdm-simple-greeter</owner>

      <type>bool</type>

      <default>FALSE</default>

--

      <applyto>/apps/gdm/simple-greeter/accessibility/screen_reader_enabled</applyto>

      <owner>gdm-simple-greeter</owner>

      <type>bool</type>

      <default>FALSE</default>

--

      <applyto>/apps/gdm/simple-greeter/accessibility/screen_magnifier_enabled</applyto>

      <owner>gdm-simple-greeter</owner>

      <type>bool</type>

      <default>FALSE</default>

Restart GDM

Restarting GDM at this point should log you into Gnome automatically as the kiosk user.

/etc/init.d/gdm restart

Kiosk Gnome Configuration

I looked into scripting this but found it easier to use the GUI.  Switch terminals to get back to a command line.

In Gnome use the GUI to:

  1. disable all startup items
  2. remove all panels
  3. menu items

Autostart VMware View Client

Create the vmware-view executable script.

This script disables CTRL-C. Run vmware-view.bin forever.

cat > /home/kiosk/vmware-view << ‘EOF’

#!/bin/bash

control_c () {

        echo

}

trap control_c SIGINT

while true; do /usr/bin/vmware-view.bin ; done

‘EOF’

Bypass VMware license agreement

touch ~/kiosk/.vmware-view-client.license-accepted

Create the vmware-view Gnome autostart

cat > /home/kiosk/.config/autostart/vmware-view.bin.desktop << EOF

[Desktop Entry]

Type=Application

Exec=/home/kiosk/vmware-view

Hidden=false

NoDisplay=false

X-GNOME-Autostart-enabled=true

Name[en_US]=vmware-view

Name=vmware-view

Comment[en_US]=

Comment=

EOF

Add vmware-view to GNOME autostart

cat > /home/kiosk/.config/autostart/vmware-view.bin.desktop << EOF

[Desktop Entry]

Type=Application

Exec=/home/kiosk/vmware-view

Hidden=false

NoDisplay=false

X-GNOME-Autostart-enabled=true

Name[en_US]=vmware-view

Name=vmware-view

Comment[en_US]=

Comment=

EOF

Make vmware-view executable

chmod 755 /home/kiosk/vmware-view

Reboot

This should put you into a full screen VMware View PCIOP session.  Cancelling or quitting should return you to the VMware View Client.