Network Attached Storage

From LinuxMCE
Revision as of 17:45, 21 December 2007 by Matthew (Talk | contribs) (cleanup)

Jump to: navigation, search

Include here a list of NAS that have been tested with LinuxMCE.

NAS
Buffalo Terastation
Buffalo Linkstation
FreeNAS


Troubleshooting

  1. I can see the files on the media directors, orbiters, and (while SSH'd) on /mnt/NAS_# and in the subdirectories of each user. But the files do not play. None of the music or video files play. All files stored on the core play fine.
    1. (This solution comes from bliss01 on the forum. Needs more detailed instructions please...)

Make sure you've mounted the device as the same name and dir and on the Core. Edit the /etc/exports file on the core, and the /etc/fstab on the MDs to fix this. But also to make the changes stay after reboot, edit the templates in /usr/pluto/templates/

    1. Also make sure the SMB drive is on the same network ie the 192.168.80.x as the core has a firewall which stops smb mounts.

How Network Attached Storage (NAS) and Windows shares are made plug and play

First, the detected event is fired.

For a detected NAS this event comes from dhcp monitor and has the ip/mac. The "plug and play" plugin figures out what it is, and fires an event like this:

 /usr/pluto/bin/MessageSend dcerouter 0 -1001 2 65 52 3 53 2 5 "00:0D:0B:99:10:43" 28 "192.168.80.7"

For a detected Windows share, this event comes from the "scan the network for windows shares" utility that always runs in the background. It explicitly sends a "device detected" event with the device template "Generic File Server 1837", like this:

 /usr/pluto/bin/MessageSend dcerouter 0 -1001 2 65 52 3 53 2 49 1837

Both the "generic file server" and the NAS devices like Maxtor & Buffalo have a device data called “Pre Pnp Script”, which is set to: /usr/pluto/bin/CheckNASForPasswords.sh. This means that before actually creating the device, this script will be run and is expected to send a command CMD_Pre_Pnp_Script_Done which includes additional parameters. In the script the key thing is the "182|1" parameter. Change that 1 to a 0 if no password is required. Maybe we will need a different script for different NAS devices.

After that script runs, if 182|1 was specified, the user will be prompted for the username and password, as per: Pnp_PreCreateOptions::OkayToCreateDevice with the screen: SCREEN_Get_Username_Password_For_Devices.

Once the device is created, its configure script will be run, for example: Configure_1794.sh for the Buffalo. This script will lookup the username and password for the device from the database and fire a "device detected" for each network share, as follows:

 /usr/pluto/bin/MessageSend dcerouter <X> -1001 2 65 52 3 53 2 49 1768 55 "182|1"

That <X> must be the ID# of the device created above, since the file share will be a child of that device. 1768 is the template for a samba share, 1769 for nfs. If the share does not require a password, leave off the 55 "182|1". If the username and password already specified in the database are valid for the share, then instead of 55 "182|1" use 55 "127|username|128|password".

This message will create the child device for each share and prompt the user if the username or password are needed.