Kyocera Laserdrucker im Netzwerk unter Open Solaris einbinden

Zu Hause steht bei uns ein Kyocera FS-1900 in der Ecke und druckt per Netzwerk von jedem Rechner aus. Von jedem Rechner aus? Nein, von meinem Dienstnotebook war es bislang nicht notwendig. Nach recht langer Zeit bei Sun war es nun aber das erste Mal notwendig, etwas zu Hause auszudrucken.

Zur Verwaltung der Drucker hat Open Solaris ein schickes Tool, den Print Manager (Teil vom Projekt presto, das auch noch eine automatische Druckererkennung hat). Dort also einen Drucker hinzufügen, eine LDP-Warteschlange einrichten (IP-Adresse, Warteschlangenname = Name des virtuellen Druckers auf dem Drucker, den man in der Web-Administrationsschnittstelle sieht, in meinem Fall lp1). Serienmäßig bringt Open Solaris die foomatic-PPDs mit, und da ist eine PPD für den Kyocera FS-1900 dabei. Leider ist diese PPD nicht sehr vollständig, Details zu einigen Erweiterungen fehlten leider. Aber es  gibt von Kyocera eigene PPDs, zumindest für Linux. Diese funktionieren – nach ein wenig Basteln – auch für Open Solaris.

Der Zeilenumbruch in den Kyocera-PPDs ist nicht der gleiche wie in Unix: Im vi wird er als ^M angezeigt. Ein stupides %s/^M//g bringt leider nichts, das ^M ist ein Steuerzeichen. Wie war das nochmal gleich mit dem Escapen von Sonderzeichen im vi?

Die Lösung ist folgende: Zu tippen ist: %s/Control-v Control-m//g (ohne das Leerzeichen zwischen Control-v und Control-m). Dann verschwinden die ^M, und mit dem Befehl

pfexec ppdadm -a [Pfad zur PPD]

kann man die Kyocera-PPD einbinden, und dann im Printer-Manager auswählen.

Noch ein paar Anmerkungen:

  • Das Drucken über Socket oder IPP führte  trotz diverser Versuche mit foomatic und Kyocera-PPDs nicht zum Erfolg, nur LPD funktionierte.
  • Lokal habe ich den Drucker nicht angeschlossen. Daher kann ich auch nichts dazu sagen, wie man ihn am besten lokal anbindet.

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?