Linksys WRT1900ACS
Linksys WRT1900ACS.
- model: WRT1900ACS
- network 2.4 GHz + 5 GHz simultaneously
- hardware version: V2
back to network page.
Links
links: OpenWrt, OpenWRT - Linksys WRT ACS Series, LEDE Project, OpenWrt: upgrading to latest version when chipset migrated to DSA support, How to create user without useradd command in OpenWRT,
History
2026-04-12: check if the ubus packeges required for Home Assistant OpenWrt ubus integration is installed
root@kg-shelby-b:~# apk info | grep rpcd-mod-file rpcd-mod-file root@kg-shelby-b:~# apk info | grep uhttpd-mod-ubus uhttpd-mod-ubus
yes, they are. I configured the necessary things in OpenWrt (create a user, set a password, update and create config files), then did the rest in Home Assistant.
2026-04-12: luci-mod-rpc, se if the fix from #576 will work:
root@kg-shelby-b:~# grep timeout /usr/lib/lua/luci/controller/rpc.lua #timeout = tonumber(config.sauth.sessiontime) timeout = 60
no, it doesn't appear to work.
2026-04-12: apk - install the luci-mod-rpc package
root@kg-shelby-b:~# apk install luci-mod-rpc ERROR: 'install' is not an apk command. See 'apk --help'.
right - apk is different
root@kg-shelby-b:~# apk add luci-mod-rpc ( 1/12) Installing liblua5.1.5 (5.1.5-r11) Executing liblua5.1.5-5.1.5-r11.post-install ( 2/12) Installing liblucihttp-lua (2023.03.15~9b5b683f-r1) Executing liblucihttp-lua-2023.03.15~9b5b683f-r1.post-install ( 3/12) Installing libubus-lua (2025.12.02~3cc98db1-r1) Executing libubus-lua-2025.12.02~3cc98db1-r1.post-install ( 4/12) Installing lua (5.1.5-r11) Executing lua-5.1.5-r11.post-install ( 5/12) Installing luci-lib-ip (26.101.22673~0c81d2d) Executing luci-lib-ip-26.101.22673~0c81d2d.post-install ( 6/12) Installing luci-lib-jsonc (26.101.22673~0c81d2d) Executing luci-lib-jsonc-26.101.22673~0c81d2d.post-install ( 7/12) Installing luci-lib-nixio (26.101.22673~0c81d2d) Executing luci-lib-nixio-26.101.22673~0c81d2d.post-install ( 8/12) Installing luci-lib-base (26.101.22673~0c81d2d) Executing luci-lib-base-26.101.22673~0c81d2d.post-install ( 9/12) Installing ucode-mod-lua (1) Executing ucode-mod-lua-1.post-install (10/12) Installing luci-lua-runtime (26.101.22673~0c81d2d) Executing luci-lua-runtime-26.101.22673~0c81d2d.post-install (11/12) Installing luci-lib-json (26.101.22673~0c81d2d) Executing luci-lib-json-26.101.22673~0c81d2d.post-install (12/12) Installing luci-mod-rpc (26.101.22673~0c81d2d) Executing luci-mod-rpc-26.101.22673~0c81d2d.post-install OK: 12.0 MiB in 164 packages
verify
root@kg-shelby-b:~# apk info luci-mod-rpc luci-mod-rpc-26.101.22673~0c81d2d description: LuCI RPC - JSON-RPC API luci-mod-rpc-26.101.22673~0c81d2d webpage: https://github.com/openwrt/luci luci-mod-rpc-26.101.22673~0c81d2d installed size: 10 KiB
2026-04-12: after the upgrade, we have
root@kg-shelby-b:~# cat /etc/banner _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 25.12.2, r32802-f505120278 Dave's Guitar ----------------------------------------------------- root@kg-shelby-b:~# cat /tmp/sysinfo/board_name linksys,wrt1900acs root@kg-shelby-b:~# cat /tmp/sysinfo/model Linksys WRT1900ACS
good.
2026-04-12: do the upgrade
root@kg-shelby-b:~# sysupgrade -F -n -v /tmp/openwrt-25.12.2-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin Device linksys,shelby not supported by this image Supported devices: linksys,wrt1900acs armada-385-linksys-shelby linksys,shelby - Image version mismatch: image 1.1, device 1.0. Please wipe config during upgrade (force required) or reinstall. Reason: Config cannot be migrated from swconfig to DSA Image check failed but --force given - will update anyway! Commencing upgrade. Closing all shell sessions. Connection to kg-shelby.kg4.no closed by remote host. Connection to kg-shelby.kg4.no closed.
then do the tethered dance; connect to the WRT1900ACS with a ethernet cable, and change things that needs change. I had to do the ipv4 address change twice, the first time I waited to long before connecting, and the device reverted to previous config. Oh well, live and learn.
2026-04-12: put the network config here
root@kg-shelby-b:/etc# cat /etc/config/network config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config globals 'globals' option ula_prefix 'fd8c:2fd0:94bd::/48' config interface 'lan' option type 'bridge' option ifname 'eth0.1' option proto 'static' option ip6assign '60' option netmask '255.255.0.0' option ipaddr '10.1.10.14' option gateway '10.1.10.1' config interface 'wan' option ifname 'eth1.2' option proto 'dhcp' config interface 'wan6' option ifname 'eth1.2' option proto 'dhcpv6' config switch option name 'switch0' option reset '1' option enable_vlan '1' config switch_vlan option device 'switch0' option vlan '1' option ports '0 1 2 3 5t' config switch_vlan option device 'switch0' option vlan '2' option ports '4 6t'
and the wireless config too (remove sensitive data)
root@kg-shelby-b:/etc# cat /etc/config/wireless config wifi-device 'radio0' option type 'mac80211' option channel '36' option hwmode '11a' option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0' option htmode 'VHT80' option country 'NO' config wifi-iface 'default_radio0' option device 'radio0' option network 'lan' option mode 'ap' option macaddr '60:38:e0:0c:2c:51' option ssid 'kg6-5Ghz' option encryption 'psk2' option key '<key>' config wifi-device 'radio1' option type 'mac80211' option hwmode '11g' option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0' option country 'DE' option htmode 'HT40' option channel '13' config wifi-iface 'default_radio1' option device 'radio1' option network 'lan' option mode 'ap' option macaddr '60:38:e0:0c:2c:50' option encryption 'psk2' option key '<key>' option ssid 'kg5'
radio1 country should be changed.
2026-04-12 - find any user-installed packages
cat << "EOF" > /tmp/listuserpackages.awk #!/usr/bin/awk -f BEGIN { ARGV[ARGC++] = "/usr/lib/opkg/status" cmd="opkg info busybox | grep '^Installed-Time: '" cmd | getline FLASH_TIME close(cmd) FLASH_TIME=substr(FLASH_TIME,17) } /^Package:/{PKG= $2} /^Installed-Time:/{ INSTALLED_TIME= $2 # Find all packages installed after FLASH_TIME if ( INSTALLED_TIME > FLASH_TIME ) { cmd="opkg whatdepends " PKG " | wc -l" cmd | getline WHATDEPENDS close(cmd) # If nothing depends on the package, it is installed by user if ( WHATDEPENDS == 3 ) print PKG } } EOF
run the script
root@kg-shelby-b:/tmp# chmod +x /tmp/listuserpackages.awk root@kg-shelby-b:/tmp# /tmp/listuserpackages.awk /usr/lib/opkg/status > /etc/opkg-beforeupgrade
check it
root@kg-shelby-b:/tmp# ls -l /etc/opkg-beforeupgrade -rw-r--r-- 1 root root 0 Apr 12 17:28 /etc/opkg-beforeupgrade
so "no user installed packages" then. Check for custom conf files
root@kg-shelby-b:/tmp# cat /lib/upgrade/keep.d/* | grep -v /etc # Essential files that will be always kept root@kg-shelby-b:/tmp# cat /etc/sysupgrade.conf | grep -v /etc ## This file contains files and directories that should ## be preserved during an upgrade. root@kg-shelby-b:/tmp# opkg list-changed-conffiles | grep -v /etc
none of those either. create a backup of /etc
root@kg-shelby-b:/etc# tar zcvf /tmp/etc.tar.gz * [..]
and copy it off with scp.
2026-04-12: check what we have
root@kg-shelby-b:/tmp# cat /etc/banner _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt SNAPSHOT, r13059-9fac9168c6 ----------------------------------------------------- root@kg-shelby-b:/tmp# cat /tmp/sysinfo/board_name linksys,shelby root@kg-shelby-b:/tmp# cat /tmp/sysinfo/model Linksys WRT1900ACS
2026-04-12: ok, upgrade to a supported OpenWRT version this way then. fetch
root@kg-shelby-b:~# cd /tmp root@kg-shelby-b:/tmp# wget https://downloads.openwrt.org/releases/25.12.2/targets/mvebu/cortexa9/openwrt-25.12.2-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin --2026-04-12 17:06:23-- https://downloads.openwrt.org/releases/25.12.2/targets/mvebu/cortexa9/openwrt-25.12.2-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin Resolving downloads.openwrt.org... 151.101.2.132, 151.101.194.132, 151.101.130.132, ... Connecting to downloads.openwrt.org|151.101.2.132|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 7987853 (7.6M) [application/octet-stream] Saving to: 'openwrt-25.12.2-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin' openwrt-25.12.2-mvebu-cortexa9-linksys_w 100%[=================================================================================>] 7.62M --.-KB/s in 0.09s 2026-04-12 17:06:23 (83.4 MB/s) - 'openwrt-25.12.2-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin' saved [7987853/7987853]
check
root@kg-shelby-b:/tmp# wget https://downloads.openwrt.org/releases/25.12.2/targets/mvebu/cortexa9/sha256sums --2026-04-12 17:11:52-- https://downloads.openwrt.org/releases/25.12.2/targets/mvebu/cortexa9/sha256sums Resolving downloads.openwrt.org... 151.101.2.132, 151.101.66.132, 151.101.130.132, ... Connecting to downloads.openwrt.org|151.101.2.132|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 191276 (187K) [text/plain] Saving to: 'sha256sums' sha256sums 100%[==============================================================================================================>] 186.79K --.-KB/s in 0.005s 2026-04-12 17:11:52 (38.7 MB/s) - 'sha256sums' saved [191276/191276] root@kg-shelby-b:/tmp# sha256sum -c sha256sums 2>/dev/null | grep OK openwrt-25.12.2-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin: OK
upgrade
root@kg-shelby-b:/tmp# sysupgrade -v /tmp/openwrt-25.12.2-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin Device linksys,shelby not supported by this image Supported devices: linksys,wrt1900acs armada-385-linksys-shelby linksys,shelby - Image version mismatch: image 1.1, device 1.0. Please wipe config during upgrade (force required) or reinstall. Reason: Config cannot be migrated from swconfig to DSA Image check failed.
2026-04-12: opkg - opkg update, fails
root@kg-shelby-b:~# opkg update Downloading https://dc502wrt.org/snapshots/r13059/targets/mvebu/cortexa9/packages/Packages.gz *** Failed to download the package list from https://dc502wrt.org/snapshots/r13059/targets/mvebu/cortexa9/packages/Packages.gz Downloading https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/base/Packages.gz *** Failed to download the package list from https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/base/Packages.gz Downloading https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/darkmatter/Packages.gz *** Failed to download the package list from https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/darkmatter/Packages.gz Downloading https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/luci/Packages.gz *** Failed to download the package list from https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/luci/Packages.gz Downloading https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/opentomato/Packages.gz *** Failed to download the package list from https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/opentomato/Packages.gz Downloading https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/packages/Packages.gz *** Failed to download the package list from https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/packages/Packages.gz Downloading https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/routing/Packages.gz *** Failed to download the package list from https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/routing/Packages.gz Downloading https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/telephony/Packages.gz *** Failed to download the package list from https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/telephony/Packages.gz Collected errors: * opkg_download: Failed to download https://dc502wrt.org/snapshots/r13059/targets/mvebu/cortexa9/packages/Packages.gz, wget returned 4. * opkg_download: Check your network settings and connectivity. * opkg_download: Failed to download https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/base/Packages.gz, wget returned 4. * opkg_download: Check your network settings and connectivity. * opkg_download: Failed to download https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/darkmatter/Packages.gz, wget returned 4. * opkg_download: Check your network settings and connectivity. * opkg_download: Failed to download https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/luci/Packages.gz, wget returned 4. * opkg_download: Check your network settings and connectivity. * opkg_download: Failed to download https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/opentomato/Packages.gz, wget returned 4. * opkg_download: Check your network settings and connectivity. * opkg_download: Failed to download https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/packages/Packages.gz, wget returned 4. * opkg_download: Check your network settings and connectivity. * opkg_download: Failed to download https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/routing/Packages.gz, wget returned 4. * opkg_download: Check your network settings and connectivity. * opkg_download: Failed to download https://dc502wrt.org/snapshots/r13059/packages/arm_cortex-a9_vfpv3-d16/telephony/Packages.gz, wget returned 4. * opkg_download: Check your network settings and connectivity.
aha, dc502wrt.org doesn't exist anymore.
2026-04-05: web gui - I changed SSID of the 2.4 GHz radio to "kg5" and enabled it.
2024-01-07: check uptime (for some reason this AP is not in my DNS)
tingo@kg-core2:~ $ ssh root@10.1.10.14 root@10.1.10.14's password: BusyBox v1.31.1 () built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt SNAPSHOT, r13059-9fac9168c6 ----------------------------------------------------- root@kg-shelby-b:~# uptime 17:04:10 up 254 days, 9:03, load average: 0.08, 0.01, 0.00
2023-09-09: check uptime
root@kg-shelby-b:~# date;uptime Sat Sep 9 13:17:08 CEST 2023 13:17:08 up 134 days, 4:16, load average: 0.00, 0.00, 0.00
2022-10-29: reboot again - Jolla Tablet couldn't connect.
2022-05-30: my Jolla Tablet couldn't connect to this AP, so I rebooted it. It had 276 days of uptime.
2021-07-07: I re-created this page on my self-hosted web server.
2020-09-11: it seems like the box rebooted on its own:
root@kg-shelby-b:~# date;uptime Sun May 10 19:25:06 CEST 2020 19:25:06 up 18 min, load average: 0.02, 0.09, 0.11
and the date is totally wrong too. Hmm,
root@kg-shelby-b:~# uci show system.ntp system.ntp=timeserver system.ntp.server='0.openwrt.pool.ntp.org' '1.openwrt.pool.ntp.org' '2.openwrt.pool.ntp.org' '3.openwrt.pool.ntp.org'
looks correct. I did 'sync with NTP server from System, system and that fixed it:
root@kg-shelby-b:~# date;uptime Fri Sep 11 07:57:56 CEST 2020 07:57:56 up 27 min, load average: 0.00, 0.03, 0.06
ok
2020-05-10: OpenWRT - uci - network.lan
root@kg-shelby-b:~# uci show network.lan network.lan=interface network.lan.type='bridge' network.lan.ifname='eth0.1' network.lan.proto='static' network.lan.ipaddr='192.168.1.1' network.lan.netmask='255.255.255.0' network.lan.ip6assign='60'
and
root@kg-shelby-b:~# uci get network.lan.netmask 255.255.255.0
so change it
root@kg-shelby-b:~# uci set network.lan.netmask='255.255.0.0' root@kg-shelby-b:~# uci get network.lan.netmask 255.255.0.0 root@kg-shelby-b:~# uci set network.lan.ipaddr='10.1.10.14' root@kg-shelby-b:~# uci get network.lan.ipaddr 10.1.10.14
and commit
root@kg-shelby-b:~# uci commit
verify
root@kg-shelby-b:~# uci show network.lan network.lan=interface network.lan.type='bridge' network.lan.ifname='eth0.1' network.lan.proto='static' network.lan.ip6assign='60' network.lan.netmask='255.255.0.0' network.lan.ipaddr='10.1.10.14'
now I just need to activate it.
root@kg-shelby-b:~# service network reload
(my ssh connection broke, but it worked)
2020-05-10: OpenWRT - config via uci then:
root@kg-shelby-b:~# uci Usage: uci [<options>] <command> [<arguments>] Commands: batch export [<config>] import [<config>] changes [<config>] commit [<config>] add <config> <section-type> add_list <config>.<section>.<option>=<string> del_list <config>.<section>.<option>=<string> show [<config>[.<section>[.<option>]]] get <config>.<section>[.<option>] set <config>.<section>[.<option>]=<value> delete <config>[.<section>[[.<option>][=<id>]]] rename <config>.<section>[.<option>]=<name> revert <config>[.<section>[.<option>]] reorder <config>.<section>=<position>
ok
2020-05-10: firmware - I flashed the latest image from dc502wrt.org, which went well. For some rerason I have trouble getting the ip (v4) address to stick, so now I have ssh'ed to the AP via IPv6:
tingo@z30b:~$ ssh -6 root@fe80::6238:e0ff:fe0c:2c4f%wlp2s0 root@fe80::6238:e0ff:fe0c:2c4f%wlp2s0's password: BusyBox v1.31.1 () built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt SNAPSHOT, r13059-9fac9168c6 ----------------------------------------------------- root@kg-shelby-b:~#
good
2020-03-27: firmware - there is also the community builds over at dc502wrt.org, with LuCi "OpenTomato" web interface.
2020-03-27: firmware - OpenWRT 19.07.2 is recommended.
2018-10-14: firmware - OpenWRT - the page now recommends OpenWRT 18.06.1 for the WRT1900ACS. Hmmm,,,
2018-08-08: firmware - OpenWRT have a page one the WRT1900ACS (and the rest of the series). Unsure if OpenWRT 18.06.0 works on this device.
2017-08-05: firmware - custom LEDE image here: https://davidc502sis.dynamic-dns.net/releases/#1900acs
2017-08-05: firmware - latest official firmware is download, release notes,
Ver. 2.0.1.182461 Latest Date: 7/21/2017
2017-08-05: unboxed the router this afternoon. On the underside it says model no. WRT1900ACS V2.
2016-11-11: hardware - v1 or v2?
2016-10-11: I got a pickup message (text message) during the day and picked up the package at Coop Extra Birkelunden in the evening.
2016-10-10: my order was shipped.
2016-10-09: there was a sale on Komplett, and I ordered the WRT1900ACS which sold for NOK 1695.- (the order included another item).