====== Information ======
* [[https://www.linksys.com/id/p/p-ea6350/|Linksys EA6350]]
* [[https://openwrt.org|OpenWrt]]
* [[https://openwrt.org/toh/linksys/ea6350_v3|OpenWrt Device Page]]
* [[https://openwrt.org/releases/snapshot|Snapshot]]
===== Notes =====
* 2021/07/02: :!: When using Oculus Air Link and a speed test at 60Mbps download, CPU 0 is around 75% load and the other 3 are 1-5%. Packet Steering is disabled by-default and doesn't seem to do anything when enabled. irqbalance spreads the load quite nicely and drops CPU 0 in the same situation to around 20%. Presumably, if ISP speeds increase beyond 60Mbps, irqbalance will be required.
* 2021/08: For 5GHz, the wireless channels chosen needs to do 30 dBm on both 2.4GHz and 5GHz. For 5GHz, 149 works fine.
* :!: 2024/05/13: Wrong polarity on power barrel will fry the router/require hardware repair ([[https://discussion.fedoraproject.org/t/i-rebuilt-my-nas-and-also-powered-my-whole-network-from-molex/117002|post]])
====== Snapshot ======
==== Links ====
* :!: 2022: OpenWRT snapshot builds were disabled at some point, see https://github.com/openwrt/openwrt/pull/11405
* [[https://downloads.openwrt.org/snapshots/targets/ipq40xx/generic/openwrt-ipq40xx-generic-linksys_ea6350v3-squashfs-factory.bin|factory.bin]]
* [[https://downloads.openwrt.org/snapshots/targets/ipq40xx/generic/openwrt-ipq40xx-generic-linksys_ea6350v3-squashfs-sysupgrade.bin|sysupgrade.bin]]
==== sysupgrade ====
* This downloads the latest ''sysupgrade.bin'' and installs it
ssh 'root'@'192.168.1.1'
rm -f '/tmp/sysupgrade.img' && sync && sysupgrade --force -n -v 'https://downloads.openwrt.org/snapshots/targets/ipq40xx/generic/openwrt-ipq40xx-generic-linksys_ea6350v3-squashfs-sysupgrade.bin'
rm -Rf ~/'.ssh' && ping '192.168.1.1'
====== Packages ======
* [[https://openwrt.org/docs/guide-user/luci/luci.essentials|LuCI]] ((snapshot images don't include LuCI, so it needs installed on **every** clean snapshot install))
ssh 'root'@'192.168.1.1'
sync && passwd
opkg update && opkg install luci irqbalance nano && sync
====== Wireless AP Mode ======
* https://openwrt.org/docs/guide-user/network/wifi/relay_configuration
===== Network =====
* Sets router IP to ''192.168.2.1''
* Sets router Gateway and DNS to ''192.168.1.1''
* Disables DHCPv6
uci set network.lan.ipaddr=192.168.2.1 & uci set network.lan.gateway=192.168.1.1 & uci set network.lan.dns=192.168.1.1 & uci set dhcp.lan.dhcpv6=disabled & uci set dhcp.lan.ra=disabled & uci commit & service network restart & sync
===== Services =====
* Disables ''dnsmasq'', ''firewall'', and ''odhcpd'' services
/etc/init.d/dnsmasq disable & /etc/init.d/dnsmasq stop & /etc/init.d/firewall disable & /etc/init.d/firewall stop & /etc/init.d/odhcpd disable & /etc/init.d/odhcpd stop & /etc/init.d/network reload & sync
====== irqbalance ======
* https://openwrt.org/docs/guide-user/services/irqbalance
nano '/etc/config/irqbalance'
====== LuCI ======
* http://192.168.2.1
===== Startup =====
* https://forum.openwrt.org/t/ipq40xx-ea6350-v3-as-wap-wifi-to-lan-latency/51623/8
* :!: This is seemingly required in order to keep latency at a consistent 0.2ms on Ethernet
* http://192.168.2.1/cgi-bin/luci/admin/system/startup
echo 'performance' | tee '/sys/devices/system/cpu/cpufreq/policy0/scaling_governor' > '/dev/null'
==== Verify ====
echo 'performance' | tee '/sys/devices/system/cpu/cpufreq/policy0/scaling_governor' > '/dev/null'
cat '/sys/devices/system/cpu/cpufreq/policy0/scaling_governor'
cat '/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq'
===== Scheduled Reboot =====
* https://www.albertogonzalez.net/how-to-reboot-nightly-your-openwrt-router/
* https://openwrt.org/docs/guide-user/base-system/cron#periodic_reboot
* http://192.168.1.2/cgi-bin/luci/admin/system/crontab
# Restart 3:32 AM
32 3 * * * sleep 70 && touch /etc/banner && reboot
===== 1.1.1.1 DNS =====
* https://1.1.1.1/dns/
* See [[servers;upstream_dns_servers|DNS servers]] for other DNS servers
2606:4700:4700::1111
2606:4700:4700::1001
1.1.1.1
1.0.0.1
===== Wireless =====
==== 2.4GHz ====
* Country Code: US
* Channel: 6
* Width: 20 MHz
* Encryption: WPA2-PSK CCMP AES
The Cathedral Rooftop (2.4GHz)
==== 5GHz ====
* Country Code: US
* :!: Channel: 149
* Width: 80 MHz
* Encryption: WPA2-PSK CCMP AES
The Beacon (5GHz)
===== Firewall =====
* 80/tcp HTTP
* 443/tcp HTTPS
====== Recovery ======
===== mtd =====
* https://openwrt.org/toh/linksys/ea8300#revert_to_stock
* OpenWRT -> Linksys
==== Download Stock Firmware ====
* https://www.linksys.com/support-article?articleNum=148481
* ''3.1.10.191322'' from 2018 is the latest as of 2022/12/09
ssh 'root'@'192.168.1.1'
wget 'https://downloads.linksys.com/downloads/firmware/FW_EA6350v3_3.1.10.191322_prod.img'
==== Check Current Firmware Partition ====
* 11 = ''kernel''
* 13 = ''alt_kernel''
* :!: Flash operations should be done on the kernel **not** mentioned in the following command ((so if ''13'' for ''alt_kernel'' is reported, ''mtd'' commands should be applied to ''kernel''))
cat '/sys/devices/virtual/ubi/ubi0/mtd_num'
==== Erase Non-current Firmware Partition ====
mtd erase 'kernel'
mtd erase 'alt_kernel'
==== Flash Stock Firmware ====
mtd write 'FW_EA6350v3_3.1.10.191322_prod.img' 'kernel'
mtd write 'FW_EA6350v3_3.1.10.191322_prod.img' 'alt_kernel'
==== Boot Stock Firmware ====
* 1 = ''kernel''
* 2 = ''alt_kernel''
fw_setenv 'boot_part' '1'
fw_setenv 'boot_part' '2'
sync && reboot