Technical Toys: Sun Ray 270 with Windows XP, Open Solaris and Meta Kiosk

[Aufgrund entsprechender Nachfragen gibt es diesen Artikel auf Englisch. Sollten in den Kommentaren viele noch die deutsche Version wünschen, werde ich sie nachliefern.]

Today I like to present my version of an internet and music station: a Sun Ray 270 (the one with the integrated TFT). Okay, maybe my decision is a little bit biased by my preference for Sun technology – but it’s always a pleasure to use tools, gears and gadgets not exactly in the way their inventors planned.

To ensure acceptance in the family, it’s important that Windows is running on the Sun Ray, ITunes delivers the music, Thunderbird shows all private mailboxes, Firefox is used for Web, and www.die-maus.de, www.playmobil.de, www.lego.de and all other pages containing business enabling information for my 8 year old son must work without any problem. On top, some educational software provided by the local primary school has to run. Especially the last two points are mission critical, so at least my son needs Windows as Desktop OS on the Sun Ray.

The Sun Ray server is my homeserver, an Intel Atom 330 powered homebrewed machine running Open Solaris 2009.06. This machine runs the Sun Ray Server, Sun Ray Connector for Windows and Virtual Box (and Windows XP as a virtual machine in headless mode). So, you maybe ask yourself whether a nettop CPU has enouth power to run all this software? Well, it has enough power to run all this software and also run some ZFS CIFS and NFS shares, but if you start more than one firefox running some complex flashgames …  well, maybe „slow“ is the right word. And the 2 GB of memory are maybe not enough. So stay tuned, a new Athlon II based homeserver is coming soon…

Back to the Sun Ray: Sun xVM VDI provides everything that is needed to run Windows on Sun Rays in very large and complex landscapes, including a very sophisticated integration with VMWare Infrastructure or Virtual Box. Quite impressive technology, but nothing for a small home deployment. For my purposes, it’s enough to run one single Sun Ray (maybe in a few months a second and a third), without all these highly sophisticated management features. So I decided to give Virtual Box in headless mode a try. Headless mode means, Virtual Box uses a RDP server and gives access to the virtual machine to any RDP client. Of course, „any RDP client“ includes the RDP client for Sun Ray Server called Sun Ray Connector for Windows.

The installation and configuration of Sun Ray Server and the connector is not straight forward on Open Solaris 2009.06:

  • The installation procedure for Open Solaris 2008.11 of the Sun Ray User Community is a good starting point.
  • There is also a small section about Open Solaris 2009.06 issues on the bottom of this page. There are several issues making your installation complicated. Please refere to the installation procedure to see the solutions:
    • The Motif issue should be resolved (or at least be easily resolvable) in all newer installations. BTW, installed Motif libraries are also helpful if you have problems using Sun Secure Global Desktop to access remote computers with Open Solaris.
    • The cumbersome cold restart to get the Sun Ray Server up after a reboot can be fixed by replacing some line of code in utcleanup script.
    • Very strange is the problem caused by „Volo“: Your Sun Ray stalls in stage 26/27 after connecting to the Sun Ray Server. The workaround described in bug (6795891)  works, you have to edit /etc/sock2path and replace some lines.
  • pkg install SUNWmfrun SUNWtltk SUNWdtbas

After one hour of debugging my Sun Ray presented the Login Screen and I was able to log in to Open Solaris.

To connect the Sun Ray direct to the Virtual Box, I had to change the default session for the pseudo token of the Sun Ray to the so called Kiosk mode. Kiosk mode means to disable the Sun Ray authentication capabilities for a certain token (mostly the pseudo tokens, each Sun Ray transmits if no smartcard is present) and direct connect it to a session. It’s great to use Sun Rays as public surf stations, but it’s also the simplest way to connect a Sun Ray to a Windows Terminal Server. And – in my case –  to connect it to a virtual machine.

The virtual machine is is a small and clean WindowsXP in Virtual Box, started in Headless Mode:

homeserver# nohup VBoxHeadless -s WindowsXP &

If you start the Virtual Box after Sun Ray Server, the session of the pseudo token maybe not connects to the Virtual Box. Maybe you find a message like

unable to start kisok mode

in the logfiles (looking for logfiles? Try /var/opt/SUNWut !). That’s because the Kisok mode does not retry to connect. So make shure your VBox is already up and running when turning on the Sun Ray.

And then… Windows on the Sun Ray!

But wait – maybe not quite the solution for a long term: It’s exactly one VM running exactly one Windows …  what will happen if more than one Sun Ray tries to start a kisok session? Sun Ray Connector will start to establish a second RDP session, and this will fail:

Aug 12 21:55:57 seeloewe2 kioskcrit: [ID 702911 user.notice] Info: critical application uttsc (pid=4727) exited with non zero status: 3
Aug 12 21:55:57 seeloewe2 kioskcritd[4496]: [ID 422571 user.info] Info: a critical application has exited.
Aug 12 21:55:57 seeloewe2 kioskcritd[4496]: [ID 652842 user.info] Terminating Kiosk Primary Session ( pid=4727 )
Aug 12 21:55:57 seeloewe2 kioskcritd[4496]: [ID 308018 user.info] kioskcritd stopped

So, no second access to the same Windows desktop. There’s an easy solution: Meta Kiosk provides the necessary capabilities to run several different kiosk modes.That’s pretty cool: The Sun Ray pseudo token now connects to a VM for my son, my Sun Badge connects to an ordinary Open Solaris desktop, my banking card connects to my online banking software running in a special secured Windows…

I need more tokens!!!

BTW: Is there a WORKING plugin for Nagios/Icinga out there to check a Sun Ray Server?

7 Kommentare

  1. BTW for your OpenSolaris SGD issue you just need one library which you can copy also from an x86 Solaris 10 which is called libXm.so.4

    scp root@solaris-10-u-4-x86-machine:/usr/lib/libXm.so.4 /usr/lib/.

  2. Hi, how did you set up a working kiosk mode on Opensolaris?
    I can’t find any informations on that. I’ve read on wiki.sun-rays.org that kiosk mode is known not to work on Opensolaris but you seem to get it up and running even without Meta Kiosk. Do you have a little hint for me?

  3. Well, it ran out of the box. But I’m not using every part of it, only the Windows Connector to connect to my headless Virtual Boxes. After installing Sun Ray Server and the connector, I was able to connect to my Virtual Box using the following argument: localhost:3389 (yeah. very sophisticated.).
    All Meta Kisok entries look similar, except the use different ports.
    The problem seems not to be the kiosk mode itself, but changing its policies via /opt/SUNWut/sbin/utpolicy . This never worked. But the defaults are working…
    To run kisok mode whithout meta kiosk, I had to turn on kisok mode as default session for the pseudo token of the Sun Ray.

  4. Hi! I am running Soalris 10 and got to connecting the sunray 270 with the XP virtual machine but not in fullscreen mode. How do I get the display to be fullscreen?

    I started the Virtual machine with
    VBoxHeadless -startvm myxpmachinename

    and used the argument you used
    localhost:3389

    Thanks!

  5. Found my problem. I installed VBox Guest Additions and set the screen resolution to the highest on the server. Then when I started Headless mode the screen was automaticaly set on the DTU to 1280 x 1024 and perfectly fit the screen.

  6. Yes, that’s the way. I did not mentioned the installation of the Guest Additions, because I used a copy of a virtual machine I’m using on my notebook.
    There are also several problems with the mouse synchronization between the Sun Ray Server and the VM that are all solved by installing the Guest Additions.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert