These are the steps I used to turn my D-Link DNS-321 NAS (baby version of the DNS-323) into a video server for my Roku box. It should work for the DNS-323 too.
(1) Install Fonz FunPlug (ffp) into the NAS and enable telnetd, per
http://wiki.dns323.info/howto:ffp(1b) Telnet into your NAS, so you should have a root shell prompt.
(2) On the NAS, install Optware, per
http://wiki.dns323.info/howto:optware Important for DNS-321: If you have a DNS-321, in the instructions in that howto substitute the following URL as the repository (i.e. where to get the ipkg binary from and as the repo URL in ipkg.conf):
http://ipkg.nslu2-linux.org/feeds/optwa ... /unstable/(The DNS-321 uses a different native libc than the DNS-323, so the DNS-321 needs software built against the different libc than the DNS-323.)
Note 1: That howto suggests appending to the end of the fun_plug script the commands to mount /opt. Instead, I put them in a new /ffp/etc/fun_plug.local script:
mkdir -p /opt
mount --bind /mnt/HD_a2/ipkg/opt /opt
Make sure to use chmod to make the /ffp/etc/fun_plug.local script executable.
Note 2: That howto suggests prepending /opt/bin:/opt/sbin to the PATH variable in /ffp/etc/profile. That only works if you were brave enough to change root's default shell to the shell supplied in fun_plug. I'm not that brave, so I explicitly set the PATH in the rokud script supplied in step 6, so don't worry about updating /ffp/etc/profile
(2b) On the NAS, install python 2.6 from the Optware repository by running the commands
export PATH=/opt/bin:/opt/sbin:$PATH
ipkg update
ipkg install python26
(3) Put the Roku into developer mode -- follow Installation instructions in the README for "My Media" at
http://github.com/netguy204/roku_media_ ... ME.textile, which will point you to the right pages in the Roku SDK documentation
(4) Install "My Media" software on your PC. (From
viewtopic.php?f=28&t=25955)
(5) Install "My Media" software also on your NAS. I installed mine at /opt/exec/roku_media_server
(6) On the NAS, create the shell script /ffp/bin/rokud containing
#!/ffp/bin/sh
set -x
export PATH=/opt/bin:/opt/sbin:$PATH
cd /opt/exec/roku_media_server/server
python2.6 ./rss_server.py </dev/null >/tmp/rokud.$$ 2>&1 &
Use chmod to make it executable. You can invoke this script in the future (not now) to manually start the "My Media" server.
(7) To make the "My Media" server run automatically every time the NAS is booted, on the NAS create the shell script /ffp/start/rokud.sh containing
#!/ffp/bin/sh
# PROVIDE: rokud
# REQUIRE: SERVERS
# BEFORE: LOGIN
. /ffp/etc/ffp.subr
name="rokud"
command="/ffp/bin/rokud"
run_rc_command "$1"
Use chmod to make it executable.
(8) Run springboard.py (or springboard.vbs) on your PC to set the configuration, and then click on the "Install Client" button. Note that the server_ip should be the IP address of your NAS (not your PC).
(9) Running springboard on your PC will have created a config.ini file in the folder where you ran springboard. Copy-paste its contents into a new file on the NAS named (if you followed my example) /opt/exec/roku_media_server/server/config.ini
(10) You can now manually start "My Media" on your NAS by invoking the rokud script, or reboot the NAS to make sure it gets started automatically. To check that it's running, on the NAS run the command `ps -ef | grep rss` -- there should be a processing running "python2.6 ./rss_server.py"
(11) Go to your TV and see if your Roku box can see the My Media channel, and the Music and Video folders within that channel that you specified in the config.ini file you created in steps 8 & 9.