mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-07 01:53:34 +08:00
README: rewrite based on OpenWrt
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org> (cherry picked from commit 56a0a12e171fbe4ae1af3fc799487305c3945f76)
This commit is contained in:
parent
e34b976c64
commit
2944f5e37f
168
README.md
168
README.md
@ -1,49 +1,135 @@
|
||||
# PROJECT IMMORTALWRT
|
||||
## The Core Source Code of ImmortalWrt
|
||||
### Welcome to our Telegram Group: [@ctcgfw\_openwrt\_discuss](https://t.me/ctcgfw_openwrt_discuss).
|
||||
- - -
|
||||
<img src="https://avatars.githubusercontent.com/u/53193414?s=200&v=4" alt="logo" width="200" height="200" align="right">
|
||||
|
||||
# How to make it
|
||||
## Minimum requirements
|
||||
Linux with case sensitive<br/>
|
||||
2G DDR2 RAM<br/>
|
||||
2 CPU Cores (AMD64, 1.4Ghz)<br/>
|
||||
25G disk space left<br/>
|
||||
Has access to both ChinaNet & Internet
|
||||
# Project ImmortalWrt
|
||||
|
||||
## Install the necessary packages (for Ubuntu user)
|
||||
```bash
|
||||
sudo apt-get update -y
|
||||
sudo apt-get full-upgrade -y
|
||||
sudo apt-get install -y build-essential cmake asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib g++-multilib p7zip p7zip-full msmtp libssl-dev texinfo libreadline-dev libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint ccache curl wget vim nano python2.7 python3 python3-pip python3-ply haveged lrzsz device-tree-compiler scons antlr3 gperf intltool mkisofs rsync
|
||||
```
|
||||
#### For mainland China & Ubuntu(16.04+) user, you may run the following command to setup quickly:
|
||||
```bash
|
||||
sudo bash -c "bash <(curl -s https://build-scripts.project-openwrt.eu.org/init_build_environment.sh)"
|
||||
```
|
||||
This project is a fork of [OpenWrt](https://openwrt.org), with more packages ported, more device supported, better performance, and special optimizations for mainland China users.<br/>
|
||||
Compared the official one, we allow to use hacks or non-upstreamable patches / modifications to achieve our purpose. Source from anywhere.
|
||||
|
||||
## Clone the source
|
||||
```bash
|
||||
git clone -b openwrt-21.02 --single-branch https://github.com/immortalwrt/immortalwrt && cd immortalwrt
|
||||
./scripts/feeds update -a && ./scripts/feeds install -a
|
||||
```
|
||||
Default login address: http://192.168.1.1 or http://immortalwrt.lan, username: __root__, password: __password__.
|
||||
|
||||
## Configure your firmware
|
||||
```bash
|
||||
make menuconfig
|
||||
```
|
||||
## 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.<br/>
|
||||
|
||||
## Make it
|
||||
```bash
|
||||
make -j$(nproc) V=s
|
||||
```
|
||||
### Requirements
|
||||
To build with is project, Ubuntu 18.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.
|
||||
|
||||
## Tips
|
||||
You'd better not use **root** to make it, or you may be not able to use.<br/>
|
||||
Default login address: 192.168.1.1, username is **root** and password is **password**.
|
||||
The following tools are needed to compile ImmortalWrt, the package names vary between distributions.
|
||||
|
||||
# Contributed
|
||||
### See [CONTRIBUTED.md](https://github.com/immortalwrt/immortalwrt/blob/openwrt-21.02/CONTRIBUTED.md).
|
||||
- Here is an example for Ubuntu users:<br/>
|
||||
- Method 1:
|
||||
<details>
|
||||
<summary>Setup dependencies via APT</summary>
|
||||
|
||||
# License
|
||||
### [GNU General Public License v3.0](https://github.com/immortalwrt/immortalwrt/blob/openwrt-21.02/LICENSES/GPL-3.0).
|
||||
```bash
|
||||
sudo apt-get update -y
|
||||
sudo apt-get full-upgrade -y
|
||||
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
|
||||
bzip2 ccache cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext git git-core gperf haveged \
|
||||
help2man intltool lib32gcc1 libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev \
|
||||
libmpfr-dev libncurses5-dev libncurses5-dev libreadline-dev libssl-dev libtool libz-dev 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
|
||||
```
|
||||
</details>
|
||||
- Method 2:
|
||||
```bash
|
||||
curl -s https://build-scripts.project-openwrt.eu.org/init_build_environment.sh | sudo bash
|
||||
```
|
||||
|
||||
- You can also download and use prebuilt container directly:
|
||||
```bash
|
||||
docker pull immortalwrt/opde:base
|
||||
# docker run --rm -it immortalwrt/opde:base
|
||||
```
|
||||
|
||||
Note:
|
||||
- For the for love of god please do __not__ use ROOT user to build your image.
|
||||
- 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 are required, please see [Build system setup WSL](https://openwrt.org/docs/guide-developer/build-system/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](https://openwrt.org/docs/guide-developer/build-system/buildroot.exigence.macosx) documentation.
|
||||
- As you're building ImmortalWrt, patching or disabling UPX tools is also required.
|
||||
- For more details, please see [Build system setup](https://openwrt.org/docs/guide-developer/build-system/install-buildsystem) documentation.
|
||||
|
||||
### Quickstart
|
||||
- Method 1:
|
||||
1. Run `git clone -b <branch> --single-branch 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.
|
||||
|
||||
- Method 2:
|
||||
<details>
|
||||
<summary>Build image via OPDE</summary>
|
||||
|
||||
- For Linux User:
|
||||
```bash
|
||||
git clone -b master --single-branch https://github.com/immortalwrt/immortalwrt && cd immortalwrt
|
||||
docker run --rm -it \
|
||||
-v $PWD:/openwrt \
|
||||
immortalwrt/opde:base zsh
|
||||
./scripts/feeds update -a && ./scripts/feeds install -a
|
||||
```
|
||||
|
||||
- For Windows User:
|
||||
1. Create a volume 'immortalwrt' and clone ImmortalWrt source into volume.
|
||||
```bash
|
||||
docker run --rm -it -v immortalwrt:/openwrt immortalwrt/opde:base git clone -b master --single-branch https://github.com/immortalwrt/immortalwrt .
|
||||
```
|
||||
2. Enter docker container and update feeds.
|
||||
```bash
|
||||
docker run --rm -it -v immortalwrt:/openwrt immortalwrt/opde:base
|
||||
./scripts/feeds update -a && ./scripts/feeds install -a
|
||||
```
|
||||
- Tips: ImmortalWrt source code can not be cloned into NTFS filesystem (symbol link problem during compilation), but docker volume is fine.
|
||||
|
||||
- Proxy Support:
|
||||
```bash
|
||||
docker run --rm -it \
|
||||
-e all_proxy=http://example.com:1081 \
|
||||
-e http_proxy=http://example.com:1081 \
|
||||
-e https_proxy=http://example.com:1081 \
|
||||
-e ALL_PROXY=http://example.com:1081 \
|
||||
-e HTTP_PROXY=http://example.com:1081 \
|
||||
-e HTTPS_PROXY=http://example.com:1081 \
|
||||
-v $PWD:/openwrt \
|
||||
immortalwrt/opde:base zsh
|
||||
```
|
||||
|
||||
> Recommand `http` rather `socks5` protocol
|
||||
>
|
||||
> IP can not be `localhost` or `127.0.0.1`
|
||||
|
||||
- For Windows User, binary is still in volume. It can be copied to outside via followed command:
|
||||
```bash
|
||||
docker run --rm -v <D:\path\to\dir>:/dst -v openwrt:/openwrt -w /dst immortalwrt:base cp /openwrt/bin /dst
|
||||
```
|
||||
> Make sure `D:\path]to\dir` has been appended in [File Sharing](https://docs.docker.com/docker-for-windows/#file-sharing).
|
||||
|
||||
</details>
|
||||
|
||||
### 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](https://github.com/immortalwrt/luci): Modern and modular interface to control the device via a web browser.
|
||||
- [ImmortalWrt Packages](https://github.com/immortalwrt/packages): Community repository of ported packages.
|
||||
- [OpenWrt Routing](https://github.com/openwrt/routing): Packages specifically focused on (mesh) routing.
|
||||
- [CONTRIBUTED.md](https://github.com/immortalwrt/immortalwrt/blob/master/CONTRIBUTED.md): the 3rd-party packages we introduced.
|
||||
|
||||
## Support Information
|
||||
For a list of supported devices see the [OpenWrt Hardware Database](https://openwrt.org/supported_devices)
|
||||
### Documentation
|
||||
- [Quick Start Guide](https://openwrt.org/docs/guide-quick-start/start)
|
||||
- [User Guide](https://openwrt.org/docs/guide-user/start)
|
||||
- [Developer Documentation](https://openwrt.org/docs/guide-developer/start)
|
||||
- [Technical Reference](https://openwrt.org/docs/techref/start)
|
||||
|
||||
### Support Community
|
||||
- Support Chat: group [@ctcgfw_openwrt_discuss](https://t.me/ctcgfw_openwrt_discuss) on [Telegram](https://telegram.org/).
|
||||
|
||||
## Sponsors
|
||||
[![Dler Cloud](https://user-images.githubusercontent.com/22235437/111103249-f9ec6e00-8588-11eb-9bfc-67cc55574555.png)](https://dlercloud.com/)
|
||||
|
||||
## License
|
||||
ImmortalWrt is licensed under [GPL-3.0-only](https://spdx.org/licenses/GPL-3.0-only.html).
|
||||
|
Loading…
x
Reference in New Issue
Block a user