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
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.
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.
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.
Install Cygwin with the Ruby interpreter and any dependent packages. The remaining setup settings can remain as their defaults.
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
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 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.
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.
If your re-flashing was a success you can now disconnect the serial adapter and put your DNS-323 back together!