# Custom OpenWrt Image for Linksys E8450 I have a [Linksys E8450](https://openwrt.org/toh/linksys/e8450) WiFi 6 router. Here are some notes for building a custom OpenWrt 23.05 image via [this service](https://firmware-selector.openwrt.org) for it. I initially replaced the vendor firmware by flashing [OpenWrt installer](https://github.com/dangowrt/owrt-ubi-installer). ## Build Request 1. Default packages Custom selection of packages should start from this list, which is parsed from [this file](https://downloads.openwrt.org/releases/23.05-SNAPSHOT/targets/mediatek/mt7622/profiles.json). ``` base-files busybox ca-bundle dnsmasq dropbear firewall4 fstools kmod-gpio-button-hotplug kmod-leds-gpio kmod-mt7622-firmware kmod-mt7915-firmware kmod-nft-offload kmod-usb3 libc libgcc libustream-mbedtls logd mtd netifd nftables odhcp6c odhcpd-ipv6only opkg ppp ppp-mod-pppoe procd procd-seccomp procd-ujail uboot-envtools uci uclient-fetch urandom-seed urngd wpad-basic-mbedtls ``` 2. ~~Revert `firewall4` back to `firewall` for now~~ (**No longer needed**) ~~Currently the `nftables`-based `firewall4` is too bugged for daily use. It became [the default](https://github.com/openwrt/openwrt/commit/08d9f6e3020b4a149b2007b6ed7d684c49af9bbf) just before the release of OpenWrt 22.03.~~ This was the case for OpenWrt 22.03, but it is no longer needed now. ``` -firewall4 -kmod-nft-offload firewall ip6tables-legacy iptables-legacy kmod-ipt-offload ``` 3. Replace `wpad-basic-mbedtls` with `wpad-mbedtls` Install `wpad-mbedtls` instead for full feature set related to wireless authentication. ``` -wpad-basic-mbedtls wpad-mbedtls ``` 4. USB flash drive support Linksys E8450 has a USB 2.0 port. Install applications and kernel modules for USB flash drive support. The `Btrfs`, `exFAT`, `ext4`, `F2FS`, `FAT`-family, `XFS` and `NTFS` file systems are supported. ``` block-mount blockd kmod-fs-btrfs kmod-fs-exfat kmod-fs-ext4 kmod-fs-f2fs kmod-fs-vfat kmod-fs-xfs kmod-usb-storage kmod-usb-storage-uas ntfs-3g usbutils ``` 5. LuCI web interface Install LuCI web interface for easy administration. ``` luci luci-ssl luci-theme-bootstrap luci-theme-openwrt-2020 ``` 6. Additional packages Personal choices here. ``` auc curl ip6tables-nft iptables-nft kmod-tun luci-app-attendedsysupgrade luci-app-bcp38 luci-app-firewall luci-app-opkg luci-app-sqm luci-app-uhttpd luci-app-wireguard luci-app-wol nano qrencode stubby wget-ssl ``` ## Build Result The final package list will be: ``` -wpad-basic-mbedtls auc base-files block-mount blockd busybox ca-bundle curl dnsmasq dropbear firewall4 fstools ip6tables-nft iptables-nft kmod-fs-btrfs kmod-fs-exfat kmod-fs-ext4 kmod-fs-f2fs kmod-fs-vfat kmod-fs-xfs kmod-gpio-button-hotplug kmod-leds-gpio kmod-mt7622-firmware kmod-mt7915-firmware kmod-nft-offload kmod-tun kmod-usb-storage kmod-usb-storage-uas kmod-usb3 libc libgcc libustream-mbedtls logd luci luci-app-attendedsysupgrade luci-app-bcp38 luci-app-firewall luci-app-opkg luci-app-sqm luci-app-uhttpd luci-app-wireguard luci-app-wol luci-ssl luci-theme-bootstrap luci-theme-openwrt-2020 mtd nano netifd nftables ntfs-3g odhcp6c odhcpd-ipv6only opkg ppp ppp-mod-pppoe procd procd-seccomp procd-ujail qrencode stubby uboot-envtools uci uclient-fetch urandom-seed urngd usbutils wget-ssl wpad-mbedtls ``` Submit the build request. If it is successful, download and flash the resulting `sysupgrade` image. Tested and confirmed to work on `23.05.5 r24106-10cc5fcd00`. ## To do * ~~Decide if `luci-app-upnp` is needed.~~ Nope. * ~~Once the `nftables`-based `firewall4` becomes stable enough in OpenWrt, migrate to it by removing Step 2. Add `iptables-nft` and `ip6tables-nft` as drop-in replacements like [what Red Hat did](https://www.redhat.com/en/blog/using-iptables-nft-hybrid-linux-firewall).~~ Done.