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.

  1. Full reinstallation (slow)
  2. Minimal reinstallation (fast, requires Internet access)

1. Full reinstallation

  1. Download the image files (use the ones with the most recent date). There should be two image files: one labelled boot and one labelled root.

  2. 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.

  3. 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>
  4. 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>
  5. 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.

  6. Now power cycle the DCM. When it first boots, it will need to generate new keypairs for the ssh program. 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:
  7. 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.

  8. 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

  1. Download the image files (use the ones with the most recent date). There should be two image files: one labelled boot and one labelled root.

  2. 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.

  3. 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>
  4. 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>
  5. 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.

  6. 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
  7. When the DCM first boots, it will need to generate new keypairs for the ssh program. 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:
  8. 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 ~]# 
  9. 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
  10. To install the remaining firmware, run postinst:

    [root@dcm-unconfigured ~]# ./postinst
    ....
    lots and lots of output
    ....
    [root@dcm-XXXXXXXXXXXX ~]# reboot -f
  11. Wait for the DCM to boot once more. The DCM's settings will have been reset. You may now configure the DCM as desired.

Content and images © 2009 Güralp Systems unless otherwise stated. Comments to the webmaster.