Requirements
- Host PC running Windows (95/98/NT/2000/ME/XP) or Linux
- JReceiver (0.2.4
or later) or the original Audio Receiver Manager software. JReceiver
is the recommended option. If you're already running JReceiver, it
is well worth upgrading to version 0.2.5 - you may experience problems running
against earlier versions.
- Java runtime 1.4.2 (1.4.2_06 recommended).
Important: these instructions assume that you already have
a working Rio Receiver set up and that any required DHCP and/or NFS configuration
has been done (you shouldn't have to worry about these things if your running
the "out-of-the-box" Audio Receiver Manager setup).
Receiver-Side
Install
For this you will need the riot-0.x.x.zip from the download
page.
Windows/Audio Receiver
Manager
- Power-off your Receivers and shutdown Audio Receiver Manager
- Rename your current "receiver.arf" file in your Audio Receiver
Manager directory (usually "c:\Program files\Audio Receiver") to
something like "receiver.orig.arf".
- Extract the receiver.arf file from riot-0.x.x.zip into your Audio Receiver
Manager install directory.
- Start Audio Receiver Manager and power-on a Receiver.
- You should see the tRio splash screen with a "Finding tRio Server"
message on your Receiver's screen.
Windows/RioBoot
We are experiencing teething problems using RioBoot with tRio. It is, however,
possible to run a JReceiver setup on Windows using the original Audio Receiver
Manager software to do your NFS and DHCP stuff, but not to serve music:
- Copy the receiver.arf into your Audio Receiver Manager install directory
as described above.
- Shutdown ALL RioBoot components including the NFS and DHCP stuff.
- Configure tRio to use the "jrec" server rather than "arm"
in the Host-Side "Edit config file" step below.
Linux/JReceiver
You should already have a /tftpboot sub-directory set up for each of your Receiver's
ip-addresses. Where these instructions refer to "/tftpboot/ip-addr"
they are referring to these directories, e.g. for a Receiver with an ip-address
of 192.168.1.5 this would mean "/tftpboot/192.168.1.5".
- Extract the receiver.arf file from riot-0.x.x.zip into your tftpboot directory
- Untar the receiver.arf file into the sub-directory for each of your receivers:
- cd /tftpboot/ip-addr
- rm -rf *
- tar xvf ../receiver.arf
- Power a Receiver off and on again.
- You should see the tRio splash screen with a "Finding tRio Server"
message on your Receiver's screen.
Host-Side
Install
For this you will need the trio-0.x.x.zip from the download
page.
Extract Distribution
For Windows:
Choose an install directory and Unzip trio-0.x.x.zip into it. For windows I'll
assume you've chosen “c:\Program Files\tRio-0.x.x”. From now on
this directory will be referred to as instal-dir in this document.
For Linux:
Choose an install directory and unzip trio-0.x.x.zip into it. For Linux, I'll
assume you've chosen “/usr/local/tRio-0.x.x”. Create a symbolic
link to the newly installed directory with the command “ln -s /usr/local/tRio-0.x.x
/usr/local/trio”.
Set
up JReceiver User
If you’re running JReceiver:
- Create a new User called "trio" via the JReceiver admin panels
with a role of “players” and password of your choice.
- If you're running JReceiver 0.2.4 or earlier: Add a new “Tune.getKeysForQuery”
Authorization to the players role – this will hopefully come as standard
in future JReceiver releases. If you’re struggling to find where to
do this from, there is an Authorizations column on the end of the Roles list.
This is not required from version 0.2.5 onwards.
Edit
config file
Edit the trio.xml file in the config sub-directory as follows:
- If you’re using the original Audio Receiver Manager software:
- Find the menu-server and content-server settings
and check that these are both set to “arm”.
-
Find
the “servers” list and change the url setting for
the name=”arm” entry to the ip-address (not
the hostname or loop-back address) of your server. Leave the
“:12078” bit untouched. If you're unsure that your ip-address
is, open a command prompt and type ipconfig.
- If you’re using JReceiver 0.2.4 or later:
- Find the menu-server and content-server settings and
change these both to “jrec”.
-
Find
the “servers” list and change the url setting for the name=”jrec”
entry to the location of your server. Leave the “:8080/jrec_serv/servlet/RPC2”
bit untouched (unless you know what you’re doing).
- Change the user and password values (in the name=”jrec” server
entry) to the values you set for the User
you set up in JReceiver.
- If you’re using an earlier version of JReceiver:
- Find the menu-server and content-server settings
and change these both to “arm”.
-
Find
the “servers” list and change the url setting for
the name=”arm” entry to the ip-address (not
the hostname or loop-back address) of your server and change
the port number from “:12078” to “:8080” (or
whatever port you've configured JReceiver to run on).
- If your host machine has more
than 1 network card then edit the "broadcast-address" setting to
match your local sub-network. If your machine's local address is 192.168.1.1
then the value will normally be "192.168.1.255".
Note: As of 0.1.5 it should no longer be necessary to change
the url setting because this is now discovered via SSDP. See the trouble
shooting section if you get "SSDP Discovery ... failed" messages.
Edit
Scripts/Batch File
If you’re running Windows, edit install-dir\bin\edit trio.bat and:
- Change the “set TRIO_HOME=” value to the your install directory
(e.g. set TRIO_HOME=c:\Program Files\tRio-0.x.x).
- Change the “set JAVA_HOME=” value to where your java 1.4.2 (or
later) runtime is installed. If this is set as an Environment Variable, you
can comment this line out.
If you're running Linux, you may need to edit /usr/local/trio/bin/trio.sh and:
- Change the TRIO_HOME variable to your install directory.
- Change the JAVA_HOME variable to your java runtime directory.
The trio.sh will attempt to locate both Java and tRio. If you have set symbolic
links to both locations in typical places, this step is unnessary.
Running
tRio
For Windows either:
- Open a command prompt, change directory to install-dir\bin and type “trio.bat”
- Or create yourself a shortcut to “install-dir\bin\trio.bat”
(on your Desktop, Menus or where ever) and run this
For Linux :
The trio.sh script no longer takes any attributes. As shipped it will not
display windows to the terminal. If you wish to display the windows that used
to appear using the “-g” or “-gui” options, edit trio.sh
and comment out lines 231 to 234. They are noted in the script.
To run the web front-end, point
your web-browser at "http://xxxx:8090/trio-applet.htm" where xxxx
is the host name or ip address of the machine where the tRio Server is running.
Running tRio
as a Service
For Linux:
If you wish to run tRio as a background service, you will need to create a
couple more symbolic links. This assumes you have created the symbolic link
in /usr/local/trio and that the rest of the startup scripts are located in “/etc/init.d”.
Execute the following:
- ln -s /usr/local/trio/bin/trio.sh /etc/init.d/trio
- ln -s /etc/init.d/trio /etc/rc.d/rc0.d/K99trio
- ln -s /etc/init.d/trio /etc/rc.d/rc3.d/S99trio
- ln -s /etc/init.d/trio /etc/rc.d/rc5.d/S99trio
- ln -s /etc/init.d/trio /etc/rc.d/rc6.d/K99trio
Troubleshooting
General
tRio version 0.1.4 requires the Java 1.4.2 runtine. Ensure
that you have this installed. If in doubt, open a command prompt and type "java
-version".
Check he tRio log files to get more information. Under Windows these can be
found in the logs directory in your install directory. Under Linux,
these should be in /var/log/trio.log.
Getting "java/lang/NoClassDefFoundError:
java/lang/Object"
This is because java can’t find the “rt.jar” file specified
by JAVA_HOME\lib\rt.jar.
- Check that your JAVA_HOME setting is correct in your trio.bat or script
- If you’ve installed the Java SDK rather than just the runtime, rt.jar
might be in JAVA_HOME\jre\lib\rt.jar. If so, change your script/batch file.
Getting AbstractMethodError
exception
This error should
no longer occur in version 0.1.4 with the java 1.4.2 runtime. But here it is,
just in case.
"Exception in thread "main" java.lang.AbstractMethodError:
sun.java2d.SunGraphicsEnvironment.createFontProperties()Lsun/awt/FontProperties"
This would normally be because you are trying to run with the -x11 under the
java1.4.1 runtime (or later). This option only works under version 1.4.0.
Audio
Drop-outs over wireless (802.11) networks
If you're seeing many "Got Resend. sessionId: ..." or "Got
NACK. sessionId: ..." messages in the tRio logs this indicates that
audio data is being lost on your network. While the software does it's best
to resend the lost data, it can lead to audio drop-outs if it happens too often.
If this is happening, try changing the "send-method" value in trio.xml
(remember to shutdown the tRio server before editing trio.xml):
Send-method Value |
Description |
Pros |
Cons |
multicast |
Audio data is sent using the multicast protocol. |
- supports synchronised playback
- data is only sent once during synchronised playback
|
- not supported very well by some wireless routers
|
broadcast |
Audio data is sent using UDP Broadcast messages |
- supports synchronised playback
- data is only sent once during synchronised playback
|
- data is sent to all network cards on the local sub-network even if
they are not interested in it - not good in wireless setups
|
unicast |
Audio data is sent using UDP messages to a particular player |
- the least network overhead
|
- does not support synchronised playback
|
tcp |
Audio data is sent over a TCP/IP connection |
- supports synchronised playback
- best supported by wireless hardware
|
- data is sent seperately to each unit during synchronised playback
|
"SSDP
Discovery ... failed" messages in tRio logs
First ensure that your music server (ARM or JReceiver) is running.
Otherwise, this normally happens on machines with more than one network card
(multi-homed). If this is the case:
- Shutdown the tRio server and edit trio.xml.
- Change to "broadcast-address" setting (in the <application
name="player"> element) to match your local sub-network.
For example, if your local address of your machine is 192.168.1.1, then the
setting should read:
<application name="player" broadcast-address="192.168.1.255"
... >.
Receiver getting no
further than the tRio splash screen with a “Waiting before retry”
message
This is normally because of a network configuration problem:
- If you’re running your own DHCP server, check that your DHCP configuration
is correct.
If you're
running windows with a stand alone DHCP server (i.e. you're not using Audio
Receiver Manager to do the DHCP stuff), then try shutting it down.
- Make sure that your Receivers and Host PC are on the same sub-network.
They should either be connected directly via a cross-over cable or attached
to the same hub.
- If you're running over HPNA, ensure that you're allocating addresses in
the 192.168 range.
WARNING: LocalHost lookup failed.
You may experience problems connecting via the Web font-end. Please specify
the host-name in trio.xml.
If this message appears in the tRio console then change the following line
in trio.xml:
<rmi create-registry="true"/>
to:
<rmi create-registry="true" host-name="xxxx"/>
where xxxx is either the host name or ip address
of the machine that the tRio server is running on.
Getting "Can't connect
to X11" error in Linux
This error should
no longer occur in version 0.1.4 with the java 1.4.2 runtime. But here it is,
just in case.
Exception in thread "main" java.lang.InternalError: Can't connect
to X11 window
server using ':0.0' as the value of the DISPLAY variable.
Try running with the -x11 option. This requires java 1.4.0.
Not working in a Linux
environment where the X11/KDE etc. system is not started
Try running trio.sh with the -x11 parameter. If it still doesn't work and you're
running java 1.4.1, try running 1.4.0.
Mac OS X issues
There are currently a few issues with running tRio on Mac OS X:
- Change the image-translation setting in trio.xml from “byte-binary”
to “default”. This reduces the responsiveness of your Receivers,
but unfortunately the Apple 1.4 runtime doesn’t do BYTE_BINARY images
too well.
- Change the send-method (in the player application settings) to “unicast”.
This disables synchronised playback. The default value of “multicast”
also sort-of works, but people are experiencing some skipping during playback.