Arts for X thin clients

Chris de Vidal chris at devidal.tv
Wed Mar 31 15:37:11 BST 2004


Stefan Westerfeld said:
> > I have an X thin client.  The .mcoprc has had both
> > GlobalComm=Arts::X11GlobalComm (which prevents artsd from starting)
> > and GlobalComm=Arts::TmpGlobalComm.  I run artsd -n -F 5 -S 8192 &
> > then X -query <X terminal server>.
>
> You need to start artsd on the thin client after having logged in, if you
> want to use Arts::X11GlobalComm (and you will probably want to do
> so, if you want to use artsd remotely, see below).

I believe I had even tried that.  Let's see... I logged into KDE remotely
then SSHed into the X thin client (the actual X server... am I the only
one that finds X server/client terms confusing??) from the X terminal
server (where KDE actually executes).  In the SSH session on the X thin
client (X server) using the same username that the X server was running
under (root), I ran
export DISPLAY=:0 # since the X server on the X thin client is
                  # running essentially as localhost
echo GlobalComm=Arts::X11GlobalComm > ~/.mcoprc
artsd -n -F 5 -S 8192

I believe I got the same error message as when I tried to start it with no
X server running and when I .  So it doesn't seem to flow as advertised.

I then ran xcalc which showed up on the X terminal server and back on my
remote X thin client (the X server), so I know I was authenticated
properly and my display variable was set correctly.

I could try it again and report the error message.

> > I haven't gotten _any_ answer.  When I read similar threads on this
> > list I see no answers.  It's almost as if the KDE people know it's
> > broken but aren't saying so :-/
>
> Well, so lets fix this here: its broken.

Ahh, thanks for your honesty :-)

> There are three reasons:
>
> (a) its hard to get client and server find each other
>
> If both run locally, this happens by reading files in
> /tmp/mcop-<username>,
> which say which tcp host/port or unix domain socket to connect
> (GlobalComm=Arts::TmpGlobalComm in .mcoprc). Of course, if you are running
> on different hosts, this doesn't work, since they have different /tmp
> directories.
>
> Thats why Arts::X11GlobalComm was invented, which exchanges the
> information
> over the X11 server. However, this implies that you have the X11 server up
> and running _before_ starting artsd, and that client and server share the
> same display. You can't start artsd and then log in.

I tried this too; see above.

> An alternative but unsupported/undocumented way is to use the
> ARTS_SERVER=host:port variable ; however, this does not work well with
> authentication, so you can practically only use it with -u, which is
> insecure.

I also tried something like this:
ssh user at host "artsd -n" & # The X thin client with the sound card
artsd &
artsrec | ARTS_SERVER=host:port artsrec
xmms --play # no sound

I could repeat this experiement, but I recall seeing auth errors.  Perhaps
I need to test the -u flag as you suggest.

> (b) its hard to get client and server authenticate to each other
> successfully
>
> Basically, either you run with -u, or you use Arts::X11GlobalComm, or you
> use artsd only locally.
>
> (c) what you get might not be what you want
>
> Usually, people expect that applications like noatun read and decode an
> mp3, and artsd outputs the decoded data to the soundcard. What really
> happens is however that applications like noatun tell artsd to read and
> decode an mp3, and output it to the soundcard. This means two things:

OK this explains alot.  arts isn't a sound conduit so much as it is a
front-end for an mp3/wav player.

>  - both hosts need to have a reasonably similar file system (i.e. NFS
>    mounted homes) otherwise, you will click on a file in noatun, which
> then can't be played

Makes sense.

>  - the cpu load will occur on the host running artsd, not on the host
>    running noatun

Well I suppose this is OK considering I'm on a 10MBit shared-media network
and mp3s stream much better when compressed.  But it isn't what I was
expecting.

> This also indicates it is a very bad idea to run artsd as root for all
> users, as you can then exploit the situation (as user) and tell artsd to
> read security critical files, load .so files and execute arbitary code
> as root, and so on.

Makes sense.

> > I did find a page for LTSP on recompiling arts with nas support.  It's
> > an ugly hack but it should do what we want it to do (although I haven't
> > had time to try it).  Here's the page:
> > http://www.ncpl.lib.in.us/~rjune/lbe/LTSP-arts-howto.html
>
> Yes, in fact my recommendation for most users who want to use KDE in a
> setup where they log in remotely, is to select a pure sound server (MAS,
> NAS or ESD), and configure KDE to use it. Most of the time, that will be
> less work, and you will probably get what you expected to get in the first
> place.

Do you know of more websites/resources like the above which document using
NAS/ESD/MAS with arts?


Thanks for the enlightenment,
/dev/idal



More information about the kde-multimedia mailing list