Copyright (C) 1999, 2000 Bruce Tenison Portions Copyright (C) 1999, 2000 David Nelson Thanks to David Nelson for guidance and the usage of the scanner.txt and scanner.c files to model our driver and this informative file. Mar. 2, 2000 CHANGES - Initial Revision OVERVIEW This README will address issues regarding how to configure the kernel to access a RIO 500 mp3 player. Before I explain how to use this to access the Rio500 please be warned: W A R N I N G: -------------- Please note that this software is still under development. The authors are in no way responsible for any damage that may occur, no matter how inconsequential. It seems that the Rio has a problem when sending .mp3 with low batteries. I suggest when the batteries are low and you want to transfer stuff that you replace it with a fresh one. In my case, what happened is I lost two 16kb blocks (they are no longer usable to store information to it). But I don't know if that's normal or not; it could simply be a problem with the flash memory. In an extreme case, I left my Rio playing overnight and the batteries wore down to nothing and appear to have corrupted the flash memory. My RIO needed to be replaced as a result. Diamond tech support is aware of the problem. Do NOT allow your batteries to wear down to nothing before changing them. It appears RIO 500 firmware does not handle low battery power well at all. On systems with OHCI controllers, the kernel OHCI code appears to have power on problems with some chipsets. If you are having problems connecting to your RIO 500, try turning it on first and then plugging it into the USB cable. Contact information: -------------------- The main page for the project is hosted at sourceforge.net in the following URL: . You can also go to the project's sourceforge home page at: . There is also a mailing list: rio500-users@lists.sourceforge.net Authors: ------- Most of the code was written by Cesar Miquel . Keith Clayton is incharge of the PPC port and making sure things work there. Bruce Tenison is adding support for .fon files and also does testing. The program will mostly sure be re-written and Pete Ikusz along with the rest will re-design it. I would also like to thank Tri Nguyen who provided use with some important information regarding the communication with the Rio. ADDITIONAL INFORMATION and Userspace tools http://rio500.sourceforge.net/ REQUIREMENTS A host with a USB port. Ideally, either a UHCI (Intel) or OHCI (Compaq and others) hardware port should work. A Linux development kernel (2.3.x) with USB support enabled or a backported version to linux-2.2.x. See http://www.linux-usb.org for more information on accomplishing this. A Linux kernel with RIO 500 support enabled. 'lspci' which is only needed to determine the type of USB hardware available in your machine. CONFIGURATION Using `lspci -v`, determine the type of USB hardware available. If you see something like: USB Controller: ...... Flags: ..... I/O ports at .... Then you have a UHCI based controller. If you see something like: USB Controller: ..... Flags: .... Memory at ..... Then you have a OHCI based controller. Using `make menuconfig` or your preferred method for configuring the kernel, select 'Support for USB', 'OHCI/UHCI' depending on your hardware (determined from the steps above), 'USB Diamond Rio500 support', and 'Preliminary USB device filesystem'. Compile and install the modules (you may need to execute `depmod -a` to update the module dependencies). Add a device for the USB rio500: `mknod /dev/usb/rio500 c 180 64` Set appropriate permissions for /dev/usb/rio500 (don't forget about group and world permissions). Both read and write permissions are required for proper operation. Load the appropriate modules (if compiled as modules): OHCI: modprobe usbcore modprobe usb-ohci modprobe rio500 UHCI: modprobe usbcore modprobe usb-uhci (or uhci) modprobe rio500 That's it. The Rio500 Utils at: http://rio500.sourceforge.net should be able to access the rio500. BUGS If you encounter any problems feel free to drop me an email. Bruce Tenison btenison@dibbs.net