How to Recover the DNS-323 from Windows
This document contains my experiences with reflashing my DNS-323 on Windows 7
Big Thanks to Martin Michlmayr and his tutorials at Cyrius.com
Read the footnotes for additional information
Requirements
splitdns323fw is part of the dns323-firmware-tools available at http://theshed.hezmatt.org/dns323-firmware-tools/. The file I have included here is the same splitdns323fw utility provided on the website except it has been run through another utility called dos2unix which properly formats the document to run in Cygwin.
Setup
Serial Adapter
You will need to get one of the serial adapters from the hardware guide Serial Adapters. I used the USB cable out of the available options, but any will work.
Firmware
The next step will be to either use a pre-split firmware (provided below) or use splitdns323fw to split your own into a Kernel and Ramdisk image.
Pre-Split
D-Link Firmware 1.10 (http://www.djtazie.com/)
Split your own
Cygwin
Install Cygwin with the Ruby interpreter and any dependent packages. The remaining setup settings can remain as their defaults.
splitdns323fw
Here is where we'll split either a custom firmware or factory firmware in Cygwin.
- Open up Cygwin once everything is finished installing and note the path to your home directory (in my case it was C:\cygwin\home\Wes).
- Extract the firmware to your home directory, in my case I used the current factory firmware (1.09) so I extracted the 'dns323_fw_109' file from the 'dns323_fw_109.zip' archive to C:\cygwin\home\Wes.
- Extract the 'splitdns323fw' file from the 'splitdns323fw.zip' archive to your home directory. 1)
- Back in the Cygwin console type the following commands:
- chmod 777 ./splitdns323fw
- ./splitdns323fw -k uKernel -i uRamdisk name_of_firmware_file (Example: ./splitdns323fw -k uKernel -i uRamdisk dns323_fw_109)
- Once the splitdns323fw utility is finished you should have two new files in your home directory: uKernel and uRamdisk
Tera Term
Now comes the tricky part of flashing the firmware to the device itself.
- Install a Compact Installation of Tera Term, leaving everything as default.
- Power off your DNS-323 and connect your serial adapter to the DNS-323 and your computer.
- Record which COM port you're serial adapter is on, we'll need that to connect to the device (don't know what it is? check your device manager).
- Open Tera Term and select 'Serial' and change 'Port' to the COM port your serial adapter is on and hit 'OK'. Example
- Go to the 'Setup' menu and then to 'Serial Port…', match the settings as follows and hit 'OK': Example
- Baud rate: 115200
- Data: 8 bit
- Parity: none
- Stop: 1 bit
- Flow control: none
- Transmit delay: 0 msec/char 0 msec/line
- Power on your DNS-323 and immediately (about 2 seconds) press SPACE bar than 1 2).
If the serial cable is correctly wired, uboot will tell you to press a key to stop boot sequence
- You should be prompted with a Marvel» command line at this point.
- Type in and hit enter: loadb k
- In Tera Term go to 'File' → 'Transfer' → 'Kermit' → 'Send…' and navigate to your Cygwin home directory where the uKernel and uRamdisk files are. Select the uKernel file first and hit 'Open'. Once it is done you will be prompted with another Marvel» command line. 3)
- Type in and hit enter: loadb r
- Back in Tera Term go to 'File' → 'Transfer' → 'Kermit' → 'Send…' and navigate to your Cygwin home directory where the uKernel and uRamdisk files are. Select the uRamdisk file next and hit 'Open'. This will take longer than the kernel flash. Once it is done you will be prompted with another Marvel» command line.
- Reboot the DNS-323.
Done
At this point - assuming there were no errors - your DNS-323 should boot up with out problems with a default installation of either the Factory or Custom firmware you picked. You can leave the serial adapter connected 4) and check on the installation / boot-up sequence of the device to make sure everything is working OK.
Completion
If your re-flashing was a success you can now disconnect the serial adapter and put your DNS-323 back together!