| Both sides previous revision Previous revision | Next revisionBoth sides next revision |
| toh:mercusys:mr90x_v1 [2024/07/04 05:50] – add a note about its similar model sold in China hizukiayaka | toh:mercusys:mr90x_v1 [2024/11/30 21:19] – [Installation (using serial console)] csharper2005 |
|---|
| 5. Run ''sysupgrade -n'' with the sysupgrade OpenWrt image | 5. Run ''sysupgrade -n'' with the sysupgrade OpenWrt image |
| |
| | ==== Installation (OpenWrt U-Boot layout) ==== |
| | |
| | 1. Download files from //https://downloads.openwrt.org/ -> **Choose release you need** -> targets -> mediatek -> filogic:// |
| | openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-bl31-uboot.fip |
| | openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-initramfs-recovery.itb |
| | openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-preloader.bin |
| | openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-squashfs-sysupgrade.itb |
| | |
| | 2. Connect network cable to the LAN1 port of the router |
| | |
| | 3. Login as root via SSH (router IP, port ''20001'', password - your web interface password) |
| | |
| | <code bash> |
| | BusyBox v1.19.4 (2022-09-15 21:10:21 CST) built-in shell (ash) |
| | Enter 'help' for a list of built-in commands. |
| | |
| | MM NM MMMMMMM M M |
| | $MMMMM MMMMM MMMMMMMMMMM MMM MMM |
| | MMMMMMMM MM MMMMM. MMMMM:MMMMMM: MMMM MMMMM |
| | MMMM= MMMMMM MMM MMMM MMMMM MMMM MMMMMM MMMM MMMMM' |
| | MMMM= MMMMM MMMM MM MMMMM MMMM MMMM MMMMNMMMMM |
| | MMMM= MMMM MMMMM MMMMM MMMM MMMM MMMMMMMM |
| | MMMM= MMMM MMMMMM MMMMM MMMM MMMM MMMMMMMMM |
| | MMMM= MMMM MMMMM, NMMMMMMMM MMMM MMMM MMMMMMMMMMM |
| | MMMM= MMMM MMMMMM MMMMMMMM MMMM MMMM MMMM MMMMMM |
| | MMMM= MMMM MM MMMM MMMM MMMM MMMM MMMM MMMM |
| | MMMM$ ,MMMMM MMMMM MMMM MMM MMMM MMMMM MMMM MMMM |
| | MMMMMMM: MMMMMMM M MMMMMMMMMMMM MMMMMMM MMMMMMM |
| | MMMMMM MMMMN M MMMMMMMMM MMMM MMMM |
| | MMMM M MMMMMMM M M |
| | M |
| | --------------------------------------------------------------- |
| | For those about to rock... (Attitude Adjustment, unknown) |
| | --------------------------------------------------------------- |
| | admin@Akronite:/root$ |
| | </code> |
| | |
| | 4. Run the following command: |
| | |
| | <code bash> |
| | fw_printenv | grep tp_boot_idx |
| | </code> |
| | |
| | If the result is ''tp_boot_idx=1'' then install MERCUSYS stock firmware using web interface and start from the p.2. Otherwise, go to the next step. |
| | |
| | 5. Open for editing ''/etc/hotplug.d/iface/65-iptv'' (e.g., using WinSCP and SSH settings from the p.2) |
| | |
| | 6. Add a newline after ''#!/bin/sh'': |
| | <code bash> |
| | telnetd -l /bin/login.sh |
| | </code> |
| | |
| | 7. Save ''65-iptv'' file |
| | |
| | 8. Toggle ''IPTV/VLAN Enable'' checkbox in the router web interface and save |
| | |
| | 9. Make sure that telnetd is running: |
| | <code bash> |
| | netstat -ltunp | grep 23 |
| | </code> |
| | |
| | 10. Login via telnet to router IP, port ''23'' (no username and password are required) |
| | |
| | <code> |
| | BusyBox v1.19.4 (2022-09-15 21:10:21 CST) built-in shell (ash) |
| | Enter 'help' for a list of built-in commands. |
| | |
| | MM NM MMMMMMM M M |
| | $MMMMM MMMMM MMMMMMMMMMM MMM MMM |
| | MMMMMMMM MM MMMMM. MMMMM:MMMMMM: MMMM MMMMM |
| | MMMM= MMMMMM MMM MMMM MMMMM MMMM MMMMMM MMMM MMMMM' |
| | MMMM= MMMMM MMMM MM MMMMM MMMM MMMM MMMMNMMMMM |
| | MMMM= MMMM MMMMM MMMMM MMMM MMMM MMMMMMMM |
| | MMMM= MMMM MMMMMM MMMMM MMMM MMMM MMMMMMMMM |
| | MMMM= MMMM MMMMM, NMMMMMMMM MMMM MMMM MMMMMMMMMMM |
| | MMMM= MMMM MMMMMM MMMMMMMM MMMM MMMM MMMM MMMMMM |
| | MMMM= MMMM MM MMMM MMMM MMMM MMMM MMMM MMMM |
| | MMMM$ ,MMMMM MMMMM MMMM MMM MMMM MMMMM MMMM MMMM |
| | MMMMMMM: MMMMMMM M MMMMMMMMMMMM MMMMMMM MMMMMMM |
| | MMMMMM MMMMN M MMMMMMMMM MMMM MMMM |
| | MMMM M MMMMMMM M M |
| | M |
| | --------------------------------------------------------------- |
| | For those about to rock... (Attitude Adjustment, unknown) |
| | --------------------------------------------------------------- |
| | root@Akronite:/# |
| | </code> |
| | |
| | 11. Upload OpenWrt ''openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-initramfs-recovery.itb'' to the ''/tmp'' folder of the router (e.g., using WinSCP and SSH settings from the p.3, or with ''cat openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-initramfs-recovery.itb | ssh -p 20001 root@YOUR_ROUTER_IP "cat > /tmp/openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-initramfs-recovery.itb"'' -- can't simply ''scp'' the file because there's no SFTP on the router) |
| | |
| | 12. Stock busybox doesn't contain ''ubiupdatevol'' command. Hence, we need to download and upload the full version of busybox to the router. For example, from ArchLinux - https://archlinuxarm.org/packages/aarch64/busybox. |
| | |
| | Download the ''pkg.tar.xz'' file, unpack it with ''tar xvf busybox-1.36.1-1-aarch64.pkg.tar.xz'', then upload ''usr/bin/busybox'' to the ''/tmp'' dir of the router and run in the telnet shell: |
| | <code bash> |
| | cd /tmp |
| | chmod a+x busybox |
| | </code> |
| | |
| | 13. Check ''initramfs-kernel.bin'' size: |
| | <code bash> |
| | du -h openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-initramfs-recovery.itb |
| | </code> |
| | |
| | 14. Delete old and create a new one ''kernel'' volume with appropriate size (greater than ''initramfs-kernel.bin'' size): |
| | <code bash> |
| | ubirmvol /dev/ubi0 -N kernel |
| | ubimkvol /dev/ubi0 -n 1 -N kernel -s 9MiB |
| | </code> |
| | |
| | 15. Write OpenWrt ''initramfs-kernel.bin'' to the flash: |
| | <code bash> |
| | ./busybox ubiupdatevol /dev/ubi0_1 /tmp/openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-initramfs-recovery.itb |
| | </code> |
| | |
| | 16. Make backups: |
| | <code bash> |
| | cat /dev/mtd0 > /tmp/boot.bin |
| | cat /dev/mtd5 > /tmp/tp_data.bin |
| | </code> |
| | Copy ''/tp_data dir'' content, ''/tmp/boot.bin'' and ''/tmp/tp_data.bin'' and to your PC using scp. You can also backup the remaining partititons. Copy backups to a safe place, they are required for the next steps and stock firmware recovery. |
| | |
| | 17. Reboot to OpenWrt initramfs: |
| | <code bash> |
| | reboot |
| | </code> |
| | |
| | 18. Copy OpenWrt ''openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-bl31-uboot.fip'', ''openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-preloader.bin'', ''openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-squashfs-sysupgrade.itb'' and ''MT7986_EEPROM.bin'', ''default-mac'' (from ''/tp_data'' backup) to the ''/tmp'' folder of the router using scp. |
| | |
| | 19. Prepare UBI: |
| | <code bash> |
| | ubidetach -p /dev/mtd3; ubiformat /dev/mtd3 -y; ubiattach -p /dev/mtd3 |
| | ubimkvol /dev/ubi0 -N fip -t static -s 1MiB |
| | ubiupdatevol /dev/ubi0_0 /tmp/openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-bl31-uboot.fip |
| | ubimkvol /dev/ubi0 -N ubootenv -s 0x1f000 |
| | ubimkvol /dev/ubi0 -N ubootenv2 -s 0x1f000 |
| | </code> |
| | |
| | 20. Install ''kmod-mtd-rw'' and unlock partitions: |
| | <code bash> |
| | opkg update && opkg install kmod-mtd-rw |
| | insmod mtd-rw i_want_a_brick=1 |
| | mtd unlock boot |
| | mtd unlock bl2 |
| | mtd unlock factory |
| | </code> |
| | |
| | 21. Prepare "factory" partition: |
| | <code bash> |
| | dd if=/dev/zero bs=$((0x8000)) count=1 | tr '\000' '\377' > /tmp/factory.bin |
| | dd if=/tmp/MT7986_EEPROM.bin of=/tmp/factory.bin conv=notrunc |
| | dd if=/tmp/default-mac >> /tmp/factory.bin |
| | </code> |
| | |
| | 22. Write "factory" partition: |
| | <code bash> |
| | mtd erase factory |
| | mtd write /tmp/factory.bin factory |
| | </code> |
| | |
| | 23. Write preloader partition: |
| | <code bash> |
| | mtd erase bl2 |
| | mtd write /tmp/openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-preloader.bin bl2 |
| | </code> |
| | |
| | 24. Write OpenWrt sysupgrade image: |
| | <code bash> |
| | sysupgrade -n /tmp/openwrt-mediatek-filogic-mercusys_mr90x-v1-ubi-squashfs-sysupgrade.itb |
| | </code> |
| ==== Flash Layout ==== | ==== Flash Layout ==== |
| <code bash> | <code bash> |