NFS

(Definition of NFS from Wikipedia) "Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems in 1984, allowing a user on a client computer to access files over a network in a manner similar to how local storage is accessed."

In Yamp, NFS client software is used to play audio files located on other computers which have NFS server software. Yamp can also copy files from these computers to the iPad. Writing to files on NFS servers is not supported by Yamp. NFS server software is pre-installed on Apple Mac computers, most Linux and UNIX-based distributions as well as some NAS (Network Attached Storage) products. Note: FAT32-partitioned file systems typically cannot be exported by NFS.

Important Considerations in Using NFS

Setting up NFS

To setup up NFS, press the "Remote" tab button with the "NFS" graphic at the bottom of the screen. The screen will flip to the NFS configuration screen.

To add an NFS mount to Yamp, press the "Add" button in the upper right corner of the screen. The following will appear:


Enter the following: After entering the information required, the mount can be tested before it is saved by pressing the "Test Mount" button. Once a NFS mount has been added, an entry will appear in the NFS Mounts table. To mount or unmount an NFS file system, press or slide the switch for the coresponding file system. There is a switch just below the "Add" and "Edit" buttons. "If WiFi stops when system sleeps" should be set to the "On" position if WiFi shuts down when the system sleeps (auto-lock, not app termination). When this is done, Yamp will do an orderly shutdown of the NFS file systems when the system sleeps and remount the NFS file systems when the system wakes up.

Using NFS

In the Home directory, any NFS file systems that have been mounted will appear in the third section (Tracks are in the first section, Folders are in the second section). The NFS file systems can be navigated in the same way local folders are. The differences between using local files and NFS files are:

NFS and Playlists

Considerations in using playlists with NFS include:

Download 2 Play

Yamp has a feature called "Download 2 Play" whereby the NFS files in a Folder or in a Playlist can be downloaded while playing a track in the Folder/Playlist. This feature is useful if most or all of the Folder/Playlist is going to be played and/or if there are problems with the WiFi connection and/or NFS server (dropouts or stuttering occur).

In order to use this feature, navigate to the Folder/Playlist and press the Loop button (the fourth black button from the top left of the screen). Choices of "Download 2 Play NFS" and "Loop Mode" appear. Press the "Download 2 Play NFS" button and Yamp will take a moment to setup the files and start downloading. Once the AlertView box disappears, any track can be played.

Considerations in using Download 2 Play:

Handling Network Disruptions

NFS was originally developed for stable hard-wire network environments and as such, there is no built-in support for handling the type of network disruptions which can be common in a mobile wireless environment. Once a request for data cannot be fulfilled, Yamp does a network check and presents options for dealing with the network disruption. On the iPad, the effect of a network disruption happens fairly quickly but system notification of a WiFi outage (loss of signal, wireless router failure or lost of connectivity to the Internet) takes considerably longer. Yamp attempts to determine if the disruption is due to WiFi failure, loss of server connectivity or NFS issues on the server and as such, it may take some time before an acknowledgement of NFS failure is presented.

Setting up an Apple Mac NFS server (Snow Leoppard and later)

The "root" user must be enabled and the root password has to be known. See http://support.apple.com/kb/ht1528 if the root user has not been enabled.
The following instructions require the "Terminal" application. Unless otherwise noted, the commands are entered on the command line of the "Terminal" application.

1) Creating/editing the exports file. You can edit the /etc/exports file by using TextEdit (or another text editor). To use TextEdit, enter the following:

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit

Enter the name of the file system that will be exported, one per line, for example:

/Volumes/mydisk1
/Volumes/mydisk2


if you have two attached drives partitioned with the name "mydisk1" and "mydisk2". A couple of options which would provide more security would be -mapall=[username] and -ro where the "mapall" option specifies that access to the exported file system will have the same credentials as [username]. The "ro" option specifies that clients accessing the file system will only be able to read from the file system. (Yamp does not support writing to NFS files.) With these two options, the /etc/exports file will look like:

/Volumes/mydisk1 -mapall=username -ro
/Volumes/mydisk2 -mapall=username -ro


2) While TextEdit is still open from the command line, edit the /System/Library/LaunchDaemons/com.apple.nfsd.plist file. It should appear (or something similar)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
        <dict>
                <key>PathState</key>
                <dict>
                        <key>/etc/exports</key>
                        <true/>
                </dict>
        </dict>
        <key>Label</key>
        <string>com.apple.nfsd</string>
        <key>ProgramArguments</key>
        <array>
                <string>/sbin/nfsd</string>
=============== ADD THE FOLLOWING LINE: ===============
                <string>-N</string>
=============== END OF LINE TO ADD ===============
        </array>
</dict>
</plist>
Add the line was indicated by the directions (do not include the lines starting with "====").

3) Enable and start the NFS service by entering the following:

sudo nfsd enable
sudo nfsd start


If changes are made to the /etc/exports file later, enter:

sudo nfsd update

to have NFS recognize the changes.

Other useful nfsd commands include restart, stop, status, disable.

To see what file systems are available for export, type:

showmount -e

Setting up an NFS Server on Other Computers

Yamp uses the NFS client code used in XBMC. The directions for setting up NFS servers for use with XBMC should work with Yamp. See http://wiki.xbmc.org/?title=NFS for more information.

More information on Yamp and NFS can be found at http://findclassmusic.net/yamp-nfs.html