WARNING!!! This an BETA software for testing purpose!!!

ABOUT
    - this project aims to be an open-source driver for iRiver iFP flash player
    - currently, it's a command line utility, which uses libusb to access USB
    - one can use Midnight Commander as frontend
    - ifp supported manager firmware; not supported UMS firmware
    - http://ifp-driver.sourceforge.net/

AUTHOR
    Pavel Kriz <pavkriz@gybon.cz>
    Yamashiro, Jun <yamajun@{ofug.net, cr.ie.u-ryukyu.ac.jp}>
    Roback, Joe <joe@roback.cc>, 7XX and 8XX support

TESTED ON
    - RedHat Linux 7.3 (x86), FreeBSD/i386 4-STABLE/5-CURRENT,
      NetBSD-current/i386, Mac OS X(Jaguar), Gentoo Linux 2004.0
    - libusb-0.1.7, libusb-0.1.8
    - iRiver iFP-180T firmware 1.10, iFP-195TC firmware 1.17-3.06,
      iFP-790T firmware 1.10
    
INSTALLATION
    % make
    % su
    # make install	(copy to $(PREFIX)/bin	default: /usr/local/bin )

    And this command is required when you install ifp-line for the first time:
    # ./nonroot.sh	(configuration for run ifp by non-root users)

USAGE
    ./ifp command params
    (Need permission to read/write USB device for run ifp)
    
    - commands:
        ls [directory]
        df
        upload localfile ifptarget
        upload localdir  ifpdir
        download ifpfile localtarget
        download ifpdir  localdir
        rm [-r] file
        rmdir dir
        mkdir dir
	battery
	typestring
	firmversion
	format
	firmupdate /path/to/FIRMWARE.HEX
	
COMMENTS
    - terms UPLOAD & DOWNLOAD are inversed against those stupid iRiverManager's
	- so I use UPLOAD from Computer to iFP, DOWNLOAD from iFP to Computer
    - iFP has a unix-like behaviour
	- filenames are case sensitive
	- it's possible to have `folder' & `FOLDER' directories besides
    - no wildcards support - only a single file can be down/uploaded
    - on download *.REC file, convert it *.REC file to wav(iFP-1XX) or
      rename it *.REC to mp3(iFP-3XX, iFP-5XX)
	- need install ifprecconv (http://ifp-driver.sourceforge.net) for
	  convert *.REC to *.wav
    - if you want to run ifp by non-root user, please run nonroot.sh by root
	(But, this script isn't perfect.  if failed this script,
	try to configuration yourself with "TIPS" document)

SETTING-UP MIDNIGHT COMMANDER SUPPORT
    - you can use mc (http://www.gnome.org/mc/) as frontend to this commandline
      utility
    * Step 1
	- compile ifp by typing `make' here
    * Step 2
	- check it works (try `./ifp ls /' to obtain root folder listing)
	- maybe, you have to run it under root's privileges
    * Step 3
	- find your mc's `extfs.ini' file (/usr/lib/mc/extfs/extfs.ini on my
	  distribution)
	- add line `ifp' (without quotes) to this file (probably need root)
    * Step 4
	- copy ./ifp (executable) to the same directory, where did you found
	  extfs.ini file (probably need root)
    = Now, you can run `mc' (under the user, who can write to usb - refer
      to step 2) and type `cd #ifp' to see iFP's filesystem
    - access to the filesystem is cached, so if you doubt, exit mc and run
      again (any suggestions, how to solve this?)

DANGEROUS
    - battery status is not tested while uploading
	- original iRiverManager recommends not to up/download when a
	  battery is going to be empty
    - some parameters are hardcoded although, iFP may provide them
	- possible bugs against another firmware version

BAD IMPLEMENTATION
    - I've lost every last block while uploading, so I upload one more
      block (of 0 bytes size), this breaks 7XX and 8XX series players
    - before uploading, file size should be sent to iFP (because of free
      space checking, I expect - or some allocations???), but I send 0 and
      it works...
    - filenames in iFP are probably stored in Unicode(UTF-16LE); by now,
      they are converted only against ascii

TROUBLESHOOTING
    - be sure that you have usbdevfs support either built into your kernel, or
      loaded as a module; additionally, be sure that usbdevfs is mounted in
      proc. (thx morbie@legions.org)
    - "no usb devices found" - no usbdevfs available; be sure, you have
      usb-enabled kernel
    - "no iRiver iFP found" - usb is available, but iFP doesn't seem to be
      connected; make sure "usb connected" is displayed on the unit;
      cable reconnecting may sometimes help; try some utility to check your 
      usb topology (http://www.kroah.com/linux-usb/)
    - "unable to open iFP device" - device is used by another process or you
      have no rights to write to usb devices, try to do that under root's
      privileges

MAILING LIST
    - http://lists.sourceforge.net/lists/listinfo/ifp-driver-common/

