Popcorn Hour A-100 / D-Link DNS-323 / NFS Share

 

I’m writing this short “manual” so other people who have purchased a Popcorn Hour A-100 (Networked Media Tank (nmt)) and a D-Link DNS-323 NAS device can make full advantage of this configuration.

 

I’m a newbie in the multimedia world but during the short time I’m using multimedia streaming I learn some important things:

-         Yes there are some standards defined (uPnP, DLNA, SMB shares, NFS Share, HTTP Streaming, etc) but you CAN NOT assume certified products working together.

-         Plug and Play does not exists

-         You have to be patient to get things working

 

I purchased the D-Link DNS-323 NAS and the Popcorn Hour A-100 because I think these are the best products on the market for a fair price.

 

If picked the DNS-323 NAS because I wanted to have a storage solution I could access from multiple systems. The DNS-323 has great transfer rates.

I selected the Popcorn Hour being the multimedia player supporting the most multimedia formats.

Using an internal disk is something I do not prefer. Even if you use a very quit disk – it still makes some noise.

 

Next step was to get them to work together.

 

I’ve tried it all – uPnP provided by the D-Link DNS-323, SMB Shares, Twonky (uPnP Server), LLink, Mediatomb, SMB shares, HTTP streaming, etc

And I got sick of all the messages the Popcorn Hour kept displaying: “No workgroup found”, “Cannot open this picture”, “No content found”, etc.

 

But after a lost of reading, testing, config changes and so on, finally got it to work!!!!!

 

I’m using Fonz’s fun_plug to run NFS on my D-Link DNS-323. The instruction (also written below) on how to install NFS are written by Moquilok on the DSM-G600, DNS-323 and TS-I300 Hack Forum

I’ve used the Telnet Deamon written by Sheik Yerbouti to get command line access to the Popcorn Hour to be able to test the commands.

 

My goal was to be able to mount the D-Link DNS-323, be able to see all (sub) folders and play movies (ISO images), play music and run a picture slideshow.

 

*******************

**** Instructions ****

*******************

 

 

1)      Preperations:

a.      Update the firmware of your Popcorn hour to the latest version - http://www.popcornhour.com/download/firmware_update.html

b.      Update the firmware of your D-Link DNS-323 - http://support.dlink.com/products/view.asp?productid=DNS%2D323#firm

c.       If enabled – disable the uPNP server on your DNS-323 (it sucks anyway)

2)      Install and run NFS on your DNS-323:

a.      Install Fonz’s Fun_Plug and the unfs and portmap addons - http://www.inreto.de/dns323/fun-plug/
I’ve used version 0.4.

Fun_Plug – step by step installation instructions (written by Moquilok):
You need to start off by installing the fun-plug:

                                                               i.      Go to http://www.inreto.de/dns323/fun-plug/0.4/ and download funplug-0.4.tar.gz

                                                             ii.      Open it up with winRAR (not winZIP) and place the 2 files onto your DNS-323 (drop them in the initial area where you have mapped your network drive to it).

                                                            iii.      Reboot your DNS-323 and wait until it's fully up and running again

                                                           iv.      Download putty.exe from http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

                                                             v.      You can use putty to telnet into the DNS-323 by putting in the IP address of the DNS-323, port (23 is default for telnet), and choose the Telnet connection type. 
Then click on the Open button.  A new window should appear that looks similar to a DOS command window. 
You have now telnet'd into the root area of your DNS-323 as root.

Getting the NFS server up and running

                                                           vi.      Go to http://www.inreto.de/dns323/fun-plug/0.4/addons/ and download unfs3-0.9.18.tgz and portmap-6.0.tgz

                                                          vii.      Move the 2 .tgz files onto your DNS-323 (drop them in the initial area where you have mapped your network drive to it).

                                                        viii.      Telnet into your DNS-323 and go to the directory where you put your 2 .tgz files.  The command should be: 'cd /mnt/HD_a2' -- without the single quotes

                                                           ix.      Type 'funpkg.sh portmap-6.0.tgz'

                                                             x.      Type 'funpkg.sh unfs3-0.9.18.tgz'

                                                           xi.      Type 'chmod 755 /mnt/HD_a2/fun_plug.d/start/unfsd.sh'

                                                          xii.      Type 'sh /mnt/HD_a2/fun_plug.d/start/unfsd.sh start' to start the NFS server -- next time, when you restart your DNS-323, the NFS server should automatically start

 

 

