Go to file
Bjørn Mork d1dca8343b
uboot-envtools: add support for multiple config partitions
Most (all?) of the realtek devices have two u-boot config partitions
with a different set of variables in each. The U-Boot shell provides
two sets of apps to manipulate these:

 printenv- print environment variables
 printsys- printsys - print system information variables
 saveenv - save environment variables to persistent storage
 savesys - savesys - save system information variables to persistent storage
 setenv  - set environment variables
 setsys  - setsys  - set system information variables

Add support for multiple ubootenv configuration types, allowing
more than one configuration file.

Section names are not suitable for naming the different
configurations since each file can be the result of multiple sections
in case of backup partitions.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
(cherry picked from commit a3e9fd7e5b)
2024-01-03 14:48:48 +08:00
.github/ISSUE_TEMPLATE github: add command for device 2023-01-07 16:43:48 +08:00
config Merge Official Source 2022-12-08 01:34:49 +08:00
include ImmortalWrt v21.02.7: revert to branch defaults 2023-09-07 13:35:29 +08:00
LICENSES LICENSES: sync with upstream OpenWrt 2023-01-10 15:47:21 +08:00
package uboot-envtools: add support for multiple config partitions 2024-01-03 14:48:48 +08:00
scripts base-files: add eMMC sysupgrade support 2023-09-26 15:36:54 +08:00
target sunxi: ensure NanoPi R1 has unique MAC address 2023-10-22 12:44:55 +08:00
toolchain toolchain: musl: add PKG_CPE_ID 2023-09-27 17:25:40 +02:00
tools Merge Official Source 2023-09-28 11:02:31 +08:00
.gitattributes add .gitattributes to prevent the git autocrlf option from messing with CRLF/LF in files 2012-05-08 13:30:49 +00:00
.gitignore gitignore: add .vscode for VS Code users 2021-03-29 22:26:27 +02:00
BSDmakefile build: use SPDX license tags 2021-02-05 14:54:47 +01:00
Config.in build: use SPDX license tags 2021-02-05 14:54:47 +01:00
COPYING license: re-license Project ImmortalWrt under GPL-2.0-only 2022-12-24 10:44:52 +08:00
feeds.conf.default ImmortalWrt v21.02.7: revert to branch defaults 2023-09-07 13:35:29 +08:00
Makefile build: don't remove BUILD_LOG_DIR in _clean 2022-12-30 14:33:32 +08:00
README.md README: update acknowledgements 2023-08-14 16:05:04 +08:00
rules.mk Merge Official Source 2022-12-06 03:04:32 +08:00

logo

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:

  • Do everything as an unprivileged user, not root, without sudo.
  • 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 or non-ascii characters 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

  1. Run git clone -b <branch> --single-branch --filter=blob:none https://github.com/immortalwrt/immortalwrt to clone the source code.
  2. Run cd immortalwrt to enter source directory.
  3. Run ./scripts/feeds update -a to obtain all the latest package definitions defined in feeds.conf / feeds.conf.default
  4. Run ./scripts/feeds install -a to install symlinks for all obtained packages into package/feeds/
  5. Run make menuconfig to select your preferred configuration for the toolchain, target system & firmware packages.
  6. 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.

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.

Support Information

For a list of supported devices see the OpenWrt Hardware Database

Documentation

Support Community

License

ImmortalWrt is licensed under GPL-2.0-only.

Acknowledgements

Dler Cloud JetBrains Black Box Logo logo SourceForge