An opensource OpenWrt variant for mainland China users.
Go to file
Michael Pratt cac20a9c21 ath79: add Senao 'failsafe' sysupgrade procedure
Use a similar upgrade method for sysupgrade.bin, like factory.bin,
for Senao boards with the tar.gz OEM upgrade platform,
and 'failsafe' image which is loaded on checksum failure.

This is inspired by the OEM upgrade script /etc/fwupgrade.sh
and the existing platforms for dual-boot Senao boards.

Previously, if the real kernel was damaged or missing
the only way to recover was with UART serial console,
because the OKLI lzma-loader is programmed to halt.

uboot did not detect cases where kernel or rootfs is damaged
and boots OKLI instead of the failsafe image,
because the checksums stored in uboot environment
did not include the real kernel and rootfs space.

Now, the stored checksums include the space for both
the lzma-loader, kernel, and rootfs.
Therefore, these boards are now practically unbrickable.

Also, the factory.bin and sysupgrade.bin are now the same,
except for image metadata.
This allows for flashing OEM image directly from openwrt
as well as flashing openwrt image directly from OEM.

Make 'loader' partition writable so that it can be updated
during a sysupgrade.

tested with
ENS202EXT v1
EAP1200H
EAP350 v1
EAP600
ECB350 v1
ECB600
ENH202 v1

Signed-off-by: Michael Pratt <mcpratt@pm.me>
2021-04-08 23:12:55 +08:00
config treewide: fix spelling 'seperate' -> 'separate' 2021-03-02 22:26:41 +08:00
include kernel: bump 5.10 to 5.10.27 2021-04-04 12:23:06 +08:00
LICENSES LICENSE: sync with upstream 2021-02-16 14:19:09 +08:00
package uboot-envtools: add wrapper scripts for alternate config 2021-04-08 23:10:44 +08:00
scripts Merge Mainline 2021-03-29 18:08:36 +08:00
target ath79: add Senao 'failsafe' sysupgrade procedure 2021-04-08 23:12:55 +08:00
toolchain Merge Mainline 2021-04-06 20:50:55 +08:00
tools firmware-utils: bcm4908img: extract bootfs without padding 2021-04-07 23:13:25 +08:00
.gitattributes fix permisson 2019-08-16 15:09:42 +08:00
.gitignore build: improve ccache support 2021-01-02 12:08:17 +08:00
BSDmakefile build: use SPDX license tags 2021-02-06 12:07:10 +08:00
Config.in build: use SPDX license tags 2021-02-06 12:07:10 +08:00
CONTRIBUTED.md Merge Mainline 2021-03-23 09:29:58 +08:00
COPYING LICENSE: sync with upstream 2021-02-16 14:19:09 +08:00
feeds.conf.default Project ImmortalWrt: update feed urls 2021-02-06 16:53:05 +08:00
Makefile Revert "build: replace which with Bash command built-in" 2021-03-04 12:10:58 +08:00
README.md Merge Mainline 2021-02-16 14:50:17 +08:00
rules.mk build: make sure asm gets built with -DPIC 2021-03-25 23:38:37 +08:00

PROJECT IMMORTALWRT

The Core Source Code of ImmortalWrt

Welcome to our Telegram Group: @ctcgfw_openwrt_discuss.


How to make it

Minimum requirements

Linux with case sensitive
2G DDR2 RAM
2 CPU Cores (AMD64, 1.4Ghz)
25G disk space left
Has access to both ChinaNet & Internet

Install the necessary packages (for Ubuntu user)

sudo apt-get update -y
sudo apt-get full-upgrade -y
sudo apt-get install -y build-essential 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 python python3 python-pip python3-pip python-ply python3-ply haveged lrzsz device-tree-compiler scons antlr3 gperf intltool rsync

For mainland China & Ubuntu(16.04+) user, you may run the following command to setup quickly:

sudo bash -c "bash <(curl -s https://build-scripts.project-openwrt.eu.org/init_build_environment.sh)"

Clone the source

git clone -b openwrt-18.06-k5.4 --single-branch https://github.com/immortalwrt/immortalwrt && cd immortalwrt
./scripts/feeds update -a && ./scripts/feeds install -a

Configure your firmware

make menuconfig

Make it

make -j$(nproc) V=s

Tips

You'd better not use root to make it, or you may be not able to use.
Default login address: 192.168.1.1, username is root and password is password.

Contributed

See CONTRIBUTED.md.

License

GNU General Public License v3.0.