Network Attached Storage

From LinuxMCE
Revision as of 17:50, 21 December 2007 by Matthew (Talk | contribs) (NAS on outside LAN)

Jump to: navigation, search

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

Buffalo Terastation
Buffalo Linkstation


  1. The files appear 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.
    2. 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/
    3. Also make sure the SMB drive is on the same network (ie. the 192.168.80.x) as the Core, which has a firewall which stops smb mounts, though there is a separate procedure for attaching NAS to the outside LAN segment.

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 ""

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/ 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: 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.

Adding NAS to LinuxMCE Core's "Outside" LAN Segment

The default configuration of LMCE supports NAS attached to the "inside" LAN segment (ie. inside the LMCE firewall, on the inside ethernet segment). But tkmedia tested reconfiguring LMCE to support the NAS on the outside LAN segment:

  1. In the Web admin select "show devices tree".
  2. Select CORE from my devices.
  3. Create child device.
    1. Use the file server device template.
    2. Put in its IP Address, username and password, and save it.
  4. Now select the file server you just made and Create child device.
    1. Use the "Windows share" device template put in its sharename, username and password and save it.
    2. If you go the an Orbiter's KDE desktop, open Konqueror to /home/public/data/other , you should see something like "Windows Share [55]".
  5. Now let it automatically sync the files. Takes a while (even to get started, then syncing is slow)..................... You can go resync the files using the web admin but if you have a lot of files just let it sync overnight on its own.

In theory you may even be able to attach the NAS on the internal LAN segment, autodetect it, then change its IP address in the Web admin and reconnect it on the external LAN segment.