main | install | faq | rio | redrat | sdk |
Hosting a Rio Receiver relies on both system and application services:
The Rio Receiver relies on three system services: DHCP for IP-address assignment; NFS for net-booting; and a webserver to obtain menus and mpeg audio.
Web application services are implemented as servlets, packaged in .war files and run in a servlet container such as Jetty. There are two webapps that the Rio relies upon: the Rio Driver (jrec_rio.war) and the JReceiver Server (jrec_serv.war).
The Rio Driver (jrec_rio.war) provides several services to the Rio:
As with the server-install tutorial, the emphasis is presently on Linux installation. Procedures for other operating systems will be included in a future release. (Please contribute if you can. Thanks.)
NEW! Windows Users take note: Dave Brand has created a Java-only Windows boot package for the Rio. It can be found here and may be incorporated into this Rio driver distribution at some point.
Note that this document describes setting up the Rio for a standard ethernet connection. I'm not sure it's possible to support the PNA phone-cable network from a Linux host, as Linux drivers for the PNA adapter are probably not available. (It may be possible to do so on a Windows host.)
There is also a troubleshooting help file located here: rio trouble
You can find support for installation and usage at: http://groups.yahoo.com/group/jreceiver_user. No registration required to browse the message archives.
If you have a question or experience a problem, please post to this list (req. free registration) rather than contacting the author directly. The author will be monitoring it along with other users who can probably answer your question more promptly.
Follow these instructions ENTIRELY AT YOUR OWN RISK. While a good faith effort has been made to ensure that these instructions are accurate, you must nevertheless take full responsibility should you damage your system or your network. As a precautionary measure with any installation, you should first back up all your critical data and configuration files.
Kernel Support for NFSYou may need kernel support for NFS and must specify so during installation from a packaged Linux distribution or when recompiling the kernel. For example, installing Debian 2.2R3 (Potato), I chose a 'Simple' install with the following kernel module specified: [x] NFS Server Support (NFSD) Note that it may be possible to install an NFS server that runs entirely in user-space, thus avoiding any kernel support. |
192.168.100.113If this IP (or subnet) won't work with your network configuration, you must select another. Of course, you must adapt the remainder of this document accordingly.
DebianThe Debian distribution provides a DHCP server package. It can be installed using the Debian package manager:apt-get install dhcp SuSEThe SuSE distribution provides a DHCP server package. It can be installed by editing /etc/rc.config (case may be significant)START_DHCPD="yes"Add a reference to your network interface: DHCPD_INTERFACE="eth0"with eth0 being defined as the first active interface. Be aware that interface numbers are allocated first to the kernel and then to the modules. After editing rc.config run SuSEconfig to update all relevant files and services. RedhatRedhat provides a package, dhcp-XXXX.i386.rpm.More details on Redhat DHCP installation can be found in the message archives at the jreceiver_user Yahoo Group. GentooNote: You may have to rebuild your kernel with the common CONFIG_FILTER and CONFIG_PACKET options. The daemon will likely complain if you don't.emerge dhcp |
[Windows NT/XP]Still waiting on a volunteer to write up docs for Rio installation. |
[MacOSX]Still waiting on a volunteer to write up Mac OS X docs for Rio installation. One user has pointed out that the Fink UNIX tools were useful to installation. |
The provided configuration file /etc/dhcpd.conf may have examples and settings that don't apply to your network configuration. If so, simply rename the file to something else to get it out of the way. mv /etc/dhcpd.conf /etc/original_dhcpd.confCreate a /etc/dhcpd.conf containing a typical allocation of IPs for your subnet (you can restrict this later if you wish) subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.115 192.168.100.160; # original (115-160) } Debian/RedhatYou will have to enable the DHCP init script. To do so, edit /etc/init.d/dhcp and changerun_dhcp=0to run_dhcp=1Start the DHCP server to test it /etc/init.d/dhcp start SuSEUse SuSEconfig to update the boot time init scripts for DHCP.Gentoorc-update add dhcp default /etc/init.d/dhcp start |
If you already know your Rio's MAC address, you can skip this step.
To find the Rio's MAC (aka ethernet) address, first unplug the Rio's power cord and connect its ethernet cable to your network hub.
The easiest way to see the MAC seems to be to run the DHCP daemon in 'debug' mode, as in dhcpd -dPower on your Rio and watch for a message like this DHCPDISCOVER from 00:90:00:11:5f:cc () via eth0 where 00:90:00:11:5f:cc is the MAC address. Yours will be similar. Hit Ctrl-C to stop dhcpd. Alternatively you can check the system log for the message. |
Update your /etc/dhcpd.conf and add host rio_receiver { hardware ethernet 00:90:00:11:5f:cc; # MAC fixed-address 192.168.100.113; # Rio's assigned IP max-lease-time 0; default-lease-time 0; } replacing the sample MAC address with your own. Restart the dhcp daemon /etc/init.d/dhcp restart And you're set. Additional DHCP ConfigurationYou may need to adjust the DHCP configuration further to get it working with your network.The full documentation can be read with: man dhcpd.conf In my (Reed's) situation, the parameters shown below were added by an admin friend to get things working optimally: ddns-update-style ad-hoc; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.100.1; option routers 192.168.100.1; Note that these settings may or may not apply to your particular situation but could help troubleshoot a problem -- for example, if attached systems suddenly cannot resolve names. |
Unfortuately there is no known way to extract the file from the .cab apart from temporarily installing the Windows host and grabbing the receiver.arf.
<MILD_RANT>Perhaps Sonic Blue/Empeg will see fit to support alternative hosts as JRec and provide this file outside a Windows-only archive in a future release.</MILD_RANT>
Note that receiver.arf contains the display app, which is presumably copyrighted by Sonic Blue, thus we cannot post it at the JReceiver site.
The Rio requires an NFS share from which to boot.
Begin by making the following directory: /tftpboot/192.168.100.113 with the commands mkdir /tftpboot mkdir /tftpboot/192.168.100.113 and extract the 'receiver.arf' tar into the directory cd /tftpboot/192.168.100.113 tar fvx receiver.arf broaden the read permissions chmod -R u+r,o+r /tftpboot Add the following line to your /etc/exports /tftpboot/192.168.100.113 *(ro,sync,insecure,all_squash) DebianInstall the NFS server package, if not installed apt-get install nfs-server It should start the nfsd daemon automatically. SuSEActivate the NFS server package, if not done so yet in /etc/rc.configNFS_SERVER="yes"And run SuSEconfig to activate the server. RedhatAn NFS daemon is provided a package, nfs-utils-XXXX.i386.rpm.GentooNFS server and client can be installed withemerge nfs-utils rc-update add nfs default /etc/init.d/nfs start |
Test out your NFS installation by attempting to mount, preferably from another system.
mkdir /rio_temp mount -t nfs HOSTNAME:/tftpboot/192.168.100.113 /rio_temp ls /rio_temp where HOSTNAME is your server IP and you should see bin dev empeg etc il-binary.o proc sbin tmp zImage un-mount with umount /rio_temp rmdir /rio_temp |
Download jreceiver-rio-0.2.5.tar.gz and extract cd /usr/local tar fvxz /download/jreceiver-rio-0.2.5 |
$JREC_HOME/etc/jrec_jetty.xmland UN-comment the Rio configuration:
<!-- *** jrec_rio.war - RIO DRIVER *** THE CONFIG LINES -->Fix up the leading and trailing lines so that you have
<!-- *** jrec_rio.war - RIO DRIVER *** --&rt; THE CONFIG LINESremaining.
Restart Jetty to enable the driver.
Open a second terminal window to monitor Jetty's log as we restart it tail -f $JETTY_HOME/logs/*And then restart Jetty (using the JRec startu script) $JREC_HOME/bin/jrec_jetty.sh restartTry testing the forwarding from the root context http://HOSTNAME:8080/tagswhere HOSTNAME is your server name or IP. You should see a list of strings: fid, title, artist, etc. Next try booting your Rio. It should eventually say "Found Music Server" followed by the main display. Try playing some tunes. If so, congrats, you've made it. As mentioned earlier, if you have problems, check out rio trouble. |
Once you get everything mentioned above working for your Rio, you may want to consider installing Frank van Gestel's DisplayServer patch. See here to download the patch and a README for instructions on installing it.
To enable JReceiver support for this patch, click on the checkbox in Rio Settings and save. You should see control buttons for each Rio in the Status Panel.
A cautionary note: this is still a bit flakey as the DisplayServer host seems to drop the connection with the Rio driver and refuse a reconnect. This forces the user to reboot the Rio to get control working again.
Recommended procedure for rebooting the Rio: three(3) rapid presses of the power button on the front of the unit should suffice.
If anyone can diagnose this further and provide a fix, you'd be a hero!
For details on installation and configuration, see here.
main | install | faq | rio | redrat | sdk |