Advice and update: If you want to install Debian Lenny on your D-Link DNS-323 I suggest you reading HOWTO’s on Martin Michlmayr site and consider this post as an example of building installer.
Big thanks are going to Matthew Palmer and Martin Michlmayr for their part in bringing native Debian support on D-Link DNS-323.
Alas, the patches for debian-installer with support of DNS-323 were too late to include in Lenny. But right now they are integrated in d-i codebase already.
There is another obstacle: debian-installer’s build scripts are strictly against cross-compilation (making d-i cross-compile is an effort comparable to making the sun go down faster with own bare hands).
Two weeks ago I have tried to run RTSP unicast and multicast streams from D-Link DNS-323. I used cross-compiled test applications from LIVE555 project and vlc suite from chrooted Debian.
At the first sign stream looks good and taking no more than 10% of CPU time (according to top). After closer examination I discovered a delays in sending MPEG TS frames. vlc on receiving end was able to compensate those delays via large buffer but hardware set-top box wasn’t.
Lets hope problem lies somewhere near internal clock driver and can be mended after kernel upgrade.
This time we will build modified version of D-Link DNS-323 firmware.
Flashing modified firmware binary image can brick your device voiding warranty. Use at own risk
As an example we will modify security mode in Samba configuration file and put it in “defaults” section of firmware.
Lets look at D-Link DNS-323 firmware structure and building procedures.
(You can get parseFirmware.py util here.)
Internally firmware binary contains three parts:
I finally got D-Link DNS-323 firmware pack/unpack scripts running.
We’re talking about this device (russian page).
There are some sites about modifying this device firmware. What they lack is tools and information about building own firmware binary image to flash device through its web-interface.
Alas D-Link doesn’t publish firmware building tools, only source code for used software.
Fortunately such tools are available for Conceptronic CH3SNAS which is built upon similar hardware and software.
So I looked at web-interface source code of both devices and source code of firmware building tool for Conceptronic device and managed to create working firmware image parsing/building tools out of it.
You can get those tools here.
Instructions will follow.
Sometime ago I was given an interesting NAS device: D-Link DNS-323.
Main problem with it lays in lack of support of cyrillic languages
other than russian and share-based security model for SMB shares.
Device is Linux based but available GPL-ed source code lacks tools
to build firmware image to flash device using its Web-interface.
There are some resources about customizing this device and adding
a new functions (like Asterisk).
In next few posts I’ll try to describe my progress in building
customized firmware image to flash device using its web-interface
(without losing ability to re-flash original firmware).