3e25f2bc33af wifi: mt76: mt7925: introduce MLO capability control ce3622257026 wifi: mt76: mt7925: fix fails to enter low power mode in suspend state dfdb8e975718 wifi: mt76: mt7915: fix possible integer overflows in mt7915_muru_stats_show() 29f0ad5a439a wifi: mt76: mt7925: ensure wow pattern command align fw format 5eab65bb5473 wifi: mt76: mt7925: fix country count limitation for CLC d6a197dbc9a2 wifi: mt76: Add check for devm_kstrdup() 901492c4621a wifi: mt76: mt7925: Remove unnecessary if-check 24062ce4fa0f wifi: mt76: mt7925: Simplify HIF suspend handling to avoid suspend fail 56c0beddbed8 wifi: mt76: mt7921: fix kernel panic due to null pointer dereference 11bacfcce3b9 Revert "wifi: mt76: mt7925: Update mt7925_mcu_uni_[tx,rx]_ba for MLO" 2823c50b1c15 wifi: mt76: mt7925: fix the wrong link_idx when has p2p_device f54ff3cabab6 wifi: mt76: mt7925: fix the wrong simultaneous cap for MLO aa7d366ccf40 wifi: mt76: mt7925: adjust rm BSS flow to prevent next connection failure d25359e8bb83 wifi: mt76: mt7925: integrate *mlo_sta_cmd and *sta_cmd 25a0285d8ee3 wifi: mt76: mt7925: update the power-saving flow 5910f0806c05 wifi: mt76: mt7925: load the appropriate CLC data based on hardware type 454a69cbb718 wifi: mt76: mt7925: add EHT control support based on the CLC data bdc09b8f2321 wifi: mt76: mt7925: update the channel usage when the regd domain changed 772dcb4b4e61 wifi: mt76: mt7925: remove unused acpi function for clc b94b025490ef wifi: mt76: mt792x: extend MTCL of APCI to version3 for EHT control 9ff2afce5fef wifi: mt76: mt7925: add MTCL support to enhance the regulatory compliance f11807364258 wifi: mt76: add mt76_get_power_bound helper function ffd1cbfc485e wifi: mt76: mt7921: fix returned txpower 687e2fdfbf40 wifi: mt76: mt7925: fix returned txpower 43aaa62fbc55 wifi: mt76: mt7915: cleanup mt7915_get_power_bound a4be3fc9ed4b wifi: mt76: mt7996: cleanup mt7996_get_power_bound 0ba7a69f8927 wifi: mt76: move napi_enable() from under BH 1b370c689a2f wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain e931cecc45de mt76: mt792x: fix unused variable warning 539e7e711a15 Revert "wifi: mt76: mt7925: fix returned txpower" 67c724cc60b1 Revert "wifi: mt76: mt7921: fix returned txpower" 52f51a398e7e wifi: mt76: mt7996: Add change_vif_links stub b3b61abd733f wifi: mt76: mt7996: Introduce mt7996_sta_link container 915938e83c35 wifi: mt76: mt7996: Add mt7996_sta_link struct in mt7996_vif_link 3e06380a43a4 wifi: mt76: mt7996: Add vif_cfg_changed callback f419c62e9198 wifi: mt76: mt7996: Add link_info_changed callback 3082c9edbe35 wifi: mt76: mt7996: Add mt7996_sta_state routine 46e20e5d7455 wifi: mt76: mt7996: Rely on mt7996_sta_link in sta_add/sta_remove callbacks 1de180821525 wifi: mt76: mt7996: Add mt7996_mac_sta_change_links callback 2efb26f1fc10 wifi: mt76: mt7996: Support MLO in mt7996_mac_sta_event() 2e249744bc12 wifi: mt76: Check link_conf pointer in mt76_connac_mcu_sta_basic_tlv() 0eee20d3e388 wifi: mt76: mt7996: Update mt7996_mcu_add_sta to MLO support 200ce414fe61 wifi: mt76: mt7996: Rely on mt7996_vif_link in mt7996_mcu_twt_agrt_update signature d195324131ba wifi: mt76: mt7996: Rely on mt7996_vif/sta_link in twt teardown 7757e7c140f7 wifi: mac80211: call rate_control_rate_update() for link STA a3b651aeb551 wifi: mt76: mt7996: Update mt7996_mcu_add_rate_ctrl to MLO 2a005953dc49 wifi: mt76: mt7996: Add mt7996_mcu_sta_mld_setup_tlv() and mt7996_mcu_sta_eht_mld_tlv() 58e8b71782fc wifi: mt76: mt7996: Add mt7996_mcu_teardown_mld_sta rouine e0b422f2acaf wifi: mt76: mt7996: rework mt7996_mac_write_txwi() for MLO support 21aa0c288470 wifi: mt76: mt7996: Rely on wcid_to_sta in mt7996_mac_add_txs_skb() 87c437fa8b43 wifi: mt76: mt7996: rework mt7996_rx_get_wcid to support MLO 9b4de3ce7fc7 wifi: mt76: mt7996: rework mt7996_sta_set_4addr and mt7996_sta_set_decap_offload to support MLO a369b0c14d25 wifi: mt76: mt7996: Add mt7996_sta_link to mt7996_mcu_add_bss_info signature 9c6ec015afbb wifi: mt76: mt7996: rework mt7996_set_hw_key to support MLO 60967d28a5e0 wifi: mt76: mt7996: rework mt7996_sta_hw_queue_read to support MLO 3668d57795e3 wifi: mt76: mt7996: remove mt7996_mac_enable_rtscts() 275e6a681bac wifi: mt76: mt7996: rework mt7996_mac_sta_rc_work to support MLO 057822770ca5 wifi: mt76: mt7996: rework mt7996_mac_sta_poll to support MLO b9682a51c109 wifi: mt76: mt7996: rework mt7996_update_mu_group to support MLO d1a5a0afa6d6 wifi: mt76: mt7996: rework mt7996_net_fill_forward_path to support MLO 56529041b364 wifi: mt76: mt7996: rework mt7996_mcu_add_obss_spr to support MLO c788d5748dc8 wifi: mt76: mt7996: rework mt7996_mcu_beacon_inband_discov to support MLO 974e6c2df98b wifi: mt76: mt7996: set vif default link_id adding/removing vif links 70717b761af2 wifi: mt76: mt7996: rework set/get_tsf callabcks to support MLO d01b9d300eaa wifi: mt76: mt7996: rework mt7996_ampdu_action to support MLO d5cddf65f7a7 wifi: mt76: mt7996: Update mt7996_tx to MLO support a1ed21a66913 wifi: mt76: mt792x: re-register CHANCTX_STA_CSA only for the mt7921 series a826fc287483 wifi: mt76: mt7925: update MLO cleanup flow during disconnection 0994f0af632e wifi: mt76: mt7925: fix the incomplete revert of [tx,rx]_ba for MLO 5169d4e8669b wifi: mt76: mt76x2u: add TP-Link TL-WDN6200 ID to device table 46f3a10a9f0f mt76: mt7925: sync with upstream cleanups de635e1e3adc wifi: mt76: mt7996: fix locking in mt7996_mac_sta_rc_work() 63a4edf1cb74 wifi: mt76: mt7996: add macros for pci decive id a2dd2f7896f7 wifi: mt76: connac: add support to load firmware for mt7990 3908cf04aa39 wifi: mt76: mt7996: rework WA mcu command for mt7990 6243414a4e80 wifi: mt76: mt7996: rework DMA configuration for mt7990 a8def214d736 wifi: mt76: mt7996: rework register mapping for mt7990 51db7a2d57f6 wifi: mt76: mt7996: add eeprom support for mt7990 d0799f3303e9 wifi: mt76: mt7996: adjust HW capabilities for mt7990 10c3ea97a86d wifi: mt76: connac: rework TX descriptor and TX free for mt7990 bc588ac3d104 wifi: mt76: mt7996: rework background radar check for mt7990 f8c3dd3677dd wifi: mt76: mt7996: add PCI device id for mt7990 3cec186474c4 wifi: mt76: mt7915: set correct background radar capability 9bacdb2bf2c3 wifi: mt76: mt7915: rework radar HWRDD idx a19543c7e05e wifi: mt76: mt7996: rework radar HWRDD idx b0cf33e76a3a wifi: mt76: mt7925: Fix logical vs bitwise typo 0433adc883c9 wifi: mt76: mt7925: add EHT preamble puncturing be28ef77e330 wifi: mt76: mt7996: Add NULL check in mt7996_thermal_init Signed-off-by: Felix Fietkau <nbd@nbd.name>
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.7+ rsync subversion unzip which
Quickstart
-
Run
./scripts/feeds update -a
to obtain all the latest package definitions defined in feeds.conf / feeds.conf.default -
Run
./scripts/feeds install -a
to install symlinks for all obtained packages into package/feeds/ -
Run
make menuconfig
to select your preferred configuration for the toolchain, target system & firmware packages. -
Run
make
to 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
#openwrt
on oftc.net.
Developer Community
- Bug Reports: Report bugs in OpenWrt
- Dev Mailing List: Send patches
- Dev Chat: Channel
#openwrt-devel
on oftc.net.
License
OpenWrt is licensed under GPL-2.0