1st little steps

This is a beginners step-by-step guide on how can you enhance your DNS-323 box with fun_plug tweaking.

This guide supposes you use Unix/Linux desktop (altough, with very small effort it is usable for windows users as well, if using putty ssh/telnet application) with IP address

It is assumed that your NAS device is plugged into home network, having DHCP server turned on.

It is assumed that your NAS device has gotten the IP address from DHCP server (later this address will be changed to, or whatever by your choice).

Don't forget to substitute all IP addresses and passwords mentioned below to your environment.

Step 0.(optional) Clean from previous fun_plug

  • Attach shared root folder, and delete files ffp.log, fun_plug and folder ffp.
  • Alternatively you can telnet or ssh to nas, if you can.
        # cd /mnt/HD_a2
        # rm -r ffp
        # rm ffp.log
        # rm fun_plug
        # reboot 

Step 1. HW reset

  • Turn the device on and wait for leds constantly glowing. Then push thin wire to reset hole, hold for at least 10s, and release the wire.
  • Wait for leds constantly glowing again.
  • Check what IP address is assigned to DNS-323 (read it from your DHCP server, or try ping through DHCP range).
  • Put the DHCP assigned IP address into browser (assumed

Step 2. The very first init

  • Login (user:'admin', pwd:'')
  • Menu Setup/Wizard/, [Run Wizard]
    • [Next]
    • Enter admin password: 'adminpwd', [Next]
    • Enter timezone +1, [Next]
    • Switch to Static IP and fill with '' address, [Next]
    • Name 'joesnas', [Next]
    • [Completed]
  • Wait 1-2 minutes, until browser reloads with new IP address to login window.
  • Make sure there is at least one drive in the NAS and it has been formatted.

Step 3. Prepare Ftp server for FunPlug

  • Login to browser page, user:'admin', password:'adminpwd'
  • Menu Advanced/UserGroups:
    User Name: 'joe'
    password: 'joepwd'
  • Menu Advanced/FTP Server:
    User: 'joe'
    Folder: 'Root' checked
    Permission: 'R/W Read/Write'
  • Client language: (choose what best fits to your country; in doubts use Unicode),
  • [Start FTP Server]

Step 4. Install FunPlug with Telnet enabled

See details at http://wiki.dns323.info/howto:fun_plug (chapter Transfer using FTP)

  • In your linux desktop, make folder fp and cd to fp
     $ mkdir fp; cd fp
  • In fp folder, use FTP and put files into root folder
    $ ftp
      Name ( joe
      331 User joe OK. Password required
      Password: joepwd
        ftp> cd Volume_1
        ftp> bin
        ftp> mput fun*
          mput fun_plug? y
         mput fun_plug.tgz? y
        ftp> chmod 777 fun_plug
        ftp> bye
  • Login to browser page, user:'admin', password:'adminpwd'
  • Menu Tools/System, button [Restart]
  • Wait about 1-2 minutes after leds are constantly glowing again (time taken by fun_plug first installing)

Step 5. Enable SSH, disable Telnet

See details at http://nas-tweaks.net/CH3SNAS:Tutorials/fun_plug

  • Telnet to
  • Prepare root login
      / # pwconv
      / # passwd (enter 'adminpwd' as mentioned before)
      / # usermod -s /ffp/bin/sh root
      / # store-passwd.sh
  • Activate ssh
      / # chmod a+x /ffp/start/sshd.sh
      / # sh /ffp/start/sshd.sh start
  • Use ssh to connect from your machine (Linux assumed, but putty is possible also for Windows)
      $ ssh -l root
        root@'s password: 'adminpwd'
  • Deactivate telnet
        root@joes_nas:~# /ffp/start/telnetd.sh stop
        root@joes_nas:~# chmod -x /ffp/start/telnetd.sh

Step 6. Install repository for local use

See at http://nas-tweaks.net/CH3SNAS:Tutorials/ffp-packages See at http://ffp.wolf-u.li/additional/

It appears that inreto.de is no longer accepting connections via rsync. The following commands are no longer working. If they do not work for you, you can download the packages by some other means (such as wget).

  $ ssh -l root
     cd /ffp/
     mkdir pkg ; cd pkg ; rsync -av --delete inreto.de::dns323/fun-plug/0.5/packages .
     rsync -av --delete wolf-u.li::ffp/additional .
     rsync -av --delete inreto.de::dns323/fun-plug/0.5/extra-packages .

Note, if you are using the 0.7 version the command is:

rsync -av --delete inreto.de::dns323/fun-plug/0.7/XXXXXXXXXXXXXX/packages/

Were XXXXXXXXXXXXXX is the architecture of your NAS

Step 7. Install MidnightCommander

# funpkg -i /mnt/HD_a2/ffp/pkg/additional/app-misc/mc-*.tgz

Step 8. Install NTP Time synchronisation

See a complete Tutorial at http://nas-tweaks.net/CH3SNAS:Tutorials/ntp See at http://wiki.dns323.info/howto:ffp (chapter NTP Network Time Protocol)

    # cd /ffp/etc
    # cp examples/ntp.conf .
    # chmod a+x /ffp/start/ntpd.sh
    # sh /ffp/start/ntpd.sh start
    # ntpq -p
Fix: HDD stand by issue

It is recommended to change drift file path in /ffp/start/ntpd.sh file to /tmp/ntp.drift. Otherwise drive won't go to stand by anymore. @yozik04

Issue with DNS-313

Step 9. Install Lighttpd web server

See a complete Tutorial at http://nas-tweaks.net/CH3SNAS:Tutorials/lighttpd See at http://wiki.dns323.info/howto:lighttpd_php (chapter Easy Ways )
See at http://wiki.dns323.info/howto:ffp (chapter Lighttpd Web Server)

  • Prepare www store
        # cd /mnt/HD_a2
        # mkdir -p www/logs www/pages
        # echo "<html> <head><title></title></head>" > /mnt/HD_a2/www/pages/index.html
        # echo "<body> Lighttpd is OK and running </body> </html>" >> /mnt/HD_a2/www/pages/index.html
  • Prepare server
        # cd /ffp/etc
        # cp examples/lighttpd.conf /ffp/etc/lighttpd.conf 
        # chmod a+x /ffp/start/lighttpd.sh
  • Change the user and group the daemon will run as (optional, more secure)
        # groupadd www-data
        # useradd -g www-data www-data
        # sed -i s/#server.username.*/'server.username             = "www-data"'/ /ffp/etc/lighttpd.conf
        # sed -i s/#server.groupname.*/'server.groupname            = "www-data"'/ /ffp/etc/lighttpd.conf
        # chown root:www-data /mnt/HD_a2/www/logs/
        # chmod 774 /mnt/HD_a2/www/logs/
  • Start webserver
        # sh /ffp/start/lighttpd.sh start
  • Test webserver
    Navigate browser to and read the page

Step 10. Add PHP packages into to Lighttpd

See a complete Tutorial at http://nas-tweaks.net/CH3SNAS:Tutorials/php See at http://forum.dsmg600.info/viewtopic.php?id=3466

  • Install PHP (fun_plug 0.5)
        # funpkg -i /ffp/pkg/additional/dev-lang/php-*.tgz
        # funpkg -i /ffp/pkg/additional/net-misc/curl-*.tgz
  • Install PHP (fun_plug 0.7)
        # funpkg -i /ffp/pkg/packages/php-*.txz
        # funpkg -i /ffp/pkg/packages/curl-*.txz
  • Prepare webserver for PHP (fun_plug 0.5 and fun_plug 0.7)
        # cp /ffp/etc/examples/lighttpd.conf-with-php /ffp/etc/lighttpd.conf
        # sed -i s/#server.username.*/'server.username             = "www-data"'/ /ffp/etc/lighttpd.conf
        # sed -i s/#server.groupname.*/'server.groupname            = "www-data"'/ /ffp/etc/lighttpd.conf
  • Copy the php.ini file (fun_plug 0.5)
        # cp /ffp/etc/examples/php.ini-dist /ffp/etc/php.ini
  • Copy the php.ini file (fun_plug 0.7)
        # cp /ffp/etc/examples/php.ini-production /ffp/etc/php.ini
  • Build a test PHP page and restart lighttpd. (fun_plug 0.5 and fun_plug 0.7)
        # echo "<?php phpinfo(); ?>" > /mnt/HD_a2/www/pages/a.php
        # sh /ffp/start/lighttpd.sh restart

Step 11. Add MySQL packages into to Lighttpd

See a complete Tutorial at http://nas-tweaks.net/CH3SNAS:Tutorials/Mysql See at http://forum.dsmg600.info/viewtopic.php?id=3466

  • Install MySql (fun_plug 0.5)
        # cd /mnt/HD_a2/ffp/pkg
        # wget
        # funpkg -i mysql-5.1.28-rc-1.tgz
  • Install MySql (fun_plug 0.7)
     # funpkg -i /ffp/pkg/packages/mysql-*.txz
  • Prepare PHP for MySQL
        # echo extension=mysql.so >> /ffp/etc/php.ini
        # echo extension=pdo.so >> /ffp/etc/php.ini
        # echo extension=pdo_mysql.so >> /ffp/etc/php.ini
        # vi /ffp/etc/php.ini

Comment extension dir line. This line is under the Paths and Directories heading, which is 42% of the way through the file.

    ;extension_dir = "./"

Below it, add a new extension directory path. (fun_plug 0.5)

    extension_dir = "/ffp/lib/php/extensions/no-debug-non-zts-20060613/"

Below it, add a new extension directory path. (fun_plug 0.7)

    extension_dir = "/ffp/lib/php/extensions/no-debug-non-zts-20090626/"
  • Copy the my.cnf template. (fun_plug 0.5)
        # cp /ffp/etc/examples/my.cnf /ffp/etc/.
  • Copy the my.cnf template. (fun_plug 0.7)
        # cp /ffp/etc/examples/mysql/my-small.cnf /ffp/etc/my.cnf
  • Edit the my.cnf template. Here is how it looks before editing. (fun_plug 0.7)
    # The MySQL server
    port		= 3306
    socket		= /ffp/var/run/mysql/mysql.sock
    key_buffer_size = 16K
  • This is what it should look like after editing. A datadir row has been added, and skip-locking has been changed to skip-external-locking. (fun_plug 0.7)
    # The MySQL server
    port		= 3306
    socket		= /ffp/var/run/mysql/mysql.sock
    datadir		= /ffp/var/lib/mysql
    key_buffer_size = 16K

Create space for logs, then initialize the data directory. (fun_plug 0.7)

    # mkdir -p /srv/mysql
    # mysql_install_db --datadir=/ffp/var/lib/mysql

Prepare MySQL. Be careful, initial password setting is possible only at the first time

    # sh /ffp/start/mysqld.sh start
    # mysql_secure_installation
  • Test MySQL local connection
        # /ffp/bin/mysql -uroot -p
          mysql> show databases;
          mysql> use mysql;
          mysql> show tables;
          mysql> select host, user, password from user;
  • Test MySQL presence in lighttpd server
        # sh /ffp/start/lighttpd.sh restart

    Navigate browser to and see mysql section at the page

Step 12. Allow remote connection to MySql

See http://nas-tweaks.net/96/installation-and-configuration-of-mysql-on-fonz-fun_plug/#Allowing_external_access
See http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
See http://forums.mysql.com/read.php?108,62926,199511

  • Allow user 'root' to connect remotely, for instance to administrate MySQL with graphical tools (SQLYog mysqladmin)
        # /ffp/bin/mysql -uroot -p
          mysql> GRANT ALL ON *.* TO root@''IDENTIFIED BY 'put-your-root-password-here' ;
          mysql> FLUSH PRIVILEGES;
  • Add new user with strictly defined rights
        # /ffp/bin/mysql -uroot -p
          mysql> INSERT INTO mysql.user 
    ( HOST, USER, PASSWORD, select_priv, insert_priv, update_priv, delete_priv,  create_priv, drop_priv, reload_priv, shutdown_priv, process_priv,  file_priv, grant_priv, references_priv, index_priv, alter_priv, show_db_priv, super_priv, create_tmp_table_priv, lock_tables_priv, execute_priv, repl_slave_priv, repl_client_priv, create_view_priv, show_view_priv, create_routine_priv, alter_routine_priv, create_user_priv, event_priv, trigger_priv )
    ( '%', 'john', PASSWORD('johnpwd'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y' );
          mysql> FLUSH PRIVILEGES;

    Command allows user 'John' to login with password 'johnpwd' from any IP ('%'), and do defined activities (e.g. all, in this case).

    This command is just an example, DO NOT USE IT IN PRODUCTION ENVIRONMENT - IT IS TOO VULNERABLE !!! First, let 'Y' only with parameters you really need.

    Or better, forget about it, and connect DB with SqlYog software, where is better command understanding in its GUI.


Personal Tools