Reflashing CMG-DCM units
If the DCM's file systems become corrupted, you may need to reinstall the base root and boot partitions. This process is not necessary if you simply want to ensure the DCM has all the latest software. In this case, you should use the upgrade command described here.
IMPORTANT: Reinstalling the root and boot partitions will destroy any changes you have made to the system, including your IP address settings. It may also erase all data from the flash. However, it will preserve anything on the removable disk. You will need access to the serial port throughout the procedure; network-only access is not sufficient.
This guide is split into two scenarios. The first simply re-installs everything. This procedure takes approximately 45 minutes. The second re-installs a minimal base system, and then installs the remaining DCM firmware from our website. It requires Internet access but is quicker, taking maybe 25 minutes.
- Full reinstallation (slow)
- Minimal reinstallation (fast, requires Internet access)
1. Full reinstallation
Download the image files (use the ones with the most recent date). There should be two image files: one labelled
bootand one labelledroot.Next, get access to the boot loader. Using hypertrm on Windows, or minicom or another terminal emulator on Linux, connect to the DATA OUT port of the DCM at 115200 baud, no parity, 8 data bits, 1 stop bit, and no flow control.
Power cycle the DCM, and repeatedly type fishsoup followed by a space until you get a prompt:
Bootloader fishsouped and ready boot>
Note that there have been several revisions of the bootloader, and so the messages that you encounter may differ slightly from the ones reproduced in these instructions. However, in all cases, you can simply follow the same procedure.
Press ENTER a few times to make sure you are sucessfully talking to the boot loader, then type:
boot> nand 0 erasechip Scanning for nand chip ... nand_maf_id = 0x000000EC nand_dev_id = 0x00000076 nand device name: Samsung K9D1208V0M nand erasechip: Erasing entire chip nand erasechip: passed boot> nand 1 erasechip Scanning for nand chip ... nand_maf_id = 0x000000EC nand_dev_id = 0x00000076 nand device name: Samsung K9D1208V0M nand erasechip: Erasing entire chip nand erasechip: passed boot> boot> nand 2 erasechip Scanning for nand chip ... nand_maf_id = 0x000000EC nand_dev_id = 0x00000076 nand device name: Samsung K9D1208V0M nand erasechip: Erasing entire chip nand erasechip: passed boot>
Load the boot image with the command:
boot> load boot After receiving file, will automatically uncompress .gz images loading flash region boot using ymodem ready for YMODEM transfer...
Hyperterminal: Send the "boot" file you downloaded earlier by selecting Transfer from the menu bar and then Send File. Enter the filename where you downloaded the boot image to earlier, select Ymodem and click on Send.
Minicom: Send a file (usually ^A then S, and select Y-modem from the list). Select the boot file you downloaded earlier.
It is possible that in the time you take to do this the DCM will get bored and give up. If this happens, press enter to get the bootloader prompt, and repeat this step.
Once the image is uploaded you should get:
02CF170D454B000464C86C989C3FC2D0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx boot-xxxxxxxxxxx xxxxxxxx bytes loaded to C0000400 img_size is not a multiple of 4 -- are we sure that's OK? Scanning for nand chip ... nand_maf_id = 0x000000EC nand_dev_id = 0x00000076 nand device name: Samsung K9D1208V0M Looks like a gzipped image, let's verify it... Looks like a gzipped image, let's verify it... Verifying gzipped image ......................... verifyGZipImage: calculated CRC = 0xXXXXXXXX verifyGZipImage: read CRC = 0xXXXXXXXX programming flash...erasing ... Erasing NAND region Erasing from 0x00000000 Erasing bytes 0x00100000 writing flash.. Programming NAND region YAFFS image: Programming/Verifying 0x000C0750 Block ok at page 0x00000020 .... YAFFS partition programming Success verifying ... Verifying NAND device nand: verified ok done. boot>
Load the root image with:
boot> load root After receiving file, will automatically uncompress .gz images loading flash region root using ymodem ready for YMODEM transfer...
Send the "root" file in the same way, and wait for the
boot>prompt.Now power cycle the DCM. When it first boots, it will need to generate new keypairs for the
sshprogram. This takes 2-3 minutes. During this time, the DCM will appear unresponsive. Once it has completed, the DCM will present a login prompt:dcm-XXXXXXXXXXXX login:
Log in as root with the default password rootme:
dcm-XXXXXXXXXXXX login: root Password: rootme login[188]: root login on `/dev/ttyS0' [root@dcm-XXXXXXXXXXXX ~]#
When you have logged in, reboot the DCM with reboot -f.
Wait for the DCM to boot once more. The DCM's settings will have been reset. You may now configure the DCM as desired.
2. Minimal reinstallation
Download the image files (use the ones with the most recent date). There should be two image files: one labelled
bootand one labelledroot.Next, get access to the boot loader. Using hypertrm on Windows, or minicom or another terminal emulator on Linux, connect to the DATA OUT port of the DCM at 115200 baud, no parity, 8 data bits, 1 stop bit, and no flow control.
Power cycle the DCM, and repeatedly type fishsoup followed by a space until you get a prompt:
Bootloader fishsouped and ready boot>
Note that there have been several revisions of the bootloader, and so the messages that you encounter may differ slightly from the ones reproduced in these instructions. However, in all cases, you can simply follow the same procedure.
Press ENTER a few times to make sure you are sucessfully talking to the boot loader, then type:
boot> nand 0 erasechip Scanning for nand chip ... nand_maf_id = 0x000000EC nand_dev_id = 0x00000076 nand device name: Samsung K9D1208V0M nand erasechip: Erasing entire chip nand erasechip: passed boot> nand 1 erasechip Scanning for nand chip ... nand_maf_id = 0x000000EC nand_dev_id = 0x00000076 nand device name: Samsung K9D1208V0M nand erasechip: Erasing entire chip nand erasechip: passed boot> boot> nand 2 erasechip Scanning for nand chip ... nand_maf_id = 0x000000EC nand_dev_id = 0x00000076 nand device name: Samsung K9D1208V0M nand erasechip: Erasing entire chip nand erasechip: passed boot>
Load the boot image with the command:
boot> load boot After receiving file, will automatically uncompress .gz images loading flash region boot using ymodem ready for YMODEM transfer...
Hyperterminal: Send the "boot" file you downloaded earlier by selecting Transfer from the menu bar and then Send File. Enter the filename where you downloaded the boot image to earlier, select Ymodem and click on Send.
Minicom: Send a file (usually ^A then S, and select Y-modem from the list). Select the boot file you downloaded earlier.
It is possible that in the time you take to do this the DCM will get bored and give up. If this happens, press enter to get the bootloader prompt, and repeat this step.
Once the image is uploaded you should get:
02CF170D454B000464C86C989C3FC2D0 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx boot-xxxxxxxxxxx xxxxxxxx bytes loaded to C0000400 img_size is not a multiple of 4 -- are we sure that's OK? Scanning for nand chip ... nand_maf_id = 0x000000EC nand_dev_id = 0x00000076 nand device name: Samsung K9D1208V0M Looks like a gzipped image, let's verify it... Looks like a gzipped image, let's verify it... Verifying gzipped image ......................... verifyGZipImage: calculated CRC = 0xXXXXXXXX verifyGZipImage: read CRC = 0xXXXXXXXX programming flash...erasing ... Erasing NAND region Erasing from 0x00000000 Erasing bytes 0x00100000 writing flash.. Programming NAND region YAFFS image: Programming/Verifying 0x000C0750 Block ok at page 0x00000020 .... YAFFS partition programming Success verifying ... Verifying NAND device nand: verified ok done. boot>
Load the root image with:
boot> load root After receiving file, will automatically uncompress .gz images loading flash region root using ymodem ready for YMODEM transfer...
Send the "root" file in the same way, and wait for the
boot>prompt.Now you can boot the DCM. The easiest way is to power cycle it, but you can also use this command sequence:
boot> yaffs reset boot> params eval boot> boot
When the DCM first boots, it will need to generate new keypairs for the
sshprogram. This takes 2-3 minutes. During this time, the DCM will appear unresponsive. Once it has completed, the DCM will present a login prompt:dcm-unconfigured login:
Log in as root with the default password rootme:
dcm-unconfigured login: root Password: rootme login[188]: root login on `/dev/ttyS0' [root@dcm-unconfigured ~]#
-
If you are connected via DHCP, the DCM will have been assigned an IP address. Otherwise, you will need to assign one manually with:
[root@dcm-unconfigured ~]# ifconfig eth0 your-ip-address netmask 255.255.255.0 up [root@dcm-unconfigured ~]# route add default gw your-network-gateway
To install the remaining firmware, run postinst:
[root@dcm-unconfigured ~]# ./postinst .... lots and lots of output .... [root@dcm-XXXXXXXXXXXX ~]# reboot -f
Wait for the DCM to boot once more. The DCM's settings will have been reset. You may now configure the DCM as desired.
