Saturday, March 01, 2014

Tutorial: Create fonz fun plug package for DNS-320 NAS

What is fun_plug?
fun_plug is a (hacking) script which will be extracted and executed after the DNS-320 (and other similar NAS) booted. The fun plug package by Fonz which includes the telnet sever, allow user to telnet to the NAS, and use it as a server.

It is safe to install fun plug. Delete the fun plug files, the modification is gone.

funpkg and slacker
funpkg like dpkg, it is a package installer. You can use funpkg to install and remove software. Slacker is the software management tool with (a text-base) user interface.

$ funpkg -i helloworld.txz # install
$ funpkg -r helloworld # remove

There are many ready packages to be downloaded and installed. Refer here.

If the packages are not available, you might want to create you own fun plug package.

Create fun plug package
You need to install fun_plug (0.7), gcc, binutils and other packages (list of software for compile environment refer here).

Once you have setup the compilation environment you are ready to go. Take a hello world example.

$ tar xzvfp helloworld-1.0.0.tar.gz
$ cd helloworld-1.0.0
$ [CFLAGS=""] ./configure --prefix=/ffp
$ make
$ DEDSTDIR=/tmp/helloworld make install

$ cd /tmp/helloworld
$ ls
ffp/bin/ ffp/lib/
$ makepkg
makepkg <name> <version> <release>
$ makepkg helloworld 1.0.0 1
==> /tmp/helloworld-1.0.0-arm-1.txz
$ funpkg -i /tmp/helloworld-1.0.0-arm-1.txz
helloworld installed.

gcc compiler option for DNS-320
I get this from Internet.
CFLAGS="-march=armv5te -mtune=arm926ej-s -msoft-float -mfloat-abi=soft -fno-tree-sink -O0"

DNS-320 cpu is ARM926EJ. ARM926EJ implements the ARMv5TEJ technology.

What is soft float and hard float abi? Hard float abi is a vfp floating point register to process floating point. In Debian Linux define armhf is refer to ARMv7.

No comments: