[SunRay-Users] Accessing devices on headless SunRay

Kevin Mescher kevin.mescher at gmail.com
Fri Oct 13 10:35:17 EET DST 2006

My org. uses a bunch of Windows terminals on the network, and uses Solaris
systems for some older apps that only run on Sparcs.  This particular
application (because of its need for both an audio device and a serial port)
would ordinarily require one machine per instance of the application, for
the hardware.  The window itself can be displayed back somewhere else, but
the audio has to come from the sparc machine, and the serial peripheral has
to go into the sparc machine.

The reason we'd like to use SunRay's is that we didn't need a complete sparc
machine for this application (we use NFS for our applications).
Additionally, the SunRay's don't use that much power, which is good for our

We don't have the source code to the application, so we can't recompile it
for another platform.

We'd like to use the SunRay's in the same capacity that we would use an
actual workstation (headless and keyboardless, but provides audio jacks and
a serial port for that application, and displays back to another system).  I
think it would be possible, just not super easy.  Here are my thoughts:

When I turn the SunRay on, it starts a session and brings up a dtlogin.  At
that point, the serial device is available (just owned by root).  The audio
device is not available at that point.

I can get the audio device by running utaudio and providing the display
number, which I think I can get from /tmp/SUNWut (I recall there was a
mapping from token/mac address to display number).  At that point, I can
write the audio device that utaudio returns to a mapping file, so I can
access it later.  Same thing with the serial device.  A follow-on script
(the one that actually runs the application) can access the mapping file and
get the proper devices.

Unfortunately, all this would be owned by root at that time.  Instead of
changing owners, I'd like to just change the permissions of those devices.

I was looking at the man page for the utaction command, and it looks like it
might be able to do it.  I do not know exactly, as I haven't tried it.

However, if I do all this to provide the devices to everybody, I'd like to
prevent someone from being able to login to the SunRay directly (via
keyboard/video, etc).  Since this will be on a per-machine basis, I'd like
to be able to disable dtlogin on those machines, and display something
else.  I tried editing /etc/opt/SUNWut/terminals to change the session type
for a particular terminal, but that file is overwritten by utauthd on
startup (via utgenpolicy).  utauthd gets its info from utglpolicy, which
gets its data from the data store.

utgenpolicy has the ability to write policy files that include some of the
extra parameters associated with the TerminalId module, but can't write them
to the data store, making that a useless exercise, since all the parameters
come out of the data store.  What is the point of having those extra
parameters if they can't be used?  I've been unable to find any
documentation on them, only the remnants of them in the scripts.

Thanks for your help on this.

On 10/12/06, Craig Bender <Craig.Bender at sun.com> wrote:
> Hi Kevin,
> This won't be possible with out a session started as $AUDIODEV is not
> created until a session starts.
> You'll also have permission issues on the serial devices since root owns
> them until a session begins.
> What exactly do they want to do this for?
> Kevin Mescher wrote:
> > My organization wants to use some of their SunRay's for just the audio
> > and serial ports.  So I have a couple issues:
> >
> > Bear in mind that I'm not using smartcards at all.
> >
> > 1. What is the best way to access (and change permission of) the
> > devices that each SunRay provides?
> > Is there a way to have the devices set up when the SunRay connects to
> > the server (session startup)?
> >
> > 2. I'd like to prevent local login on those particular systems.  What
> > would be the best way to allow/prevent an X login on a per-terminal
> basis?
> >
> >
> > While poking around the config files (and scripts), I came upon a
> > possible way to adjust the session type based upon terminal id, but
> > any changes I make to the file (/etc/opt/SUNWut/terminals) are
> > overwritten by utauthd at startup.  Evidently, the REAL settings are
> > kept in the data store.  Is there any way to prevent that, or be able
> > to modify the data store directly, since there don't seems to be ANY
> > scripts to modify that data.
> >
> > There seems to be many undocumented/unsupported "features" of this
> > system.  grr....
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > SunRay-Users mailing list
> > SunRay-Users at filibeto.org
> > http://www.filibeto.org/mailman/listinfo/sunray-users
> >
> _______________________________________________
> SunRay-Users mailing list
> SunRay-Users at filibeto.org
> http://www.filibeto.org/mailman/listinfo/sunray-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.filibeto.org/pipermail/sunray-users/attachments/20061013/3f12595d/attachment.htm

More information about the SunRay-Users mailing list