Requirements

  1. Host PC running Windows (95/98/NT/2000/ME/XP) or Linux
  2. 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.
  3. 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

  1. Power-off your Receivers and shutdown Audio Receiver Manager
  2. Rename your current "receiver.arf" file in your Audio Receiver Manager directory (usually "c:\Program files\Audio Receiver") to something like "receiver.orig.arf".
  3. Extract the receiver.arf file from riot-0.x.x.zip into your Audio Receiver Manager install directory.
  4. Start Audio Receiver Manager and power-on a Receiver.
  5. 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:

  1. Copy the receiver.arf into your Audio Receiver Manager install directory as described above.
  2. Shutdown ALL RioBoot components including the NFS and DHCP stuff.
  3. 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".

  1. Extract the receiver.arf file from riot-0.x.x.zip into your tftpboot directory
  2. Untar the receiver.arf file into the sub-directory for each of your receivers:
  3. Power a Receiver off and on again.
  4. 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:

  1. Create a new User called "trio" via the JReceiver admin panels with a role of “players” and password of your choice.
  2. 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:

  1. If you’re using the original Audio Receiver Manager software:
    1. Find the menu-server and content-server settings and check that these are both set to “arm”.
    2. 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.
  2. If you’re using JReceiver 0.2.4 or later:
    1. Find the menu-server and content-server settings and change these both to “jrec”.
    2. 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).
    3. 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.
  3. If you’re using an earlier version of JReceiver:
    1. Find the menu-server and content-server settings and change these both to “arm”.
    2. 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).
  4. 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:

  1. Change the “set TRIO_HOME=” value to the your install directory (e.g. set TRIO_HOME=c:\Program Files\tRio-0.x.x).
  2. 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:

  1. Change the TRIO_HOME variable to your install directory.
  2. 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:

  1. Open a command prompt, change directory to install-dir\bin and type “trio.bat”
  2. 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:

  1. ln -s /usr/local/trio/bin/trio.sh /etc/init.d/trio
  2. ln -s /etc/init.d/trio /etc/rc.d/rc0.d/K99trio
  3. ln -s /etc/init.d/trio /etc/rc.d/rc3.d/S99trio
  4. ln -s /etc/init.d/trio /etc/rc.d/rc5.d/S99trio
  5. 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.

  1. Check that your JAVA_HOME setting is correct in your trio.bat or script
  2. 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:

  1. Shutdown the tRio server and edit trio.xml.
  2. 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:

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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.