3)      Mount the NFS share Install and run NFS on your Popcorn Hour:

You can mount a NFS share directly from the Popcorn Hour’s setup menu but you won’t be able to browse through all the folders. Meaning if you have multiple (sub) folders you need to create multiple shares.
You can however seen all (sub) folders if you are able to mount it to a empty folder. But as mentioned before I do not use an internal hard drive in my Popcorn Hour.

Also if you manually mount a NFS share to an empty folder you’ll lose this after a power cut.

The solution for this is using a simple USB Memory stick.

I’ve created multiple files to simple mount the NFS share with the remote control.
I also learned you need to refresh the NFS share file information after you stored new movies, pictures or music on you DNS-323.

On the Memory stick I created an empty folder called Dlink in the root folder.
I created 2 html files      – one to mount the NFS share to the folder Dlink
                                    - one to refresh the NFS share file information.

Both html files call an CGI script running the commands to mount and/or refresh the file info.
You need to modify one CGI script to connect to your DNS-323

 

a.      Mount NFS - CGI script:

            #!/bin/sh
            echo "Content-type: text/html";
            echo "";
            echo "Please be patient when mounting NFS share";
            /bin/mount 192.168.1.1:/mnt/HD_a2/Data /opt/sybhttpd/localhost.drives/USB_DRIVE_A-1/DLink;
            ls -aR /opt/sybhttpd/localhost.drives/USB_DRIVE_A-1/DLink;
            exit 0;

You need to change the IP Address to link to your DNS-323.
To edit the CGI script you can use ConTEXT text Editor - http://www.contexteditor.org/downloads.html

b.      Refresh NFS Share file information – CGI script:

            #!/bin/sh
            echo "Content-type: text/html";
            echo "";
            echo "Please be patient when indexing NFS share";
            ls -aR /opt/sybhttpd/localhost.drives/USB_DRIVE_A-1/DLink;
            exit 0;

There is no need to change anything here.

c.       HTML Pages to start CGI scripts:
I’ve created some simple pages you can open from the Popcorn Hour on-screen Menu.

                                                               i.      Mount NFS – HTML page:

<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<BODY vLink=#000000 aLink=#0000ff link=#000000 bgColor=#ffffff>
<P align=center><BR>
<IMG src="p/pch-logo.gif"><BR>
<FONT size=6><FONT color=#000000>
Mounting a NFS Share takes some time!!!<BR>
Please be patient for a minute.<BR><BR>
Press <A href="http://localhost.drives:8883/USB_DRIVE_A-1/mount.cgi"><STRONG>Enter</STRONG></A> to start mounting the NFS share.<BR>
Press the <STRONG>Home</STRONG> key when finished.<BR></FONT></FONT>
(some file listing info might appear on the screen)<BR>
<IMG src="p/pch.jpg"><IMG src="p/dns323.jpg">   
</FONT></FONT></P></BODY></HTML>

This is what the page looks like:



                                                             ii.      Refresh NFS Share file information – CGI script:

<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<BODY vLink=#000000 aLink=#0000ff link=#000000 bgColor=#ffffff>
<P align=center><BR>
<IMG src="p/pch-logo.gif"><BR>
<FONT size=5><FONT color=#000000>
Reading NFS Share!!! <BR>
Please be patient for a minute.<BR><BR>
Press <A href="http://localhost.drives:8883/USB_DRIVE_A-1/index.cgi"><STRONG>Enter</STRONG></A> to start reading the NFS share.<BR>
Press the <STRONG>Home</STRONG> key when finished.<BR></FONT></FONT>
(some file listing info might appear on the screen)<BR>
<IMG src="p/pch.jpg"><IMG src="p/dns323.jpg">
</FONT></FONT></P></BODY></HTML>

 

 

***********************

**** End Instructions ****

***********************

 

After all of the above.

Create a memory stick with the above file on in.

Plug it into your Popcorn Hour.

 

Select Media Source – USB_Drive_A-1 (when typing these instructions, I’m not sure is it makes any difference if you use the top or bottom USB Port. I used the bottom one!!!)

 

Select the file icon  and then select the Mount_NFS.html file. Press enter to start mounting your NFS share.

This will take some time – don't worry – all is normal - if finished your screen will be flooded with file listing information.

Press the home button on your remote an enjoy browsing all your files and folders.

 

All files and programs mentioned in these instructions can be found on http://home.concepts.nl/~to16304/pch.zip

These instructions can also be found on http://www.tolboom.tv