DM800SE Upgrade OE1.6 -> 2.0 (remotely)

  • Hi there,


    I need some help here.
    I would like to upgrade some DM800SE receivers from a OE1.6 image to a OE2.0 image remotely.
    I have a working OE2.0 image for each box in NFI format which can be flashed perfectly using the web-interface that's built into the bootloader (by holding power until you see HOLD).
    However, I'd like to achieve the same result without any user interaction.


    Since I have the complete build-environment for my OE2.0 image, I thought of the following method.


    All the receivers are currently running a OE1.6 image (using the old flash layout)
    I built the OE2.0 kernel with a small initramfs with busybox (with network support and wget) and a static nandwrite (compiled from the official mtd-utils git, no dreambox specific patches applied).


    For the record:
    I have the following files: ssl.bin boot.jffs2 and root.jffs2 which I can use to create a perfectly working OE2.0 using this command on my build-environment:

    Code
    buildimage --arch=dm800se --flash-size=0x4000000 --brcmnand 
    --erase-block-size=16384 --sector-size=512 -b 0x40000:ssl.bin -d 
    0x3C0000:boot.jffs2 -d 0x3C00000:root.jffs2 > perfectl_oe2.0_image.nfi


    This image can be flashed using the DM800SE bootloader web-interface and works, so I can confirm that my compiled sources (ssl.bin boot.jffs2 and root.jffs2) are OK.


    I first tried to create a large RAW nand file using this method:

    Code
    buildimage --arch=dm800se --flash-size=0x4000000 --raw --brcmnand 
    --erase-block-size=16384 --sector-size=512 -b 0x40000:ssl.bin -d 
    0x3C0000:boot.jffs2 -d 0x3C00000:root.jffs2 > flash.nand


    On the OE1.6 image, I mount the /dev/mtdblock2 partition to /boot and
    I replace the kernel with my own OE2.0 image which will start busybox
    on serial shell.
    Now I'd like to erase the complete flash memory and flash my OE2.0 and reboot.


    I wget the "flash.nand" file into a tmpfs directoy


    And try to flash it using:
    flash_eraseall /dev/mtd0 0
    nandwrite -m -n -o /dev/mtd0 flash.nand


    However after a reboot, the bootloader is correctly flashed, but it complains it cannot find the correct inode for the boot partition.


    So I'd like to know.
    - Do I need special patches for mtd-utils (nandwrite flash_eraseall) to support the DM800SE
    - What's the correct procedure to flash, eg how should I present my the image I'd like to flash and what options should I use


    I'm really grateful if anyone could help me out.


    Than I can finally wrap everything up in scripts and upgrade automatically.


    Best regards,

  • You are not giving up to find a way to flash your cloneboxes ... nfiwrite can do the job nicely :thumbs_up:

  • it is not my fault if you are not following the advice you got to use your brain and try to understand how this works.


    Instead you continue to tell everybody that it doesn't work and ask to get the solution served on a plate - which btw. is fitting on a stamp - because it is either 3 lines of code or using the unchanged binaries ... properly.


    And there is NO timeBOMB in any of my binaries - as it is not BOMBING or destroying anything.