Scannen mit der Sun Ray

Okay, leicht reißerischer Titel. Es geht um das Einbinden eines normalen USB-Scanners in ein Windows in einer Virtual Box, welche über eine Sun Ray bedient wird.

Das Problem dabei: Scanner und Homeserver, auf dem die VirtualBox läuft, stehen ein paar Meter auseinander. Zu weit, für ein langes USB-Kabel. Außerdem wäre es eh schön, wenn jeder Rechner im Haus auf den Scanner zugreifen könnte. Also muss der Scanner in’s Netzwerk, und die VirtualBox muss darauf zugreifen.

Es gibt jede Menge spezialisierter USB-Netzwerk-Boxen, die das super für USB-Sticks und ähnliche Storage-Devices oder für Drucker können. Doch für Scanner trennt sich schnell die Spreu vom Weizen. Von meinen Kollegen bekam ich den Tipp, die Geräte der Firma Lantronix oder Silex seien empfehlenswert. Beide Firmen produzieren bestimmt  extrem zuverlässige Geräte – aber leider recht teuer. Für zu Hause ein paar Seiten pro Monat scannen ein wenig zu viel des Guten.

Durch ein paar Hinweise in Foren, man solle die Treiber von Silex auch für den Belkin Network USB Hub verwenden, bin ich auf eben jenes  Gerät von Belkin gestoßen. Das Design verleitet, einen MacMini darauf zu stellen (sollte man nicht tun, die Box ist hitzeempfindlich), und dank der glänzenden Oberfläche sieht man jedes Staubkorn und jeden Fingerabdruck. Aber ich habe das Teil preiswerter bekommen als jedes Silex- oder Lantronix-Gerät.

Wichtig war,  die virtuelle Maschine auf bridged-network umzustellen: Die Verbindung zwischen dem Windows in der Virtual Box und Network USB Hub überlebt kein NAT.

Der Rest war trivial: Treiber für die Box installieren (den von Belkin oder den von Silex, beide funktionieren tadelos), Scanner verbinden, Treiber für den Scanner installieren, fertig. Die Geschwindigkeit des Plustek PL 806 ist gefühlt unverändert, trotz des Transports von USB2.0 über Ethernet mit 100 MBit/s, und alle Funktionen (auch die Tasten am Scanner) funktionieren einwandfrei.

Eine Sache nervt aber an dem Network USB Hub: Er ist zu leicht: lange Kabel schaffen es problemlos, die Box vom Schreibtisch zu ziehen. Aber das ist ein Problem, das man mit Klebeband lösen kann…


New Homeserver (Second Try)

Well, the first article in english raised my hitrate by factor 5, and more comments and emails from my readers reached me. So here’s the second one. German translation available on request.

Already mentioned in my article about the Sun Ray Server on Open Solaris, I’m building a new homeserver. BTW, this will free an Intel Atom 330 board that was planed to power „Blackböxchen 2“ (The two dots above the „o“ are mandatory and will not be removed in the english translation. It’s german and means „little blackbox 2“). The Atom is a very good platform to do fileserver services, DNS, MySQL and other services for my home network. But starting with desktop virtualisation and Sun Ray server, I led this little chip to its limits.

Of course, the requirements for the homeserver are now a bit more challanging than only „do the fileserver“:

  • Sun Ray Server for 2-3 Sun Rays
  • Virtualisation Server for several containers running webservers and other test environments
  • Virtualisation Server for several virtual boxes running Desktop OSes delivered to the Sun Rays
  • Fileserver (well, of course)

Open Solaris with ZFS for data protection, and ECC for even more data protection (to cite my colleague Constantin Gonzales: „I want the data protected before the ZFS checksum is calculated“).

Quite fast was the decision to take a AMD processor. Since Opteron and the Athlon/Phenom series share quite a lot of core design, all Athlon/Phenom memory controllers are ECC capable. First I was considering an AMD Phenom II X4 architecture, but these processors are still quite expensive and even the energy efficient variants are consuming up to 65 Watts. And – 4 cores are not necessarly needed for my environment. So I had a look at the (older) Athlon X2 4850e, an 2.5 GHz dual core processor. On the first view, this processor has sufficient power for my purposes, and there are quite a few more AMD Athlon  AM2+ processors in their pipeline, if more power is needed. On the second view, AMD announced the Athlon II X2 240e a few days ago, so there will be a CPU update soon.

The second important part to use ECC memory is the mainboard. Most boards are not capable because of BIOS restrictions of the manufactrures.  As said the memory controller in the CPU itself is capable! So the search for an ECC capable board became the most challenging part of the hole projects: Thanks to highly educated translators often the ECC capability of a mainboard disappears somewhere between the original version and the English or german translation of the spec-sheet. Unfortunately, I can’t speak chinese, so I had to look for those boards whose spec-sheets had at least survived the translation into English. One of these boards was the Asus M3A78-CM. On top, this board uses the long term supportet AMD 780V chipset and has more than enough SATA and USB ports.

The board is nothing spectacular, it’s quite particular in terms of memory compatibility, and not all of it’s USB ports are willing to boot – and they don’t like every USB stick. But after a firmware upgrade I was able to use the USB port direct under the ethernet port to boot.

(Well, up to this point my home server looks quite similar to Constantins server.)

To house my servers (I’ve got more than one!), I have a small selfmade sound-damping 19“ rack. So the new server also needed a 19“ case. I decided to take a 3HE case, having enough space for a silent CPU cooler and 4 hard disk frames:

  • The case is a Genesys Rack E301B+E with a build in thermometer – it’s nice to see the temperature in the case .
  • The CPU cooler is a Scythe Shruiken – a only 64mm high cooler with a 120mm fan. It’s rotating very slow and you can’t hear it.
  • The disk frames are ICY BOX IB 168-SK-B, I like this trayless frames to replace disks without tools.

Now, the new server is online since last weekend. It’s providing everything we need, and the VM for the Sun Ray is now fast enough.


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?