This contains many fixes from upstream Linux. mac80211/371-wifi-mac80211-Add-eMLSR-eMLMR-action-frame-parsing-s.patch adapted to upstream split of include/linux/ieee80211.h Changes: ``` $ git log --oneline v6.18.26...v6.18.39 -- drivers/net/wireless/ net/mac80211/ net/wireless/ include/linux/ieee80211* 1de92789ce31 wifi: iwlwifi: mld: validate sta_mask before ffs() in BA session handlers b0b07e04f0c7 wifi: iwlwifi: mld: fix race condition in PTP removal df626f284cb9 wifi: iwlwifi: mvm: fix race condition in PTP removal 200d58c851b8 wifi: rtw88: usb: fix memory leaks on USB write failures 73d427d271f7 wifi: rtw88: increase TX report timeout to fix race condition 0aeb4d3ff6ce wifi: rtlwifi: rtl8821ae: Fix C2H bit location in RX descriptor 40aa3c2b0cb8 wifi: ath11k: fix warning when unbinding a7cdc384c9c5 wifi: mt76: mt7925: don't disable AP BSS when removing TDLS peer 7e25b5e22c1f wifi: mt76: mt76x2u: Add support for ELECOM WDC-867SU3S 3c499851753a wifi: mt76: add wcid publish check in mt76_sta_add 37c059d4d92f wifi: mac80211: tests: mark HT check strict 4dac39a4db14 wifi: mac80211: skip ieee80211_verify_sta_ht_mcs_support check in non-strict mode 265c07c09c83 wifi: nl80211: reject oversized EMA RNR lists ac2000be0cbe wifi: iwlwifi: pcie: simplify the resume flow if fast resume is not used fb8db813eba2 wifi: fix leak if split 6 GHz scanning fails 9b40c59bab08 wifi: mac80211: limit injected antenna index in ieee80211_parse_tx_radiotap 9dca67624721 wifi: iwlwifi: mvm: don't support the reset handshake for old firmwares 95c82d498d74 wifi: wilc1000: fix dma_buffer leak on bus acquire failure 55c479aae99b wifi: mac80211: fix MLE defragmentation 2d8379834800 wifi: mac80211: bounds-check link_id in ieee80211_ml_epcs 926a08cf19be wifi: ath11k: fix peer resolution on rx path when peer_id=0 3a74aaad0473 wifi: iwlwifi: mld: don't dereference a pointer before NULL checking it 9e360e610a73 wifi: iwlwifi: mld: fix TSO segmentation explosion when AMSDU is disabled e1b429d8e712 wifi: ath10k: skip WMI and beacon transmission when device is wedged d94127d04017 wifi: ath11k: fix error path leak in ath11k_tm_cmd_wmi_ftm() acde4692afcd wifi: ath11k: fix error path leaks in some WMI WOW calls 2dd9304727c7 wifi: mac80211: consume only present negotiated TTLM maps 6cfae4914439 wifi: cfg80211: advance loop vars in cfg80211_merge_profile() dc31c6947652 wifi: iwlwifi: mld: stop TX during firmware restart 6fe92651b44f wifi: iwlwifi: mvm: fix driver-set TX rates on old devices 614cacec60fe wifi: ath11k: clear shared SRNG pointer state on restart 254633506626 wifi: ath10k: fix station lookup failure during disconnect a9937a3ac585 wifi: mac80211: handle VHT EXT NSS in ieee80211_determine_our_sta_mode() cbea71b44803 wifi: brcmfmac: Fix error pointer dereference 6b9694702c37 wifi: rtw89: phy: fix uninitialized variable access in rtw89_phy_cfo_set_crystal_cap() a1a8a8bdfa21 wifi: mt76: mt7996: fix RRO EMU configuration dc34c01521bf wifi: mt76: support upgrading passive scans to active a2cde15af378 wifi: mt76: fix multi-radio on-channel scanning 98e0118ab51c wifi: mt76: mt7996: Decrement sta counter removing the link in mt7996_mac_reset_sta_iter() e54c6440114d wifi: mt76: mt7996: Switch to the secondary link if the default one is removed d6f6b3a65660 wifi: mt76: mt7996: use correct link_id when filling TXD and TXP 5a3353b06387 wifi: mt76: mt7996: Remove link pointer dependency in mt7996_mac_sta_remove_links() 7da35e2d2fb7 wifi: mt76: mt7996: Add missing CHANCTX_STA_CSA property 1e0f3e5e2835 wifi: mt76: mt7921: fix 6GHz regulatory update on connection aa4a31cd89f4 wifi: mt76: mt7996: fix use-after-free bugs in mt7996_mac_dump_work() 6b7cbb13c838 wifi: mt76: mt7915: fix use-after-free bugs in mt7915_mac_dump_work() 419babee9b5c wifi: mt76: mt7996: fix struct mt7996_mcu_uni_event ae94ef093a15 wifi: mt76: mt7996: fix wrong DMAD length when using MAC TXP 5fc8c5d45e44 wifi: mt76: fix deadlock in remain-on-channel 35180c772f5e wifi: mt76: mt7921: fix potential deadlock in mt7921_roc_abort_sync 153bcba36c87 wifi: mt76: mt7925: fix potential deadlock in mt7925_roc_abort_sync e125def8b380 wifi: mt76: mt7925: drop puncturing handling from BSS change path a1a59bd3cd1e wifi: mt76: mt7925: cqm rssi low/high event notify dcbc13d19bef wifi: mt76: Fix memory leak destroying device 35835ff71e6e wifi: mt76: mt7921: Place upper limit on station AID e00c27608536 wifi: mt76: mt7996: fix FCS error flag check in RX descriptor 815db7fd57aa wifi: mt76: mt7925: prevent NULL vif dereference in mt7925_mac_write_txwi 93d0694fb56d wifi: mt76: mt7925: prevent NULL pointer dereference in mt7925_tx_check_aggr() b81a93dc0aed wifi: mt76: mt7915: fix use_cts_prot support 729b4adad191 wifi: mt76: mt7615: fix use_cts_prot support 9aa3b49e1c5b wifi: mt76: mt7925: Fix incorrect MLO mode in firmware control 3880639cec09 wifi: mt76: mt7921: Reset ampdu_state state in case of failure in mt76_connac2_tx_check_aggr() 1e16b0a9b988 wifi: mt76: mt7996: Reset ampdu_state state in case of failure in mt7996_tx_check_aggr() 455a48685fee wifi: mt76: mt7996: Clear wcid pointer in mt7996_mac_sta_deinit_link() 6d7f231d5fff wifi: mt76: mt7996: Reset mtxq->idx if primary link is removed in mt7996_vif_link_remove() 15205c72f1ec wifi: mt76: mt7996: Set mtxq->wcid just for primary link 900579479395 wifi: mt76: mt7996: fix iface combination for different chipsets 096b74331df2 wifi: mt76: mt7996: fix the behavior of radar detection 00c0317cebf4 wifi: libertas: don't kill URBs in interrupt context a761a1539a55 wifi: libertas: use USB anchors for tracking in-flight URBs 0ee803fc4787 wifi: ieee80211: fix definition of EHT-MCS 15 in MRU dd827cff429d wifi: ieee80211: split EHT definitions out df5720d35848 wifi: ieee80211: split HE definitions out f8d1e8038bc7 wifi: ieee80211: split VHT definitions out 4d5caab09dab wifi: ieee80211: split HT definitions out 3f459076b2d8 wifi: ieee80211: split mesh definitions out aa10a452e348 wifi: rtlwifi: pci: fix possible use-after-free caused by unfinished irq_prepare_bcn_tasklet 9fe48cacab63 wifi: mwifiex: Fix memory leak in mwifiex_11n_aggregate_pkt() 658d2e46c2e9 wifi: brcmfmac: Fix potential use-after-free issue when stopping watchdog task d7029879bafd wifi: b43: enforce bounds check on firmware key index in b43_rx() 9e28654f79f4 wifi: mac80211: remove station if connection prep fails e9f1081bc775 wifi: ath5k: do not access array OOB 7577a4b8a10f wifi: mac80211: use safe list iteration in radar detect work 4f9a4ae8d2c1 wifi: rsi: fix kthread lifetime race between self-exit and external-stop e131562d6f2b wifi: mac80211: drop stray 'static' from fast-RX rx_result 9d1bc1558029 wifi: b43legacy: enforce bounds check on firmware key index in RX path 6d55948a62ab wifi: mt76: mt7921: fix ROC abort flow interruption in mt7921_roc_work 0aa63d33742b wifi: mt76: mt7921: fix a potential clc buffer length underflow 6fc7c8b414ce wifi: mt76: mt7925: fix incorrect length field in txpower command 5860ab3ddeaa wifi: mt76: mt7925: fix AMPDU state handling in mt7925_tx_check_aggr 8c4339dbab49 wifi: mt76: mt7925: fix incorrect TLV length in CLC command 7d7863018f40 wifi: mt76: mt792x: fix mt7925u USB WFSYS reset handling 0bc155c4ca47 wifi: mt76: mt792x: describe USB WFSYS reset with a descriptor 69c4d137b22d wifi: rtl8xxxu: fix potential use of uninitialized value 4e179a60a60c wifi: mwifiex: fix use-after-free in mwifiex_adapter_cleanup() 000134a20bbf wifi: rtw88: check for PCI upstream bridge existence ``` Link: https://github.com/openwrt/openwrt/pull/24353 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
OpenWrt Project is a Linux operating system targeting embedded devices. Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developers, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.
Sunshine!
Download
Built firmware images are available for many architectures and come with a package selection to be used as WiFi home router. To quickly find a factory image usable to migrate from a vendor stock firmware to OpenWrt, try the Firmware Selector.
If your device is supported, please follow the Info link to see install instructions or consult the support resources listed below.
An advanced user may require additional or specific package. (Toolchain, SDK, ...) For everything else than simple firmware download, try the wiki download page:
Development
To build your own firmware you need a GNU/Linux, BSD or macOS system (case sensitive filesystem required). Cygwin is unsupported because of the lack of a case sensitive file system.
Requirements
You need the following tools to compile OpenWrt, the package names vary between distributions. A complete list with distribution specific packages is found in the Build System Setup documentation.
binutils bzip2 diff find flex gawk gcc-6+ getopt grep install libc-dev libz-dev
make4.1+ perl python3.8+ rsync subversion unzip which
Quickstart
-
Run
./scripts/feeds update -ato obtain all the latest package definitions defined in feeds.conf / feeds.conf.default -
Run
./scripts/feeds install -ato install symlinks for all obtained packages into package/feeds/ -
Run
make menuconfigto select your preferred configuration for the toolchain, target system & firmware packages. -
Run
maketo build your firmware. This will download all sources, build the cross-compile toolchain and then cross-compile the GNU/Linux kernel & all chosen applications for your target system.
Related Repositories
The main repository uses multiple sub-repositories to manage packages of
different categories. All packages are installed via the OpenWrt package
manager called opkg. If you're looking to develop the web interface or port
packages to OpenWrt, please find the fitting repository below.
-
LuCI Web Interface: Modern and modular interface to control the device via a web browser.
-
OpenWrt Packages: Community repository of ported packages.
-
OpenWrt Routing: Packages specifically focused on (mesh) routing.
-
OpenWrt Video: Packages specifically focused on display servers and clients (Xorg and Wayland).
Support Information
For a list of supported devices see the OpenWrt Hardware Database
Documentation
Support Community
- Forum: For usage, projects, discussions and hardware advise.
- Support Chat: Channel
#openwrton oftc.net.
Developer Community
- Bug Reports: Report bugs in OpenWrt
- Dev Mailing List: Send patches
- Dev Chat: Channel
#openwrt-develon oftc.net.
License
OpenWrt is licensed under GPL-2.0
