3deafbad7061 wifi: mt76: mt7915: fix uninitialized irq_mask 6ca31dc64da4 wifi: mt76: mt7921: introduce remain_on_channel support 7962005b0734 wifi: mt76: connac: rework macros for unified command 3b2882ca704e wifi: mt76: connac: update struct sta_rec_phy c4d46cb1dd45 wifi: mt76: connac: rework fields for larger bandwidth support in sta_rec_bf 532c322fd72f wifi: mt76: connac: add more unified command IDs 4c43e060726b wifi: mt76: connac: introduce unified event table 4c423058920d wifi: mt76: connac: add more bss info command tags 143d7ab8ef92 wifi: mt76: connac: add more starec command tags 733ef9887b2c wifi: mt76: connac: introduce helper for mt7996 chipset 8e309b5560e1 wifi: mt76: mt7921: fix wrong power after multiple SAR set d791ed1f5877 wifi: mt76: mt7915: add missing MODULE_PARM_DESC 3b8eed9c3866 wifi: mt76: mt7915: add support to configure spatial reuse parameter set 417cca39bab2 wifi: mt76: introduce rxwi and rx token utility routines 629f8631f54f wifi: mt76: add WED RX support to mt76_dma_{add,get}_buf 13c2dc8993b6 wifi: mt76: add WED RX support to mt76_dma_rx_fill 86e94f4162b7 wifi: mt76: add WED RX support to dma queue alloc 1361519851f3 wifi: mt76: add info parameter to rx_skb signature a2e5e0667553 wifi: mt76: connac: introduce mt76_connac_mcu_sta_wed_update utility routine f38faf294310 wifi: mt76: mt7915: enable WED RX support a887a5feb3d1 wifi: mt76: mt7915: enable WED RX stats 4c23061ebcfc wifi: mt76: mt7915: add basedband Txpower info into debugfs a9c88ded5cac wifi: mt76: mt7915: enable .sta_set_txpwr support 2c172bb6cd9f wifi: mt76: mt7915: fix band_idx usage 1b88dd07f153 linux-firmware: update firmware for MT7915 6196f6080506 linux-firmware: update firmware for MT7916 daae6ca5d81f linux-firmware: update firmware for MT7986 e7a9f7a0440c wifi: mt76: mt7915: fix unused-but-set warning 340f3be65397 wifi: mt76: fix coverity overrun-call in mt76_get_txpower() aa7132da0326 wifi: mt76: mt7915: fix endianness of mt7915_mcu_set_obss_spr_pd() a36017d09324 wifi: mt76: mt7921: Add missing __packed annotation of struct mt7921_clc 66dc48bea883 wifi: mt76: do not send firmware FW_FEATURE_NON_DL region fa79eeeadc2d mt76: mt7915: Fix PCI device refcount leak in mt7915_pci_init_hif2() ff94604b2edd wifi: mt76: mt7915: introduce mt7915_get_power_bound() 5082a58f8082 wifi: mt76: mt7915: enable per bandwidth power limit support a7b915302147 wifi: mt76: mt7915: fix scene detection flow of spatial reuse 525592c28d6b wifi: mt76: mt7915: rely on band_idx of mt76_phy cdd7229e769b wifi: mt76: mt7915: mmio: fix naming convention Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry picked from commit b1b29ba98769386f7f88ef66fabc88c79be56b33)
Project ImmortalWrt
ImmortalWrt is a fork of OpenWrt, with more packages ported, more devices supported, better performance, and special optimizations for mainland China users.
Compared the official one, we allow to use hacks or non-upstreamable patches / modifications to achieve our purpose. Source from anywhere.
Default login address: http://192.168.1.1 or http://immortalwrt.lan, username: root, password: none.
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 ImmortalWrt, 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.
Development
To build your own firmware you need a GNU/Linux, BSD or MacOSX system (case sensitive filesystem required). Cygwin is unsupported because of the lack of a case sensitive file system.
Requirements
To build with this project, Ubuntu 20.04 LTS is preferred. And you need use the CPU based on AMD64 architecture, with at least 4GB RAM and 25 GB available disk space. Make sure the Internet is accessible.
The following tools are needed to compile ImmortalWrt, the package names vary between distributions.
- Here is an example for Ubuntu users:
-
Method 1:
Setup dependencies via APT
sudo apt update -y sudo apt full-upgrade -y sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ bzip2 ccache clang clangd cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext gcc-multilib \ g++-multilib git gperf haveged help2man intltool lib32gcc-s1 libc6-dev-i386 libelf-dev libglib2.0-dev \ libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5 libncursesw5-dev libreadline-dev \ libssl-dev libtool lld lldb lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 \ python3 python3-pip python3-ply python-docutils qemu-utils re2c rsync scons squashfs-tools subversion swig \ texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
-
Method 2:
sudo bash -c 'bash <(curl -s https://build-scripts.immortalwrt.eu.org/init_build_environment.sh)'
-
Note:
- For the for love of god please do not use ROOT user to build your image.
- Using CPUs based on other architectures should be fine to compile ImmortalWrt, but more hacks are needed - No warranty at all.
- You must not have spaces in PATH or in the work folders on the drive.
- If you're using Windows Subsystem for Linux (or WSL), removing Windows folders from PATH is required, please see Build system setup WSL documentation.
- Using macOS as the host build OS is not recommended. No warranty at all. You can get tips from Build system setup macOS documentation.
- For more details, please see Build system setup documentation.
Quickstart
- Run
git clone -b <branch> --single-branch https://github.com/immortalwrt/immortalwrt
to clone the source code. - Run
cd immortalwrt
to enter source directory. - 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 ImmortalWrt package manager called opkg. If you're looking to develop the web interface or port packages to ImmortalWrt, please find the fitting repository below.
- LuCI Web Interface: Modern and modular interface to control the device via a web browser.
- ImmortalWrt Packages: Community repository of ported packages.
- OpenWrt Routing: Packages specifically focused on (mesh) routing.
Support Information
For a list of supported devices see the OpenWrt Hardware Database
Documentation
Support Community
- Support Chat: group @ctcgfw_openwrt_discuss on Telegram.
- Support Chat: group #immortalwrt on Matrix.
License
ImmortalWrt is licensed under GPL-2.0-only.