| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
| toh:linksys:wrt_ac_series [2022/12/21 15:03] – [Recommendations] added RPS discussion link palebloodsky | toh:linksys:wrt_ac_series [2024/03/25 12:06] – [WPA3 Support] update section title palebloodsky |
|---|
| ===== Introduction ===== | ===== Introduction ===== |
| |
| The Linksys WRT AC series are high performance, multi-core, dual-partition, 802.11ac devices, with OEM firmware based off of OpenWrt. The overall look of the devices is a throwback to the venerable WRT54G. | The Linksys WRT AC series routers are high performance, dual-core, dual-partition, 802.11ac, with OEM firmware based on OpenWrt. The overall look of the devices is a throwback to the venerable WRT54G. |
| |
| {{media:linksys:wrt3200acm:wrt3200acm.jpg?250|WRT3200ACM}} | {{media:linksys:wrt3200acm:wrt3200acm.jpg?250|WRT3200ACM}} |
| ===== Supported Hardware ===== | ===== Supported Hardware ===== |
| |
| <WRAP lo> | This series uses Marvell Armada based SoCs from the Marvell Embedded Business Unit (mvebu). See specific devices below: |
| ---- datatable ---- | |
| cols : Model, Versions, Supported Since Commit_git, Supported Since Rel_releasesince, Package architecture_pkg-arch, CPU MHz, CPU Cores_numcores_, Flash MB, RAM MB, Switch, WLAN Hardwares, Power Supply, Device Techdata_pageid, Comments_ | |
| align : c,c,c,c,c,c,c,c,c,c,c,c,c,c,c | |
| filter : Model=WRT1200AC | |
| filteror : Model=WRT1900AC | |
| filteror : Model=WRT1900ACS | |
| filteror : Model=WRT3200ACM | |
| filteror : Model=WRT32X | |
| sort : Model | |
| ---- | |
| </WRAP> | |
| |
| | [[:toh:hwdata:linksys:linksys_wrt1200ac|WRT1200AC v1/v2]], [[:toh:hwdata:linksys:linksys_wrt1900ac_v1|WRT1900AC v1]], [[:toh:hwdata:linksys:linksys_wrt1900ac_v2|WRT1900AC v2]], [[:toh:hwdata:linksys:linksys_wrt1900acs_v1|WRT1900ACS v1/v2]], [[:toh:hwdata:linksys:linksys_wrt3200acm|WRT3200ACM]], [[:toh:hwdata:linksys:linksys_wrt32x_v1_venom|WRT32X]] |
| ===== Dual Firmware Flashing ===== | ===== Dual Firmware Flashing ===== |
| |
| See the Flash Layout section on each device page for more details, or options to switch between partitions below. | See the Flash Layout section on each device page for more details, or options to switch between partitions below. |
| |
| A LuCI plugin has been developed for managing dual firmware devices called [[:packages:pkgdata:luci-app-advanced-reboot]]. | It is recommended to install the LuCI package developed for managing dual firmware [[:packages:pkgdata:luci-app-advanced-reboot]]. |
| |
| ==== Flashing Firmware ==== | ==== Flashing Firmware ==== |
| |
| <WRAP indent 55em> | <WRAP indent 55em> |
| If the firmware has an issue, chances are you can recover it easily due to the Dual Firmware partition layout, by switching to the alternate firmware.\\ | If the firmware has an issue, chances are you can recover it easily due to the Dual Firmware partition layout, by switching to the alternate firmware. For this reason, it is recommended to always keep a known working firmware on the other partition (either OEM or OpenWrt). |
| For this reason, it is recommended to always keep a known working firmware on the other partition (either OEM or OpenWrt). | |
| |
| Switch router from primary to alternate partition or vice versa using any of the methods below:\\ | Switch router from primary to alternate partition or vice versa using any of the methods below: |
| |
| ==== LuCI ==== | ==== LuCI ==== |
| |
| </WRAP> | </WRAP> |
| | |
| ===== Serial Port ===== | ===== Serial Port ===== |
| |
| </WRAP> | </WRAP> |
| </WRAP> | </WRAP> |
| | |
| |
| ===== Bootloader ===== | ===== Bootloader ===== |
| ===== Marvell WiFi ===== | ===== Marvell WiFi ===== |
| |
| Depending on the model described in Supported Hardware it has either the 88W8864 or 88W8964 wifi SoC. Both use mwlwifi, a mac80211 driver that is open source with a closed source firmware. However, mwlwifi driver efforts have been abandoned since early 2020. Although the driver is stable for basic use of 802.11ac (2.4GHz and 5GHz), some features were not implemented (no MU-MIMO, Mesh, or 802.11w). Workarounds for common issues are described below. See also [[https://github.com/kaloz/mwlwifi|mwlwifi github]]. | Depending on the model described in Supported Hardware it has either the 88W8864 or 88W8964 wifi chip. Both use mwlwifi, a mac80211 driver that is open source with a closed source firmware. Although the driver is stable for use of 802.11ac (2.4GHz and 5GHz), some features were not implemented: there is no MU-MIMO, 802.11s for Mesh, or 802.11w supported by the driver. Workarounds for common issues are described below. See also [[https://github.com/kaloz/mwlwifi|mwlwifi github]]. |
| |
| To query installed version: <code bash>opkg list-installed | grep mwlwifi</code> | To query installed driver version: <code bash>opkg list-installed | grep mwlwifi</code> |
| |
| ==== Recommendations ==== | ==== Recommendations ==== |
| * radio1: 2.4GHz, mwlwifi driver, WPA2, remaining settings leave default. | * radio1: 2.4GHz, mwlwifi driver, WPA2, remaining settings leave default. |
| * radio2: disabled. If you have IoT devices using an ESP chip see below. | * radio2: disabled. If you have IoT devices using an ESP chip see below. |
| - For 88W8864 wlan chip devices disable amsdu as described below. | - For 88W8864 wlan devices consider disabling amsdu as described below. |
| - Enable packet steering per this [[commit>?p=openwrt/openwrt.git;a=commit;h=d3868f15f876507db54afacdef22a7059011a54e|discussion]]: In LuCI this is under Network > Interfaces > Global Network Options > packet steering. | - Enable packet steering per this [[commit>?p=openwrt/openwrt.git;a=commit;h=d3868f15f876507db54afacdef22a7059011a54e|discussion]]: In LuCI this is under Network > Interfaces > Global Network Options > packet steering. |
| - Enabling irqbalance will move mwlwifi from cpu0 to cpu1. However this may increase wifi latency. This package is not always viable on 2core devices beyond benchmarking. Irqbalance is more viable on 4core or more, per this [[:docs:guide-user:services:irqbalance#caution]]. | - Enabling irqbalance will move mwlwifi from CPU0 to CPU1, however this may slightly increase wifi latency. Irqbalance is more viable on 4core or more, per this [[:docs:guide-user:services:irqbalance#caution]]. |
| |
| ==== Latency with 88W8864 ==== | ==== Latency with 88W8864 ==== |
| |
| Models with wlan 88W8864 (WRT1200 and WRT1900 series only) may have higher [[https://github.com/kaloz/mwlwifi/issues/313#issuecomment-409482862|wifi latency]]. Disabling amsdu in ''/etc/rc.local'' has been shown to reduce wifi latency by 20-30ms, albeit with a slight drop in peak throughput: | Models with wlan 88W8864 (WRT1200/1900) have higher [[https://github.com/kaloz/mwlwifi/issues/313#issuecomment-409482862|wifi latency]]. Disabling amsdu in ''/etc/rc.local'' has been shown to reduce wifi latency by 30-50ms, albeit with a drop to peak throughput. Note this has been resolved with the [[https://github.com/openwrt/openwrt/commit/2ed358180ef0f87532cdedefec09d5d605625beb|mwlwifi 10.4.10]] driver in Main snapshots to be included in 24.0x release, where the fix below should be no longer needed. |
| <code> | <code> |
| # turn off A-MSDU frame aggregation | # turn off A-MSDU frame aggregation |
| </code> | </code> |
| |
| ==== WPA3/802.11w may hang kernel ==== | ==== WPA3 support ==== |
| |
| <WRAP indent 55em> | With OpenWrt 23.05.3 onward WPA3 support was added for the 8864 and 8897 (includes WRT1200 and WRT1900) via [[https://github.com/openwrt/openwrt/commit/2ed358180ef0f87532cdedefec09d5d605625beb|mwlwifi driver 10.4.10]]. |
| WPA3 will not work reliably due to a bug in mwlwifi with 802.11w. Use WPA2 and blame Linksys for the incomplete driver. | |
| See [[https://github.com/kaloz/mwlwifi/issues/389#issuecomment-686220324]]. | For 8964 chip models (WRT3200ACM and WRT32X) WPA3 support is still not available as per the driver [[https://github.com/kaloz/mwlwifi/commit/f92043d1a85f61b379c3d6dcb5bdb6e849f6b791|commit notes]]. Blame Marvell for an incomplete Wi-Fi driver. |
| </WRAP> | |
| |
| ==== ESP chip devices won't connect ==== | ==== ESP chip devices won't connect ==== |
| |
| <WRAP indent 55em> | |
| There is an issue [[flyspray>2709]] with the mwlwifi driver connecting to some IoT devices. See bug report here: [[https://github.com/kaloz/mwlwifi/issues/278|ESP8266/Embedded devices unable to connect to 2.4Ghz Radio]] | There is an issue [[flyspray>2709]] with the mwlwifi driver connecting to some IoT devices. See bug report here: [[https://github.com/kaloz/mwlwifi/issues/278|ESP8266/Embedded devices unable to connect to 2.4Ghz Radio]] |
| |
| Workaround options:\\ | Workarounds:\\ |
| - Enable radio2 and select the mwifiex driver. Connecting ESP chip devices to this reportedly does not have the problem. | - Enable radio2 with the mwifiex driver (install kmod-mwifiex-sdio). Connecting ESP chip devices here may improve connectivity, however could result in other conflicts. |
| - Optional: disable LDPC on radio1 (2.4GHz) may improve this functionality as per https://github.com/kaloz/mwlwifi/issues/278#issuecomment-697433463. | - Optional: disable LDPC on radio1 (2.4GHz) may improve connectivity as per https://github.com/kaloz/mwlwifi/issues/278#issuecomment-697433463. |
| - Optional: disable WMM on the interface (note: this will also disable 802.11n/ac capability). | - Optional: disable WMM on the interface (note: this would also disable 802.11n/ac capability tremendously slowing throughput). |
| | |
| </WRAP> | |
| |
| ==== DFS channels not working ==== | ==== DFS channels not working ==== |
| |
| **Symptom**: When setting certain frequencies/channels for the interface of the AP, the interface comes up briefly and then is disabled. This only happens for DFS channels. DFS channels are listed in the output of ''iw list'' on the 5GHz radio in the frequencies section. DFS channels will have the text ''(radar detection)'' at the end of the line. Try using one of the non-DFS channels. | When setting certain channels for the AP the interface comes up briefly and then is disabled. This only happens for DFS channels. DFS channels are listed in the output of ''iw list'' on the 5GHz radio in the frequencies section. DFS channels will have the text ''(radar detection)'' at the end of the line. Try using one of the non-DFS channels. |
| |
| === Information and potential un-official work-arounds === | === Information and potential un-official work-arounds === |
| * Original mwlwifi bug [[https://github.com/kaloz/mwlwifi/issues/173|described it here]] but is now closed. | * Original mwlwifi bug [[https://github.com/kaloz/mwlwifi/issues/173|described it here]] but is now closed. |
| * Removing mwifiex may workaround the issue: ''opkg remove kmod-mwifiex-sdio'' | * Removing mwifiex may workaround the issue: ''opkg remove kmod-mwifiex-sdio'' |
| * There are also [[https://github.com/openwrt/openwrt/pull/2397|changes]] to //not lock the regulatory domain to avoid undesired effects like messed up system reg domain when another adapter is present in the system or broadcasting incorrect country code in many countries//. An alternate implementation can be [[https://github.com/httpstorm/openwrt/commits/14d361a699e819a6c6a7ac6e57a54caed3638cad|found here]] and another [[https://github.com/openwrt/openwrt/issues/9956#issuecomment-1140467600|here]]. | * There were also [[https://github.com/openwrt/openwrt/pull/2397|changes]] to not lock the regulatory domain to avoid undesired effects like messed up system reg domain when another adapter is present or broadcasting incorrect country code in many countries. An alternate implementation can be [[https://github.com/httpstorm/openwrt/commits/14d361a699e819a6c6a7ac6e57a54caed3638cad|found here]] and another [[https://github.com/openwrt/openwrt/issues/9956#issuecomment-1140467600|here]]. |
| |
| ==== Missing Drop Down Values ==== | ==== Missing drop down values using older kernels ==== |
| |
| <WRAP indent 55em> | To accommodate a wide variety of kernels compatible with the series, ''path'' values were modified.\\ |
| To accommodate a wider variety of kernels for compatibility with the series, ''path'' values were modified.\\ | |
| If experiencing missing drop down values, add //''platform''// back to //''path''// in **''/etc/config/wireless''**. | If experiencing missing drop down values, add //''platform''// back to //''path''// in **''/etc/config/wireless''**. |
| |
| <WRAP 64.5em lo> | |
| == Armada XP == | == Armada XP == |
| **radio0** 2.4GHz | **radio0** 2.4GHz |
| **radio1** 5GHz | **radio1** 5GHz |
| <code bash>option path 'platform/soc/soc:pcie-controller/pci0000:00/0000:00:02.0/0000:02:00.0'</code> | <code bash>option path 'platform/soc/soc:pcie-controller/pci0000:00/0000:00:02.0/0000:02:00.0'</code> |
| </WRAP> | |
| </WRAP> | |
| |
| ==== 88W8964 VAP SSID broadcasts but clients can't connect ==== | ==== 88W8964 VAP SSID broadcasts but clients can't connect ==== |
| |
| </WRAP> | </WRAP> |
| | |
| |
| ===== OEM Firmware Images ===== | ===== OEM Firmware Images ===== |
| ++++ </WRAP> | ++++ </WRAP> |
| </WRAP> | </WRAP> |
| | |
| |
| ===== Troubleshooting ===== | ===== Troubleshooting ===== |
| |
| |
| ==== Dependency Errors ==== | |
| |
| <WRAP indent 55em> | |
| <wrap em>Problem:</wrap> Dependency errors are received when installing pkgs\\ | |
| |
| <color #009600>**Solution:**</color> This is an either / or occurrence\\ | |
| - **''/etc/opkg.conf''** is pointing to the wrong repository\\ <WRAP lo><code bash>rm /etc/opkg.conf && cp /rom/etc/opkg.conf /etc/opkg.conf && opkg update</code></WRAP> | |
| - Package repository has been updated to comply with an updated kernel version\\ | |
| * <wrap lo>Flash, or build, a new image with the updated kernel version</wrap> | |
| </WRAP> | |
| |
| |
| </WRAP> | </WRAP> |
| |
| ---- | |
| |
| |
| ===== Historical ===== | |
| |
| <WRAP 66.5em lo> | |
| <wrap indent lo>//The following information has been superceded by current builds and is included only for historical interest.//</wrap> | |
| |
| <WRAP box> | |
| <tabbox Drivers> | |
| * <sup>On Christmas Eve 2014, Marvell released an updated driver for the 88W8864 WiFi chip as found in the WRT1900AC to the OpenWrt developers mailing list</sup> | |
| * <sup>[[https://lists.openwrt.org/pipermail/openwrt-devel/2014-December/030229.html|Announcement of mac80211 driver support for Marvell 88W8864]]</sup> | |
| * <sup>Wireless driver was [[https://forum.openwrt.org/viewtopic.php?pid=242104#p242104|announced to stay closed source]] on 30th of July. It'll likely consist of pre-built closed source part (so called "library") and probably some open source file calling kernel APIs.</sup> | |
| * <sup>Oddly, the wireless driver [[https://github.com/TheDgtl/mrvl_wlan_v7drv|source]] was later distributed as part of the GPL release of the stock Linksys firmware. This driver requires significant refactoring before it can be included in OpenWrt.</sup> | |
| |
| <tabbox Firmware> | |
| * <sup>Chadster's McWRT release, based on Attitude Adjustment [AA], which is obsolete, and not supported: [[https://github.com/Chadster766/McWRT|McWRT]]</sup> | |
| * <sup>Kaloz's evolving snapshots of the Development Branch [[https://downloads.openwrt.org/people/kaloz/|Kaloz's Build]] (incorporating latest bug fixes/features, LuCI, & other packages).</sup> | |
| * <sup>Lifehacksback evolving snapshots of the Development Branch (both 3.18 and 4.0 kernel builds) [[http://tinyurl.com/Lifehacksback-Testing-CC|Lifehacksback Testing CC]]</sup> | |
| * <sup>At this time it is now possible to compile an image off the Development Branch with this new driver. A prebuilt image can be found here: [[https://downloads.openwrt.org/snapshots/trunk/mvebu/|Development Branch]]</sup> | |
| |
| <tabbox Hardware> | |
| * <sup>Linksys started shipping on 10th of April, 2014.</sup> | |
| * <sup>Official statement [[https://forum.openwrt.org/viewtopic.php?pid=230686|OpenWrt support for Linksys WRT1900AC]]</sup> | |
| |
| <tabbox News> | |
| * <sup>WRT1900AC was announced on 6th of January 2014 as a router developed to be used with OpenWrt.</sup> | |
| * <sup>Despite Linksys' announcement of working with OpenWrt community, no patches and no info were shared for the next several months</sup> | |
| * <sup>You can read the Official statement re: OpenWrt support for Linksys WRT1900AC at https://forum.openwrt.org/viewtopic.php?pid=230686</sup> | |
| * <sup>At this point, it is not possible to compile a fully working (including WiFi) customized OpenWrt build for WRT1900AC.</sup> | |
| * <sup>[[https://lists.openwrt.org/pipermail/openwrt-devel/2014-December/030229.html|Announcement of mac80211 driver support for Marvell 88W8864]]</sup> | |
| |
| <tabbox Patches> | |
| * <sup>On the 3rd of April 2014, Belkin posted a link to ftp server containing patches, adding WRT1900AC support. They couldn't be applied because of being incorrectly posted, not signed off, and adding binary wireless driver //''ap8x.ko''//.</sup> | |
| * <sup>5 days later a patchset in the form of single e-mail was posted to the openwrt-devel. It was malformed and not signed off, so still couldn't be applied. Release of wireless driver has been postponed.</sup> | |
| |
| <tabbox Troubleshooting> | |
| <sup>**LuCI** | |
| </sup> | |
| * <sup>**Chrome & HTTPS**</sup> | |
| * <sup>**Problem:** LuCI will not load when utilizing Chrome [due to PolarSSL]</sup> | |
| * <sup>Chrome[v51+] requires ''AES-GCM'' and ''CAMELLIA-GCM'' ciphersuites to handshake with a server utilizing the ustream-polarssl backend.</sup> | |
| * <sup>If ''CONFIG_GCM'' is disabled, ''ssl_ciphersuite_from_id()'' returns ''NULL'' when cipher ''0x9d'' is queried <sup> TLS_RSA_WITH_AES_256_GCM_SHA384</sup> | |
| * <sup>This results with the call ''ssl_ciphersuite_match()'' to fail with ''POLARSSL_ERR_SSL_INTERNAL_ERROR'' ([[https://tools.ietf.org/html/rfc5288|RFC 5288]])</sup> | |
| * <sup>**Solution:**</sup> | |
| * <sup>Utilize this [[https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=9e45f9d63c797baab2b3bd2574990ee94d3f80cb|backport]], enabling ''AES-GM'' and ''CAMELLIA-GCM'' ciphersuites in PolarSSL;</sup>\\ <sup>**OR**</sup> | |
| * <sup>Completely remove //all// PolarSSL related components from your build environment, switching to OpenSSL</sup> | |
| * <sup>Certain packages default to PolarSSL[''libustream-polarssl''] and will require edited makefiles</sup> | |
| * <sup>In the case of //cshark//, it is not compatible with OpenSSL (unsure about other SSL platforms)</sup>\\ \\ | |
| |
| * <sup>**DHCP & DNS**</sup> | |
| * <sup>**Problem:** Active DHCP Leases list enumerates all statically assigned IPs as active, listing all with a netmask of /32.</sup> | |
| * <sup>If utilizing Kernels 4.1.x or 4.4.x, there appears to be an issue with how //odhcpd// interacts with //dnsmasq//, resulting in the aforementioned</sup> | |
| * <sup>**Solution:**</sup> | |
| * <sup>Uninstall ''odhcpd'' & ''odhcpd6'' and install ''dnsmasq-full'' in lieu of;</sup>\\ <sup>**OR**</sup>\\ | |
| * <sup>Comment it out of **''/etc/config/dhcp''**</sup> | |
| |
| * <sup>Corrupt Bootloader Recovery</sup> | |
| * <sup><color #5a5a5a>**contributed by:** //nitroshift & Stefan Roese//</color></sup>\\ | |
| <wrap lo><sup><wrap button>[[https://github.com/JW0914/Wikis/blob/master/WRT-AC-Series/U-boot%20Recovery/u-Boot%20Recovery.pdf|PDF]]</wrap> <wrap button>[[https://github.com/nitroshift/wrt1900ac/wiki/|Nitroshift's GitHub]]</wrap> <wrap button>[[https://github.com/JW0914/Wikis/blob/master/WRT-AC-Series/U-boot%20Recovery/u-Boot%20Recovery.docx|DOCx]]</wrap> </sup></wrap> | |
| * <sup>**Prerequisites:**</sup> | |
| * <sup>**Hardware:**</sup> | |
| * <sup>PC running Linux</sup> | |
| * <sup>//x86 libraries if x64//</sup> | |
| * <sup>**USB – TTL Cable**</sup> | |
| |
| * <sup>**Armada XP**</sup> | |
| * <sup>[[https://github.com/nitroshift/wrt1900ac/|kwboot files]]</sup> | |
| * <sup>''kwboot.tar''</sup> | |
| * <sup>''u-boot-nand.kwb''</sup> | |
| * <sup>//For transferring to router and writing to NAND//</sup> | |
| * <sup>''u-boot-uart.kwb''</sup> | |
| * <sup>//For booting from UART//</sup> | |
| |
| * <sup>**Armada 385**</sup> | |
| * <sup>[[https://github.com/nitroshift/armada-38x-bootloader-recovery-files|kwboot files]]</sup> | |
| * <sup>''u-boot-a38x-spi-uart.bin''</sup> | |
| * <sup>//For booting from UART//</sup> | |
| * <sup>''u-boot-a38x-spi.bin''</sup> | |
| * <sup>//For booting from NAND//</sup> | |
| |
| * <sup>**Information:**</sup> | |
| * <sup>This wouldn't have been possible without the help of Stefan Roese</sup> | |
| * <sup>//Authors of [[http://www.denx.de|U-boot]]//</sup> | |
| * <sup>If utilized, please send a thank you to:</sup> | |
| * <sup>//nitroshift//</sup> | |
| * <sup>[[https://github.com/nitroshift|GitHub]]</sup> | |
| * <sup>[[https://forum.openwrt.org/profile.php?id=134581|OpenWrt]]</sup> | |
| * <sup>//Stefan Roese//</sup> | |
| * <sup>[[https://webchat.freenode.net/|IRC:]]</sup> | |
| * <sup>//#u-boot @ irc.freenode.net//</sup> | |
| |
| <tabbox Armada XP> | |
| <color #508CAA>**Armada XP**</color> | |
| - **Terminal root access:** <code bash>sudo -i</code> | |
| - **Install //kwboot//:** <code bash>cd /home/kwboot</code> | |
| - <color #4b4b4b>Unzip the archive, then:</color> <code bash>tar –xvf kwboot.tar</code> | |
| * <color #646464>Actual compilation of kwboot:</color> <code bash>gcc kwboot.c</code> | |
| - <color #4b4b4b>Save **''u-boot-nand.kwb''** //and// **''u-boot-uart.kwb''** in **''/home/kwboot''**</color>\\ \\ | |
| - **Set //kwboot// as executable:** <code bash>Chmod 755 kwboot</code> | |
| - **Connect USB-TTL to router and PC** <color #960000>**//(don’t power on router)//**</color> **& issue:** <code bash>dmesg | grep USB</code> | |
| - <color #4b4b4b>Make note of the number after //''/dev/ttyUSB''// (it’s usually 0), then:</color> <code bash>chmod 666 /dev/ttyUSB0</code> | |
| - **Boot router using UART image and power on router:** <code bash>./kwboot –a –t /dev/ttyUSB0 –b u-boot-uart.kwb</code> | |
| * <color #4b4b4b>**//''-a ''//** <wrap em>=</wrap> use Armada XP timings</color> | |
| * <color #4b4b4b>**//''-t ''//** <wrap em>=</wrap> open terminal in same window after transfer</color> | |
| * <color #4b4b4b>**//''-b ''//** <wrap em>=</wrap> boot file</color>\\ \\ | |
| - **After transfer finishes, you should be at the //''Marvell >>''// prompt:** | |
| - <color #960000>**If you are not:**</color> | |
| - <color #646464>**//Power Off Router -> Disconnect USB-TTL Cable from PC -> Go Back to Step 3//**</color> | |
| - <color #789600>**If you are:**</color> | |
| - <color #646464>Set up TFTP server on PC //(such as Ubuntu’s //''tftpd''// package)//</color> | |
| - <color #646464>Put **''u-boot-nand.kwb''** in it’s **''tftpboot/''** directory</color>\\ \\ | |
| - **Connect PC to router //(ethernet)//, set PC IP Address //''192.168.1.254''//, and issue the following at the //''Marvell >>''// prompt:** <code bash>setenv ipaddr 192.168.1.1 | |
| setenv serverip 192.168.1.254 | |
| tftp 2000000 u-boot-nand.kwb | |
| nand erase 0 e0000 | |
| nand write 2000000 0 e0000 | |
| </code> | |
| - **If the above commands complete successfully, reboot router via:** <code bash>reset</code> | |
| * <color #4b4b4b>Router should boot and stop at the //''Marvell >>''// prompt</color>\\ \\ | |
| - **Download firmware image for [[wrt_ac_series#firmware_images|WRT1900AC v1]] and save it to ''tftpboot/'':** | |
| - <color #4b4b4b>Issue the following at the //''Marvell >>''// prompt:</color> <code bash>tftp 192.168.1.254 | |
| get <firmware_image_name></code> | |
| - <wrap danger em>IMPORTANT:</wrap> | |
| * <color #4b4b4b>After transfer completes successfully,</color> <color #960000>**//DO NOT issue//**</color>: | |
| * //'' run flash_pri_image ''// <color #960000>**or**</color> //'' run flash_alt_image ''// <color #960000>**or**</color> //'' run update_both_images ''// | |
| * <color #960000>//These will <wrap em><color #af0000>brick</color></wrap> the router again sending you back to Step 3//</color>\\ \\ | |
| - <color #789600>**//Instead://**</color> <WRAP group> | |
| <WRAP third column 40% center><code bash>run_linksysnandboot</code></WRAP> | |
| <WRAP third column 10% center><color #960000>**IF FAILS:**</color></WRAP> | |
| <WRAP third column 40% center><code bash>run_linksysaltnandboot</code></WRAP> | |
| </WRAP> | |
| - **Allow router to fully boot:** | |
| - <color #4b4b4b>Verify it’s up and running correctly via the WebUI</color> | |
| - <color #646464>**//Power Off Router -> Disconnect USB-TTL Cable -> Power Back On//**</color> | |
| |
| <tabbox Armada 385> | |
| <color #508CAA>**Armada 385**</color> | |
| - **Terminal root access:** <code bash>sudo -i</code> | |
| - **Install //kwboot//:** <code bash>cd /home/kwboot</code> | |
| - <color #4b4b4b>Unzip the archive, then:</color> <code bash>tar –xvf kwboot.tar</code> | |
| * <color #646464>Actual compilation of kwboot:</color> <code bash>gcc kwboot.c</code> | |
| - <color #4b4b4b>Save **''u-boot-a38x-spi-uart.bin''** //and// **''u-boot-a38x-spi.bin''** in **''/home/kwboot''**</color>\\ \\ | |
| - **Set //kwboot// as executable:** <code bash>Chmod 755 kwboot</code> | |
| - **Connect USB-TTL to router and PC** <color #960000>**//(don’t power on router)//**</color> **& issue:** <code bash>dmesg | grep USB</code> | |
| - <color #4b4b4b>Make note of the number after //''/dev/ttyUSB''// (usually 0), then:</color> <code bash>chmod 666 /dev/ttyUSB0</code> | |
| - **Boot router using UART image and power on router:** <code bash>./kwboot -t /dev/ttyUSB0 -b u-boot-a38x-spi-uart.bin</code> | |
| * <color #4b4b4b>**//''-t ''//** <wrap em>=</wrap> open terminal in same window after transfer</color> | |
| * <color #4b4b4b>**//''-b ''//** <wrap em>=</wrap> boot file</color>\\ \\ | |
| - **After transfer finishes, you should be at the //''Marvell >>''// prompt:** | |
| - <color #960000>**If you are not:**</color> | |
| - <color #646464>**//Power Off Router -> Disconnect USB-TTL Cable from PC -> Go Back to Step 3//**</color> | |
| - <color #789600>**If you are:**</color> | |
| - <color #646464>Set up TFTP server on PC //(such as Ubuntu’s //''tftpd''// package)//</color> | |
| - <color #646464>Put **''u-boot-a38x-spi.bin''** in it’s **''tftpboot/''** directory</color>\\ \\ | |
| - **Connect PC to router //(ethernet)//, set PC IP Address //''192.168.1.254''//, and issue the following at the //''Marvell >>''// prompt:** <code bash>setenv ipaddr 192.168.1.1 | |
| setenv serverip 192.168.1.254 | |
| bubt u-boot-a38x-spi.bin | |
| </code> | |
| - **If the above commands complete successfully, reboot router via:** <code bash>reset</code> | |
| * <color #4b4b4b>Router should boot and stop at the //''Marvell >>''// prompt</color>\\ \\ | |
| - **Download firmware image for [[wrt_ac_series#firmware_images|your Armada 38x based device]] and save it to ''tftpboot/'':** | |
| - <color #4b4b4b>Issue the following at the //''Marvell >>''// prompt:</color> <code bash>tftp 192.168.1.254 | |
| get <firmware_image_name></code> | |
| - <wrap danger em lo><color #FFFFFF>IMPORTANT:</color></wrap> | |
| * <color #4b4b4b>After transfer completes successfully,</color> <color #960000>**//DO NOT issue//**</color>: | |
| * //'' run flash_pri_image ''// <color #960000>**or**</color> //'' run flash_alt_image ''// <color #960000>**or**</color> //'' run update_both_images ''// | |
| * <color #960000>//These will <wrap em><color #af0000>brick</color></wrap> the router again sending you back to Step 3//</color>\\ \\ | |
| - <color #789600>**//Instead://**</color> <WRAP group> | |
| <WRAP third column 40% center><code bash>run_linksysnandboot</code></WRAP> | |
| <WRAP third column 10% center><color #960000>**IF FAILS:**</color></WRAP> | |
| <WRAP third column 40% center><code bash>run_linksysaltnandboot</code></WRAP> | |
| </WRAP> | |
| - **Allow router to fully boot:** | |
| - <color #4b4b4b>Verify it’s up and running correctly via the WebUI</color> | |
| - <color #646464>**//Power Off Router -> Disconnect USB-TTL Cable -> Power Back On//**</color> | |
| </tabbox> | |
| </WRAP> | |
| </WRAP> | |
| |
| ---- | |
| |
| ===== Community Builds ===== | ===== Community Builds ===== |
| |
| === Divested === | === Divested === |
| Divested builds are updated frequently and include many security focused patches and settings. | Divested builds are updated frequently and include security focused patches and settings. |
| Web: [[https://divested.dev/unofficial-openwrt-builds/mvebu-linksys/|divested.dev]]. | Web: [[https://divested.dev/unofficial-openwrt-builds/mvebu-linksys/|divested.dev]]. |
| Forum: [[https://forum.openwrt.org/t/divested-wrt-no-nonsense-linksys-wrt-builds/80522|OpenWrt Forum - divested-wrt-no-nonsense-linksys-wrt-builds]]. | Forum: [[https://forum.openwrt.org/t/divested-wrt-no-nonsense-linksys-wrt-builds/80522|OpenWrt Forum - divested builds]]. |
| |
| === PureFusion === | === PureFusion === |
| (Discontinued) PureFusion builds included a lot of common packages. Discontinued in 2022. | Discontinued in 2022. PureFusion builds included a lot of common packages. |
| Github: [[https://github.com/DevOpenWRT-Router/Action_OpenWRT_AutoBuild_Linksys_Devices/releases|Releases page]]. | Github: [[https://github.com/DevOpenWRT-Router/Action_OpenWRT_AutoBuild_Linksys_Devices/releases|Releases page]]. |
| Forum: [[https://forum.openwrt.org/t/purefusion-wrt3200acm-wrt32x-wrt1200ac-wrt1900acs-wrt1900acv1-wrt1900acv2-builds/100399|OpenWrt Forum - PureFusion]]. | Forum: [[https://forum.openwrt.org/t/purefusion-wrt3200acm-wrt32x-wrt1200ac-wrt1900acs-wrt1900acv1-wrt1900acv2-builds/100399|OpenWrt Forum - PureFusion]]. |
| |
| === Davidc502 === | === Davidc502 === |
| (Discontinued) Davidc builds were used by a large proportion of the mvebu community. Discontinued in 2020. | Discontinued in 2020. Davidc builds were used by a large proportion of the mvebu community. |
| Forum: [[https://forum.openwrt.org/t/davidc502-wrt1200ac-wrt1900acx-wrt3200acm-wrt32x-builds|OpenWrt Forum - davidc502-wrt1200ac-wrt1900acx-wrt3200acm-wrt32x-builds]]. | Forum: [[https://forum.openwrt.org/t/davidc502-wrt1200ac-wrt1900acx-wrt3200acm-wrt32x-builds|OpenWrt Forum - davidc502 builds]]. |
| ===== Tags ===== | ===== Tags ===== |
| [[meta:tags|How to add tags]] | [[meta:tags|How to add tags]] |
| {{tag>mvebu mwlwifi U-boot 128flash 256flash 256ram 512ram U-boot dual_firmware 2NIC 2WNIC 5Port 2core ARMv7 GigabitEthernet JumboFrames VLAN MiniPCIexpress wlan 802.11ac 802.11abgn mu-mimo DetachableAntenna 2Ant 4Ant USB 2USB USB2.0 USB3.0 sata2 esata crypto JTAG Serial 1button 12v_powered}} | {{tag>mvebu mwlwifi U-boot 128flash 256flash 256ram 512ram U-boot dual_firmware 2NIC 2WNIC 5Port 2core ARMv7 GigabitEthernet JumboFrames VLAN MiniPCIexpress wlan 802.11ac 802.11abgn mu-mimo DetachableAntenna 2Ant 4Ant USB 2USB USB2.0 USB3.0 sata2 esata crypto JTAG Serial 1button 12v_powered}} |
| |