Wiren Board 5: Firmware recovery

Материал из Wiren Board
Это утверждённая версия страницы. Она же — наиболее свежая версия.
Другие языки:

In Wiren Board 5, the firmware is stored in the EMMC chip soldered on the board. In case of problems with loading the controller a full flashing may be required, which can be done via Micro USB, booting the controller in USB Mass-Storage Gadget mode using the mxsldr utility.

Note: this section describes how to completely overwrite the contents of the Wiren Board Controller internal drive. All user data will be permanently lost. To avoid data loss, see the appropriate section.


Step-by-step guide for Linux

  1. Download the file wb5_usbfw.sb on your computer here.
  2. Assemble the program mxsldr on the computer.
  3. Download the firmware image to your computer from here (image extension is .img.zip. When downloading, select the option for your version of the board of your Wiren Board controller).
  4. Extract the .img file from the zip archive.
  5. Turn off the controller.
  6. Determine the type of processor module (normal or industrial). To do this, look at the marking of the memory chip on the processor module board:
    • Regular version: SanDisk
    • Industrial version: 6VA18JW983
  7. Connect the Micro USB connector of the controller (usually signed as FW) to the USB port of the computer.'0 It is also highly recommended to connect the controller and #Debug USB software to track the firmware process. For the industrial version, a Debug USB connection is strongly required during the firmware process.
  8. Go to the folder with the compiled mxsldr.
  9. Then:
    • (for WB5 version.3) close the FW jumper next to the Micro USB connector;
    • (for the version of WB5.6+) hold down the small button next to the microUSB connector.
  10. Without removing the jumper/hanging the button, connect the power to the controller, wait a few seconds and run
    $ sudo ./mxsldr /X/XX/wb5_usbfw.sb
    
    Where /X/XX/wb5_usbfw.sb is the path to the downloaded file.
  11. If the image is successfully loaded after a few seconds, the green led will flash and the controller memory will be detected as a drive on the computer.
  12. Then:
    • (for the version of WB5.3) remove FW jumper;
    • (for the version of WB5.6+), release the button to FW.
  13. Find out how your system has defined a new drive (such as /dev/sdb). This can be seen in the output
    dmesg | tail
    
    tail. The target drive is /dev/sdb
    .
    Note:
    If you have an industrial version of the processor module and the output of the command does not match the one shown in the screenshot (there is no device of the "sd*" type), then you need to open the Debug console of the controller and enter the following:
    /sbin/modprobe g_mass_storage file=/dev/mmcblk0 iManufacturer="Wiren Board" iProduct="Wiren Board"
    
    then re-enter the following in the PC terminal
    dmesg | tail
    
    to find out how the drive is defined in the system.
    Attention! If you make a mistake with the definition of the drive name, and in the next paragraph substitute the name corresponding to your other drive, its contents will be lost.
  14. To write firmware to the controller, replace the following in the command below
    • /X/XX/XXXXX_emmc_wb5.img - replace with the path to the pre-extracted firmware file,
    • /dev/sdX - replace with the name of the partition under which the drive is defined in the system,
    and run the command
    $ sudo dd if=/X/XX/XXXXX_emmc_wb5.img of=/dev/sdX bs=1M conv=fdatasync && sync
    
  15. After recording is complete, disconnect the controller from the USB, turn off the controller, and then turn it back on.