Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
toh:linksys:e8450 [2024/09/09 14:19] – Cleaning up language, clarifying instructions, and adding prompts "if x, then this is (or is not) for you." one-hoopy-froodtoh:linksys:e8450 [2024/12/05 16:12] – Formatting carlitossuper1
Line 50: Line 50:
  
 Read the advice there and download the initial installation image **...ubi-initramfs-recovery-installer.itb** Read the advice there and download the initial installation image **...ubi-initramfs-recovery-installer.itb**
 +
 +__**Upgrading an UBI installation to new releases after 2024-02 (Includes ALL SNAPSHOTS, 24.10-SNAPSHOTs, 24.10.0-rcX releases and all releases in the foreseable future)**__
 +
 +Since some SNAPSHOTs releases after February 2024, the flash layout of the router moved the FIP and Factory partitions into UBI, and thus, those releases need a new installer. That installer, as of December 2024 is v1.1.3 is available [[https://github.com/dangowrt/owrt-ubi-installer/releases/tag/v1.1.3|here]]. The procedure to upgrdade to Main SNAPSHOTS and newer releases (24.10-SNAPSHOT, 24.10.0-rcX and the future stable 24.10.0) //without keeping the configuration// is the following:
 +
 +1. Download the //unsigned// installed from the link above, and the desired sysupgrade image you want to upgrade to (On Firmware Selector or [[https://downloads.openwrt.org/|OpenWRT's downloads]] page).
 +2. Flash the unsigned installer on Luci > System > Backup/Flash Firmware. Make sure to force the upgrade and uncheck to Keep the configuration!
 +3. The router will reboot into a recovery environment and will be accessible at 192.168.1.1. Go again to Luci > System > Backup/Flash Firmware and flash the desired sysupgrade image. Again, don't keep the configuration.
 +4. The router will reboot on the desired image and is ready to be set up. All future releases can be safely flashed using Luci, Attended Sysupgrade or OWUT unless a new installer is required and is instructed to be flashed.
 +
 +**In case the configuration wants to be preserved:**
 +
 +The configuration between stable 23.05 and MAIN Snapshots and current 24.10-rcX releases is almost identical, but needs some changes, so the procedure to upgrade while keeping the configuration is the following.
 +1. On the stable release, SSH into the router and execute ''uci set system.@system[0].compat_version=2.0'' and ''uci commit''.
 +2. Make a backup of said configuration on Luci > System > Backup/Flash Firmware.
 +3. Delete the following files from the backup file:
 +  * /etc/config/ubootenv
 +  * /etc/fw_env.config
 +4. Flash the //unsigned// 1.1.3 installer like the previous instructions.
 +5. The router will reboot in a recovery environment and then, flash the desired sysupgrade image.
 +6. The router will reboot on the desired image and the backup file can be uploaded in Luci > System > Backup/Flash Firmware.
 +
 +In the event that those files aren't deleted from the backup, those files need to be modified to match the new flash layout and avoid problems on future sysupgrades:
 +- /etc/fw_env.config
 +
 +<webcode name="Default" frameborder=0 width=100% scrolling=yes externalResources="," renderingMode=story >
 +    /dev/ubi0_2 0x0 0x1f000 0x1f000 1
 +    /dev/ubi0_3 0x0 0x1f000 0x1f000 1
 +</webcode>
 +
 +- /etc/config/ubootenv
 +
 +<webcode name="Default" frameborder=0 width=100% scrolling=yes externalResources="," renderingMode=story >
 +
 +  config ubootenv
 +    option dev '/dev/ubi0_2'
 +    option offset '0x0'''
 +    option envsize '0x1f000'
 +    option secsize '0x1f000'
 +    option numsec '1'
 +    
 +  config ubootenv
 +    option dev '/dev/ubi0_3'
 +    option offset '0x0'
 +    option envsize '0x1f000'
 +    option secsize '0x1f000'
 +    option numsec '1'
 +    
 +</webcode>
 +
 +More info about those changes in the files [[https://forum.openwrt.org/t/belkin-rt3200-linksys-e8450-wifi-ax-discussion/94302/5950|here]].
  
 __**non-UBI**__ __**non-UBI**__
Line 127: Line 178:
  
 A few caveats to using WED: A few caveats to using WED:
-  * Users may experience stability issues as this is a [[https://patchwork.kernel.org/project/linux-wireless/patch/20220505113729.50380-4-nbd@nbd.name/|relatively new]] feature+  * Requires 22.03 or later 
 +  * May be less stable as this is a [[https://patchwork.kernel.org/project/linux-wireless/patch/20220505113729.50380-4-nbd@nbd.name/|relatively new]] feature
   * It can be used alone or in addition to other hardware offloading   * It can be used alone or in addition to other hardware offloading
-  * Requires 22.03.0 or later+  * It is incompatible with AQL
   * Only accelerates wireless traffic, not wired traffic   * Only accelerates wireless traffic, not wired traffic
   * Only supported on the 5 GHz radio   * Only supported on the 5 GHz radio
-  * If used on a [[:docs:guide-user:network:wifi:dumbap|dumb access point]], an additional package is needed+  * If used on a [[:docs:guide-user:network:wifi:wifiextenders:bridgedap|dumb AP]], an additional package is needed
  
 === Enable WED === === Enable WED ===
-== OpenWrt 22.03.==+== 22.03 or 23.05 ==
   * Edit ''/etc/modules.d/mt7915e'' and append this line ''mt7915e wed_enable=Y''   * Edit ''/etc/modules.d/mt7915e'' and append this line ''mt7915e wed_enable=Y''
   * This change requires a reboot   * This change requires a reboot
   * :!: This change will not persist upon updating as the file edited is not the target of a backup tarball.    * :!: This change will not persist upon updating as the file edited is not the target of a backup tarball. 
-== Development snapshot ==+== 24.10 or Main snapshots onward ==
   * Edit ''/etc/modules.conf'' and append this line: ''options mt7915e wed_enable=Y''   * Edit ''/etc/modules.conf'' and append this line: ''options mt7915e wed_enable=Y''
   * This change requires a reboot   * This change requires a reboot
-== Dumb access point configuration == +== Dumb Access Point configuration == 
-Flow offloading happens in situations where flows are actually being tracked, ie. when using NAT/routing.  To use WED on a dumb access point requires the [[https://github.com/openwrt/openwrt/tree/master/package/network/services/bridger|bridger]] package which does a bit of BPF magic to get bridged streams tracked (and hence offloaded).+Flow offloading happens in situations where flows are actually being tracked, ie. when using NAT/routing.  To use WED on a dumb AP requires the [[https://github.com/openwrt/openwrt/tree/master/package/network/services/bridger|bridger]] package which does a bit of BPF magic to get bridged streams tracked (and hence offloaded).
   * [[faq/how_to_install_packages|Install]] the bridger package.  Optionally edit ''/etc/config/bridger'' and define a device or bridge to exclude from bridge forwarding acceleration.   * [[faq/how_to_install_packages|Install]] the bridger package.  Optionally edit ''/etc/config/bridger'' and define a device or bridge to exclude from bridge forwarding acceleration.
  
Line 217: Line 269:
 v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-2 (mt7622-snand-ubi-1ddr) v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-2 (mt7622-snand-ubi-1ddr)
 </code> </code>
-If you are on the v2.9 or 2.10 branch and the suffix of the build is ...a**-1** or ...a**-2** => Device is affected and at risk of OKD on boot, reboot, power up.+If you are on the v2.9 branch or (2.10 branch and the suffix of the build is ...a**-1** or ...a**-2**=> Device is affected and at risk of OKD on boot, reboot, power up.
  
 <code> <code>
 v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7622-snand-ubi-1ddr) v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7622-snand-ubi-1ddr)
 </code> </code>
-You are safe as you have the fixed ...a**-3** build.+You are safe as you have the fixed v2.10.0...a**-3** or later build.
  
 ===Recovery from live OpenWrt main/master snapshot with FIP in UBI layout=== ===Recovery from live OpenWrt main/master snapshot with FIP in UBI layout===
Line 247: Line 299:
  
 Example of rewriting FIP = BL31: https://forum.openwrt.org/t/belkin-rt3200-linksys-e8450-wifi-ax-discussion/94302/4844 Example of rewriting FIP = BL31: https://forum.openwrt.org/t/belkin-rt3200-linksys-e8450-wifi-ax-discussion/94302/4844
 +
 +===Recovery from live OpenWrt 22.03.x or 23.05.x with FIP in MTD layout===
 +If your router still boots, you should downgrade bl2 to an unaffected older version via SSH.
 +  * Use opkg install the ''kmod-mtd-rw'' package to enable writing to the bl2 partition (mtd0). After opkg installing it, you also need to load the module to kernel with ''insmod mtd-rw.ko i_want_a_brick=1'' command issued from the SSH console.
 +  * Use mtd to rewrite BL2 (preloader.bin). This is the actual fix. Download it from https://downloads.openwrt.org/releases/22.03.0/targets/mediatek/mt7622/openwrt-22.03.0-mediatek-mt7622-linksys_e8450-ubi-preloader.bin to /tmp directory in the router, and write to the flash 4x times with
 +<code>
 +mtd -p 0x0 write /tmp/openwrt-22.03.0-mediatek-mt7622-linksys_e8450-ubi-preloader.bin /dev/mtd0
 +mtd -p 0x20000 write /tmp/openwrt-22.03.0-mediatek-mt7622-linksys_e8450-ubi-preloader.bin /dev/mtd0
 +mtd -p 0x40000 write /tmp/openwrt-22.03.0-mediatek-mt7622-linksys_e8450-ubi-preloader.bin /dev/mtd0
 +mtd -p 0x60000 write /tmp/openwrt-22.03.0-mediatek-mt7622-linksys_e8450-ubi-preloader.bin /dev/mtd0
 +</code>
 +  * Before rebooting, verify with grep (explained above) that mtd0 really contains the unaffected v2.4.
 +
 ==== Serial Recovery ==== ==== Serial Recovery ====
  
Line 271: Line 336:
     * Remove the **two (2)** crosshead screws that secure the router body to the internal mainboard slide tray.     * Remove the **two (2)** crosshead screws that secure the router body to the internal mainboard slide tray.
     * Remove the internal mainboard slide tray from the router body by sliding it through the **back** of the router body. It comes out easily, but to initially displace or "unstick" it, you can carefully use a screwdriver to push through the underside opening to the rear of the router and onto the rear plastic face panel on the slide tray. Caution: Only press on the rear plastic panel of the slide tray, not on any of the components mounted through the rear panel.     * Remove the internal mainboard slide tray from the router body by sliding it through the **back** of the router body. It comes out easily, but to initially displace or "unstick" it, you can carefully use a screwdriver to push through the underside opening to the rear of the router and onto the rear plastic face panel on the slide tray. Caution: Only press on the rear plastic panel of the slide tray, not on any of the components mounted through the rear panel.
 +      * Alternative perspective: "easily" is subjective, I needed to switch between tools to find a suitable one of which I can both get a good grip and still able to point it to safe plastic area, and a strong initial push after which it came out "easily". It took several attempts.
     * Remove the **three (3)** crosshead screws on the **outer perimeter** of the mainboard (one (1) on bottom edge, two (2) on top edge). There is no need to remove the four screws that attach the heatsink to the mainboard.     * Remove the **three (3)** crosshead screws on the **outer perimeter** of the mainboard (one (1) on bottom edge, two (2) on top edge). There is no need to remove the four screws that attach the heatsink to the mainboard.
-    * Turn the mainboard over and you will have access to the white serial connector and JTAG connector.+    * Slide the mainboard slightly sideways as needed, then turn the mainboard over (without stretching wires too much) and you will have access to the white serial connector and JTAG connector.
  
 === Recovery Steps === === Recovery Steps ===
Line 279: Line 345:
   * Download the appropriate .fip and preloader.bin file for your version   * Download the appropriate .fip and preloader.bin file for your version
     * Did **not** run the v1.1.3 UBI installer (e.g. anyone on OpenWrt 23.05.x or below, or older snapshots)     * Did **not** run the v1.1.3 UBI installer (e.g. anyone on OpenWrt 23.05.x or below, or older snapshots)
-      * [[https://firmware-selector.openwrt.org/?target=mediatek%2Fmt7622&id=linksys_e8450-ubi|From the latest 23.05.x release page,]] download the latest **//<color #6002EE>release version</color>//** of the **bl31-uboot.fip** and **preloader.bin** files. Rename preloader.bin to **openwrt-mediatek-mt7622-linksys_e8450-ubi-preloader.bin** (ie. remove version from filename).+      * [[https://firmware-selector.openwrt.org/?version=22.03.7&target=mediatek%2Fmt7622&id=linksys_e8450-ubi|From the latest 22.03.x release page,]] download the latest **//<color #6002EE>release version</color>//** of the **preloader.bin** file Rename preloader.bin to **openwrt-mediatek-mt7622-linksys_e8450-ubi-preloader.bin** (ie. remove version from filename).  Do **NOT** use the 23.05.4 preloader.bin - it is buggy.  Do **NOT** use snapshot preloader.bin - while fixed, it requires a different flash partition layout. 
 +      * [[https://firmware-selector.openwrt.org/?target=mediatek%2Fmt7622&id=linksys_e8450-ubi|From the latest 23.05.x release page,]] download the latest **//<color #6002EE>release version</color>//** of the **bl31-uboot.fip** file
     * **Ran** the v1.1.1 or newer UBI installer (e.g. running recent snapshot builds. You'd know if you did it!)     * **Ran** the v1.1.1 or newer UBI installer (e.g. running recent snapshot builds. You'd know if you did it!)
-      * [[https://firmware-selector.openwrt.org/?target=mediatek%2Fmt7622&id=linksys_e8450-ubi&version=SNAPSHOT|From the SNAPSHOT release page,]] download the **//<color #ff7f27>snapshot version</color>//** of the **bl31-uboot.fip** file+      * [[https://firmware-selector.openwrt.org/?target=mediatek%2Fmt7622&id=linksys_e8450-ubi&version=SNAPSHOT|From the SNAPSHOT release page,]] download the **//<color #ff7f27>snapshot version</color>//** of the **preloader.bin** and **bl31-uboot.fip** files
-  * Prepare a TFTP server listeing on 192.168.1.254 to provide the preloader.bin file+  * Prepare a TFTP server listening on 192.168.1.254 to provide the preloader.bin file 
 +    * That is, connect RJ-45 from your router's port 1 to your computer, then on the configure that network interface on the computer to answer at address 192.168.1.254. 
 +    * Usually tftpd serves the file(s) from for example /srv/tftpboot
   * Disassemble your RT3200 / E8450 if you have not yet done so (instructions above)   * Disassemble your RT3200 / E8450 if you have not yet done so (instructions above)
   * With the RT3200 / E8450 unit's **powered off**:   * With the RT3200 / E8450 unit's **powered off**:
Line 291: Line 360:
     * Close up:{{:media:linksys-e8450-belkin-rt3200-hooked-up-for-debugging-closeup.jpg?direct&400|}}     * Close up:{{:media:linksys-e8450-belkin-rt3200-hooked-up-for-debugging-closeup.jpg?direct&400|}}
   * Run the mtk_uartboot program with your downloaded files, followed by an **immediate** screen or putty command. Below are some examples:   * Run the mtk_uartboot program with your downloaded files, followed by an **immediate** screen or putty command. Below are some examples:
-    * Linux, when `mtk_uartboot` automatically recognizes the connected serial device: <code>mtk_uartboot -a -p mt7622-ram-1ddr-bl2.bin -f *uboot.fip && screen /dev/ttyUSB0 115200</code>+    * Linux, when `mtk_uartboot` automatically recognizes the connected serial device: <code>./mtk_uartboot -s /dev/ttyUSB0 -a -p mt7622-ram-1ddr-bl2.bin -f *uboot.fip && screen /dev/ttyUSB0 115200</code>
     * macOS, when `mtk_uartboot` would otherwise use the wrong serial device: <code>./mtk_uartboot -a -p mt7622-ram-1ddr-bl2.bin -f openwrt-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip -s /dev/cu.usbserial-B002EI6Z && screen /dev/cu.usbserial-B002EI6Z 115200</code>     * macOS, when `mtk_uartboot` would otherwise use the wrong serial device: <code>./mtk_uartboot -a -p mt7622-ram-1ddr-bl2.bin -f openwrt-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip -s /dev/cu.usbserial-B002EI6Z && screen /dev/cu.usbserial-B002EI6Z 115200</code>
 +      * (The serial device on your system may be different than the one shown above, such as `tty.usbserial-0001` or similar.  If the handshake does not succeed, compare your `/dev` directory before and after plugging in the serial device to discover the newly created adapter.  Running `ls -t1r` after plugging in the adapter may help see the newest devices.  Replace `cu.usbserial-B002EI6Z` with the correct serial device every time it appears in the above command.)
     * Windows: <code>mtk_uartboot -a -s COM(X) -p mt7622-ram-1ddr-bl2.bin -f openwrt-23.05.3-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip && putty.exe -serial COM(X) -sercfg 115200,8,n,1,N</code> note: **replace (X)** with the actual COM port number of the serial adapter     * Windows: <code>mtk_uartboot -a -s COM(X) -p mt7622-ram-1ddr-bl2.bin -f openwrt-23.05.3-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip && putty.exe -serial COM(X) -sercfg 115200,8,n,1,N</code> note: **replace (X)** with the actual COM port number of the serial adapter
   * Power on the RT3200 / E8450   * Power on the RT3200 / E8450
-  * mtk_uart should trigger a boot (if you never get past 'Handshake...' from mtk_uartboot, you have the wrong serial device selected, don't have a good serial connection, or - and this is the case for many people - your serial adapter may not be compatible and you should try another if your attempts fail repeatedly) and your screen / putty session should present you with a U-Boot menu. If you take no action for a number of seconds, your router will boot. To recover, **you want to immediately press any key (like a down arrow) to interrupt the boot and stay on the boot menu**.+  * mtk_uart should trigger a boot (if you never get past 'Handshake...' from mtk_uartboot, you have the wrong serial device selected, don't have a good serial connection, or - and this is the case for many people - your serial adapter may not be compatible and you should try another if your attempts fail repeatedly) and your screen / putty session should present you with a U-Boot menu. If you take no action for a number of seconds, your router will boot. To recover, **you want to immediately press any key (except for 0-a as these are options in the menu. a down arrow works) to interrupt the boot and stay on the boot menu**.
   * From the boot menu, select the option ''Load BL2 preloader via TFTP then write to flash.''   * From the boot menu, select the option ''Load BL2 preloader via TFTP then write to flash.''
 +    * Note that the current version automatically does the reflashing without further interaction, provided you have TFTP working. So, after the 4th "Writing 131072 byte(s) (64 page(s)) at offset 0x000600000" line everything should be ready. After reboot, the grep "(release)" /dev/mtd0ro command should give you v2.4 again.
     * {{ :media:openwrt-boot-menu.png?direct&600 | OpenWrt Boot Menu }}     * {{ :media:openwrt-boot-menu.png?direct&600 | OpenWrt Boot Menu }}
-  + 
 +==== Troubleshooting ==== 
 + 
 +Q: Getting "Failed to open port: Error { kind: Unknown, description: "I/O error" }" with mtk_uartboot? 
 + 
 +A: Likely you did not specify the device for the mtk_uartboot like -s /dev/ttyUSB0, an earlier version of these instructions did not state that. You may also need root privileges. 
 + 
 +Q: Getting "ARP Retry count exceeded; starting again" after selecting "Load BL2 preloader via TFTP then write to flash"? 
 + 
 +A: You don't have network configured - did you connect the router's port to computer, set computer's IP on that interface to 192.168.1.254, and running tftpd serving the openwrt-mediatek-mt7622-linksys_e8450-ubi-preloader.bin file? 
 + 
 +Q: Getting "BL2: Failed to load image id 5 (-2)"? 
 + 
 +A: This is the standard message when trying to boot a broken router - in this case, mtk_uartboot did not send the binary to run on time, you need to kill the existing screen session / mtk_uartboot and try again. 
 + 
 +Q: Getting "Error: ethernet@e6800000 address not set."? 
 + 
 +A: Use commands inside console: 
 +<code>setenv bootcmd 
 +setenv bootargs 
 +setenv ethaddr xx:xx:xx:xx:xx:xx #(MAC from the sticker) 
 +saveenv</code> 
 + 
 + 
 ==== JTAG Recovery ==== ==== JTAG Recovery ====
  
  • Last modified: 2024/12/05 16:22
  • by carlitossuper1