summaryrefslogtreecommitdiffstats
path: root/_ont/ont-huawei-ma5671a.md
diff options
context:
space:
mode:
Diffstat (limited to '_ont/ont-huawei-ma5671a.md')
-rw-r--r--_ont/ont-huawei-ma5671a.md329
1 files changed, 185 insertions, 144 deletions
diff --git a/_ont/ont-huawei-ma5671a.md b/_ont/ont-huawei-ma5671a.md
index b4661e7..1609d5c 100644
--- a/_ont/ont-huawei-ma5671a.md
+++ b/_ont/ont-huawei-ma5671a.md
@@ -7,27 +7,27 @@ parent: Huawei
# Hardware Specifications
-| | |
-| ---------------- | ----------------------------------- |
-| Vendor/Brand | Huawei |
-| Model | MA5671A |
-| ODM | ✅ |
-| Chipset | Lantiq PEB98035 |
-| Flash | 16 MB |
-| RAM | 64 MB (Winbond W25Q128FV) |
-| CPU | MIPS 34Kc interAptiv |
-| CPU Clock | 400MHz |
-| System | OpenWRT |
-| HSGMII | Yes |
-| Optics | SC/APC |
-| IP address | 192.168.1.10 |
-| Web Gui | After root |
-| SSH | ✅ user `root`, password `admin123` |
-| Telnet | |
-| Serial | ✅ on SFP |
-| Serial baud | 115200 |
-| Serial encoding | 8-N-1 |
-| Form Factor | miniONT SFP |
+| | |
+| --------------- | ----------------------------------- |
+| Vendor/Brand | Huawei |
+| Model | MA5671A |
+| ODM | |
+| Chipset | Lantiq PEB98035 |
+| Flash | 16 MB |
+| RAM | 64 MB (Winbond W25Q128FV) |
+| CPU | MIPS 34Kc interAptiv |
+| CPU Clock | 400MHz |
+| System | OpenWRT |
+| HSGMII | Yes |
+| Optics | SC/APC |
+| IP address | 192.168.1.10 |
+| Web Gui | After root |
+| SSH | ✅ user `root`, password `admin123` |
+| Telnet | |
+| Serial | ✅ on SFP |
+| Serial baud | 115200 |
+| Serial encoding | 8-N-1 |
+| Form Factor | miniONT SFP |
{% include image.html file="g-010s-p-and-ma5671a.jpg" alt="G-010S-P and MA5671A Teardown" caption="G-010S-P and MA5671A Teardown" %}
@@ -86,7 +86,7 @@ mtd5 --> rootfs_data
For more info [XPONos partition layout](https://github.com/XPONos/linux_lantiq-falcon/commit/456f68f69a84c846a542a9f0ea47c37476535dcb).
-## When booting from image0
+### When booting from image0
| dev | size | erasesize | name |
| ---- | -------- | --------- | ------------- |
@@ -97,7 +97,7 @@ For more info [XPONos partition layout](https://github.com/XPONos/linux_lantiq-f
| mtd4 | 00370000 | 00010000 | "rootfs_data" |
| mtd5 | 00800000 | 00010000 | "image1" |
-## When booting from image1
+### When booting from image1
| dev | size | erasesize | name |
| ---- | -------- | --------- | ------------- |
@@ -108,7 +108,141 @@ For more info [XPONos partition layout](https://github.com/XPONos/linux_lantiq-f
| mtd4 | 006d8077 | 00010000 | "rootfs" |
| mtd5 | 00410000 | 00010000 | "rootfs_data" |
-## EEPROM (I2C slave simulated EEPROM)
+## List of firmwares and files
+
+{% include alert.html content="If the root procedure without tweezers is used, the firmware already on the Huawei Stick corresponds to rooted firmware in this list." alert="Info" icon="svg-info" color="blue" %}
+
+- [Carlito MTD2](https://ma5671a.s3.nl-ams.scw.cloud/mtd2.bin){: .btn } md5hash: d3cb6f7efec201b37931139feb4bb23b
+- [Huawei Rooted MTD2](https://ma5671a.s3.nl-ams.scw.cloud/mA5671a_root_mtd2.img){: .btn } md5hash: 3138d2dd06a32bb92bc63610fec6fcd6
+- [Carlito MTD5](https://ma5671a.s3.nl-ams.scw.cloud/mtd5.bin){: .btn } md5hash: 59d2dc15227d6f693a38131eca89b29e
+- [Huawei Rooted MTD5](https://ma5671a.s3.nl-ams.scw.cloud/mA5671a_root_mtd5.img){: .btn } md5hash: 0e4cfdc1b96be6581869b26b48789556
+- [1224abort.bin](https://ma5671a.s3.nl-ams.scw.cloud/1224ABORT.bin){: .btn } md5hash: 10e94a4b4acdc82dec20c7904b69e5c0
+- [right.com.cn (China) 19 July 2022](https://mega.nz/file/9fpSkYTb#wNyjAj1kOLWC9HozX-gTQ-TS3VFqRYg--x1rm7RSuDg){: .btn } md5hash: 6b5e7e3c659fe3f0204340fa746ac4fc
+- [right.com.cn (China) 29 Aug 2022](https://mega.nz/file/VHFFSBrT#2WhDPcdON5EHR01l6Ut35GC3sl55e4l09Z0NUo_7SWA){: .btn} md5hash: 3d357e2dc7b59c66fe61b4ddf1fb8dc0
+- [ONT FS.com GPON ONU Stick with MAC firmware / SourcePhotonics SPS-34-24T-HP-TDFO firmware](/ont-fs-com-gpon-onu-stick-with-mac)
+
+# General Settings and Useful Commands
+
+- [Huawei Rooted Firmware General Setting](/ont-huawei-ma5671a-rooted)
+- [Carlito Firmware General Setting](/ont-huawei-ma5671a-carlito)
+- [SourcePhotonics Firmware General Setting](/ont-huawei-ma5671a-sf)
+- [right.com.cn (China) Firmware General Setting](/ont--huawei-ma5671a-china)
+- [Nokia G-010S-P Firmware General Setting](/ont-nokia-g-010s-p)
+
+## Transferring files to the stick
+
+{% include alert.html content="If you use a modern OpenSSH version (e.g. >= 8.8) you will have to use the legacy protocol and enable some deprecated algorithms: scp `-oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss [...]`" alert="Info" icon="svg-info" color="blue" %}
+
+```sh
+# scp rootfs.bin root@192.168.1.10:/tmp/
+```
+
+## Backup of all partition
+
+Make a backup of all partitions, an easy way is:
+- On the stick run:
+```sh
+cat /proc/mtd
+```
+
+### Via SCP
+- For each mtdX run in the lantiq shell:
+```sh
+cp /dev/mtdX /tmp
+```
+
+{% include alert.html content="If you use a modern OpenSSH version (e.g. >= 8.8) you will have to use the legacy protocol and enable some deprecated algorithms: `scp -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss [...]`" alert="Info" icon="svg-info" color="blue" %}
+
+And in the computer shell:
+```sh
+scp root@192.168.1.10:/tmp/mtdX ./
+```
+
+### Via NC
+
+- For each mtdX run, on computer shell:
+```sh
+nc -l -p 1234 > mtdX.bin
+```
+And in the lantiq shell:
+```sh
+cat /dev/mtdX | nc 192.168.1.11 1234
+```
+
+## Checking the currently active image
+
+```sh
+# fw_printenv committed_image
+```
+
+## Booting to a different image
+
+
+```sh
+# fw_setenv committed_image 0|1
+# fw_setenv image0|1_is_valid 1
+```
+
+## Cloning of mtd1 (image 0) into mtd5 (image 1)
+
+{% include alert.html content="Image 0 can be flashed to image 1, while image 1 cannot be flashed to image 0 because it has larger rootfs_data" alert="Warning" icon="svg-warning" color="yellow" %}
+
+The following commands are used to clone image0 to image1 and then boot to it
+```sh
+# cat /dev/mtd2 > /tmp/mtd2.bin
+# mtd -e image1 write /tmp/mtd2.bin image1
+# fw_setenv committed_image 1
+# fw_setenv image1_is_valid 1
+# reboot
+```
+
+## Flashing a new rootfs via SSH
+
+{% include alert.html content="Only the inactive image can be flashed" alert="Info" icon="svg-info" color="blue" %}
+
+The following commands are used to flash a new rootfs to image1 and then boot to it
+```sh
+# mtd -e image1 write /tmp/rootfs.bin image1
+# fw_setenv committed_image 1
+# fw_setenv image1_is_valid 1
+# reboot
+```
+
+{% include alert.html content="Some OLTs don't like when ONTs don't boot from image 0, therefore the previous procedure must be preceded by the following procedure with inverted images, as to clone image 1 into image 0" alert="Warning" icon="svg-warning" color="yellow" %}
+
+## Flashing a new rootfs via serial
+
+{% include alert.html content="We recommend using the flash web app." alert="Info" icon="svg-warning" color="yellow" %}
+
+If you wish to change the firmware via serial, we recommend using the web app: [Web Serial Flash](/ont-huawei-ma5671a-ymodem)
+
+{% include alert.html content="Use this procedure only if you are unable to do the procedure from SSH" alert="Warning" icon="svg-warning" color="red" %}
+
+1. Connecting the molex-serial adapter and the serial to the computer as indicated in [Root Procedure](/ont-huawei-ma5671a-web-root)
+2. Open Tera Term (or any other programme capable of connecting to the serial terminal)
+3. Connect the SFP stick to the SFP molex, from the terminal you will have 5 seconds to lock the bootloader by doing a simple CTRL+C. Now upload the firmware image of the new rootfs partition to the stick with the command
+```
+FALCON => loady 0x80800000
+```
+At this point it will appear:
+
+{% include image.html file="ma5671a-root-13.jpg" alt="shell requiring `mtd2` upload" caption="shell requiring `mtd2` upload" %}
+
+{:style="counter-reset:none"}
+1. From the teratem menu do `FILE` → `TRANSFER` → `YMODEM` → `SEND` → `[mtd2.bin]`.
+It will start uploading the file at a speed of about 3-4 KBps. Now you will have to wait more than half an hour for the upload to complete.
+
+1. Once finished, the image loaded on the stick must also be saved to the corresponding system partition (the first of the 2) with the commands
+```
+FALCON => setenv committed_image 0
+FALCON => setenv image0_is_valid 1
+FALCON => saveenv
+FALCON => sf probe 0 && sf erase C0000 740000 && sf write 80800000 C0000 740000 && reset
+```
+
+{% include alert.html content="If you need to flash to image 2, you must use the following command `FALCON => sf probe 0 && sf erase 800000 800000 && sf write 80800000 800000 800000 && reset`" alert="Warning" icon="svg-warning" color="red" %}
+
+# EEPROM (I2C slave simulated EEPROM)
The Huawei MA5671A does not have a physical EEPROM, the Falcon SOC emulates an EEPROM by exposing it on the I2C interface as required by the SFF-8472 specification.
On the I2C interface there will be two memories of 256 bytes each at the addresses `1010000X (A0h)` and `1010001X (A2h)`, however in reality the memory available from the emulated EEPROM will be 640 bytes each but only the first 256 bytes will be exposed in the I2C interface.
@@ -118,7 +252,7 @@ The Huawei MA5671A stores the content of the emulated EEPROM in U-Boot env varia
- `EEPROM0 (A0h)` stored in U-Boot env variable `sfp_a0_low_128`
- `EEPROM1 (A2h)` stored in U-Boot env variable `sfp_a2_info`
-### EEPROM0 layout
+## EEPROM0 layout
| address | size | name | default value | description |
| ------- | ---- | --------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
@@ -161,31 +295,31 @@ The Huawei MA5671A stores the content of the emulated EEPROM in U-Boot env varia
| 256-639 | 384 | Reserved | `0x00 0x00 0x00...` | Reserved |
-### EEPROM1 layout
+## EEPROM1 layout
| address | size | name | default value | description |
| ------- | ---- | --------------------------------- | --------------------------------------- | ----------------------------------------------------------------- |
| | | **DIAGNOSTIC AND CONTROL FIELDS** | | |
-| 0-1 | 2 | Temp High Alarm | `0x5F 0x00` (95℃) | |
-| 2-3 | 2 | Temp Low Alarm | `0xCE 0x00` (-50℃) | |
-| 4-5 | 2 | Temp High Warning | `0x5A 0x00` (90℃) | |
-| 6-7 | 2 | Temp Low Warning | `0xD3 0x00` (-45℃) | |
-| 8-9 | 2 | Voltage High Alarm | `0x8C 0xA0` (3.6V) | |
-| 10-11 | 2 | Voltage Low Alarm | `0x75 0x30` (3.0V) | |
-| 12-13 | 2 | Voltage High Warning | `0x88 0xB8` (3.5V) | |
-| 14-15 | 2 | Voltage Low Warning | `0x79 0x18` (3.1V) | |
-| 16-17 | 2 | Bias High Alarm | `0xAF 0xC8` (90mA) | |
-| 18-19 | 2 | Bias Low Alarm | `0x00 0x00` (0mA) | |
-| 20-21 | 2 | Bias High Warning | `0x88 0xB8` (70mA) | |
-| 22-23 | 2 | Bias Low Warning | `0x00 0x00` (0mA) | |
-| 24-25 | 2 | TX Power High Alarm | `0x9B 0x82` (6dBm) | Value expressed in watts subunits |
-| 26-27 | 2 | TX Power Low Alarm | `0x22 0xD0` (-1dBm) | Value expressed in watts subunits |
-| 28-29 | 2 | TX Power High Warning | `0x7B 0x86` (5dBm) | Value expressed in watts subunits |
-| 30-31 | 2 | TX Power Low Warning | `0x2B 0xD4` (0dBm) | Value expressed in watts subunits |
-| 32-33 | 2 | RX Power High Alarm | `0x09 0xCF` (-6dBm) | Value expressed in watts subunits |
-| 34-35 | 2 | RX Power Low Alarm | `0x00 0x0D` (-29dBm) | Value expressed in watts subunits |
-| 36-37 | 2 | RX Power High Warning | `0x07 0xCB` (-7dBm) | Value expressed in watts subunits |
-| 38-39 | 2 | RX Power Low Warning | `0x00 0x10` (-28dBm) | Value expressed in watts subunits |
+| 0-1 | 2 | Temp High Alarm | `0x5F 0x00` (95℃) | Value expressed in two's complement |
+| 2-3 | 2 | Temp Low Alarm | `0xCE 0x00` (-50℃) | Value expressed in two's complement |
+| 4-5 | 2 | Temp High Warning | `0x5A 0x00` (90℃) | Value expressed in two's complement |
+| 6-7 | 2 | Temp Low Warning | `0xD3 0x00` (-45℃) | Value expressed in two's complement |
+| 8-9 | 2 | Voltage High Alarm | `0x8C 0xA0` (3.6V) | Value expressed in volt subunits[^subunit] |
+| 10-11 | 2 | Voltage Low Alarm | `0x75 0x30` (3.0V) | Value expressed in volt subunits[^subunit] |
+| 12-13 | 2 | Voltage High Warning | `0x88 0xB8` (3.5V) | Value expressed in volt subunits[^subunit] |
+| 14-15 | 2 | Voltage Low Warning | `0x79 0x18` (3.1V) | Value expressed in volt subunits[^subunit] |
+| 16-17 | 2 | Bias High Alarm | `0xAF 0xC8` (90mA) | Value expressed in milliampere subunits[^subunit] |
+| 18-19 | 2 | Bias Low Alarm | `0x00 0x00` (0mA) | Value expressed in milliampere subunits[^subunit] |
+| 20-21 | 2 | Bias High Warning | `0x88 0xB8` (70mA) | Value expressed in milliampere subunits[^subunit] |
+| 22-23 | 2 | Bias Low Warning | `0x00 0x00` (0mA) | Value expressed in milliampere subunits[^subunit] |
+| 24-25 | 2 | TX Power High Alarm | `0x9B 0x82` (6dBm) | Value expressed in watts subunits[^subunit] |
+| 26-27 | 2 | TX Power Low Alarm | `0x22 0xD0` (-1dBm) | Value expressed in watts subunits[^subunit] |
+| 28-29 | 2 | TX Power High Warning | `0x7B 0x86` (5dBm) | Value expressed in watts subunits[^subunit] |
+| 30-31 | 2 | TX Power Low Warning | `0x2B 0xD4` (0dBm) | Value expressed in watts subunits[^subunit] |
+| 32-33 | 2 | RX Power High Alarm | `0x09 0xCF` (-6dBm) | Value expressed in watts subunits[^subunit] |
+| 34-35 | 2 | RX Power Low Alarm | `0x00 0x0D` (-29dBm) | Value expressed in watts subunits[^subunit] |
+| 36-37 | 2 | RX Power High Warning | `0x07 0xCB` (-7dBm) | Value expressed in watts subunits[^subunit] |
+| 38-39 | 2 | RX Power Low Warning | `0x00 0x10` (-28dBm) | Value expressed in watts subunits[^subunit] |
| 40-45 | 6 | MAC address | Unique in each SFP | Contains the mac address of the SFP, it could also be empty |
| 46-55 | 10 | Reserved | `0x00 0x00 0x00...` | Reserved |
| 56-59 | 4 | RX_PWR(4) Calibration | `0x00 0x00 0x00 0x00` | 4th order RSSI calibration coefficient |
@@ -216,10 +350,10 @@ The Huawei MA5671A stores the content of the emulated EEPROM in U-Boot env varia
| 106-109 | 4 | Optional Diagnostics | `0xFF 0xFF 0xFF 0xFF` (No support) | Monitor Data for Optional Laser temperature and TEC current |
| 110 | 1 | Status/Control | `0x00` (No support) | Optional Status and Control Bits |
| 111 | 1 | Reserved | `0x00` | Reserved |
-| 112-113 | 2 | Alarm Flags | `0x00 0x00` (No support) | Diagnostic Alarm Flag Status Bits |
+| 112-113 | 2 | Alarm Flags | Supported | Diagnostic Alarm Flag Status Bits |
| 114 | 1 | Tx Input EQ control | `0xFF` (No support) | Tx Input equalization level control |
| 115 | 1 | Rx Out Emphasis control | `0xFF` (No support) | Rx Output emphasis level control |
-| 116-117 | 2 | Warning Flags | `0x00 0x00` (No support) | Diagnostic Warning Flag Status Bits |
+| 116-117 | 2 | Warning Flags | Supported | Diagnostic Warning Flag Status Bits |
| 118-119 | 2 | Ext Status/Control | `0x00 0x00` (No support) | Extended module control and status bytes |
| | | **GENERAL USE FIELDS** | | |
| 120-126 | 7 | Vendor Specific | `0x70 0x00 0x00 0x00 0x00 0x00 0x00` | Vendor specific memory addresses |
@@ -240,102 +374,6 @@ The Huawei MA5671A stores the content of the emulated EEPROM in U-Boot env varia
{% include alert.html content="For more information, see the SFF-8472 Rev 10.2 specification." alert="Info" icon="svg-info" color="blue" %}
-## List of firmwares and files
-
-{% include alert.html content="If the root procedure without tweezers is used, the firmware already on the Huawei Stick corresponds to rooted firmware in this list." alert="Info" icon="svg-info" color="blue" %}
-
-- [Carlito MTD2](https://ma5671a.s3.nl-ams.scw.cloud/mtd2.bin){: .btn } md5hash: d3cb6f7efec201b37931139feb4bb23b
-- [Huawei Rooted MTD2](https://ma5671a.s3.nl-ams.scw.cloud/mA5671a_root_mtd2.img){: .btn } md5hash: 3138d2dd06a32bb92bc63610fec6fcd6
-- [Carlito MTD5](https://ma5671a.s3.nl-ams.scw.cloud/mtd5.bin){: .btn } md5hash: 59d2dc15227d6f693a38131eca89b29e
-- [Huawei Rooted MTD5](https://ma5671a.s3.nl-ams.scw.cloud/mA5671a_root_mtd5.img){: .btn } md5hash: 0e4cfdc1b96be6581869b26b48789556
-- [1224abort.bin](https://ma5671a.s3.nl-ams.scw.cloud/1224ABORT.bin){: .btn } md5hash: 10e94a4b4acdc82dec20c7904b69e5c0
-- [right.com.cn (China) 19 July 2022](https://mega.nz/file/9fpSkYTb#wNyjAj1kOLWC9HozX-gTQ-TS3VFqRYg--x1rm7RSuDg){: .btn } md5hash: 6b5e7e3c659fe3f0204340fa746ac4fc
-- [right.com.cn (China) 29 Aug 2022](https://mega.nz/file/VHFFSBrT#2WhDPcdON5EHR01l6Ut35GC3sl55e4l09Z0NUo_7SWA){: .btn} md5hash: 3d357e2dc7b59c66fe61b4ddf1fb8dc0
-- [ONT FS.com GPON ONU Stick with MAC firmware / SourcePhotonics SPS-34-24T-HP-TDFO firmware](/ont-fs-com-gpon-onu-stick-with-mac)
-
-# General Settings and Useful Commands
-
-- [Huawei Rooted Firmware General Setting](/ont-huawei-ma5671a-rooted)
-- [Carlito Firmware General Setting](/ont-huawei-ma5671a-carlito)
-- [SourcePhotonics Firmware General Setting](/ont-huawei-ma5671a-sf)
-- [right.com.cn (China) Firmware General Setting](/ont--huawei-ma5671a-china)
-
-## Transferring files to the stick
-
-{% include alert.html content="If you use a modern OpenSSH version (e.g. >= 8.8) you will have to use the legacy protocol and enable some deprecated algorithms: scp -O -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss [...]" alert="Info" icon="svg-info" color="blue" %}
-
-```sh
-# scp rootfs.bin root@192.168.1.10:/tmp/
-```
-
-## Backup of all partition
-
-Make a backup of all partitions, an easy way is:
-- On the stick run:
-```shell
-cat /proc/mtd
-```
-- For each mtdX run, on computer shell:
-```shell
-nc -l -p 1234 > mtdX.bin
-```
-And in the lantiq shell:
-```shell
-cat /dev/mtdX | nc 192.168.1.11 1234
-```
-
-## Flashing a new rootfs via SSH
-
-{% include alert.html content="Only the inactive image can be flashed" alert="Info" icon="svg-info" color="blue" %}
-
-The following commands are used to flash a new rootfs to image1 and then boot to it
-```sh
-# mtd -e image1 write /tmp/rootfs.bin image1
-# fw_setenv committed_image 1
-# fw_setenv image1_is_valid 1
-# reboot
-```
-
-{% include alert.html content="Some OLTs don't like when ONTs don't boot from image 0, therefore the previous procedure must be preceded by the following procedure with inverted images, as to clone image 1 into image 0" alert="Warning" icon="svg-warning" color="yellow" %}
-
-## Flashing a new rootfs via serial
-
-{% include alert.html content="Use this procedure only if you are unable to do the procedure from SSH" alert="Warning" icon="svg-warning" color="red" %}
-
-1. Connecting the molex-serial adapter and the serial to the computer as indicated in [Root Procedure](/ont-huawei-ma5671a-web-root)
-2. Open Tera Term (or any other programme capable of connecting to the serial terminal)
-3. Connect the SFP stick to the SFP molex, from the terminal you will have 5 seconds to lock the bootloader by doing a simple CTRL+C. Now upload the firmware image of the new rootfs partition to the stick with the command
-```
-FALCON => loady 0x80800000
-```
-At this point it will appear:
-
-{% include image.html file="ma5671a-root-13.jpg" alt="shell requiring `mtd2` upload" caption="shell requiring `mtd2` upload" %}
-
-{:style="counter-reset:none"}
-1. From the teratem menu do `FILE` → `TRANSFER` → `YMODEM` → `SEND` → `[mtd2.bin]`.
-It will start uploading the file at a speed of about 3-4 KBps. Now you will have to wait more than half an hour for the upload to complete.
-
-1. Once finished, the image loaded on the stick must also be saved to the corresponding system partition (the first of the 2) with the commands
-```
-FALCON => setenv committed_image 0
-FALCON => setenv image0_is_valid 1
-FALCON => saveenv
-FALCON => sf probe 0 && sf erase C0000 740000 && sf write 80800000 C0000 740000 && reset
-```
-
-## Cloning of mtd1 (image 0) into mtd5 (image 1)
-
-{% include alert.html content="Image 0 can be flashed to image 1, while image 1 cannot be flashed to image 0 because it has larger rootfs_data" alert="Warning" icon="svg-warning" color="yellow" %}
-
-The following commands are used to clone image0 to image1 and then boot to it
-```sh
-# cat /dev/mtd2 > /tmp/mtd2.bin
-# mtd -e image1 write /tmp/mtd2.bin image1
-# fw_setenv committed_image 1
-# fw_setenv image1_is_valid 1
-# reboot
-```
# Miscellaneous Links
@@ -352,3 +390,6 @@ The following commands are used to clone image0 to image1 and then boot to it
- [Usage GPON module SFP in Spain](https://forum.mikrotik.com/viewtopic.php?t=116364&start=300)
- [Tech Info Depot Wiki](http://en.techinfodepot.shoutwiki.com/wiki/Huawei_MA5671A)
+---
+
+[^subunit]: The subunit are 10000 times smaller than the specified unit \ No newline at end of file