An opensource OpenWrt variant for mainland China users.
Go to file
Sander Vanheule 00ee1498ac kernel: mtdsplit: support ELF loader splitting
To parse the ELF kernel loader, a small ELF parser is used that can
handle both ELF32 or ELF64 class loaders. The splitter assumes that the
kernel is always located before the rootfs, whether it is embedded in
the loader or not. If the kernel is located after the rootfs on the
firmware partition, then the rootfs splitter will include it in the
dynamically created rootfs_data partition and the kernel will be
corrupted.

The kernel image is preferably embedded inside the ELF loader, so the
end of the loader equals the end of the kernel partition. This is due to
the way mtd_find_rootfs_from searches for the the rootfs:
- if the kernel image is embedded in the loader, the appended rootfs may
  follow the loader immediately, within the same erase block.
- if the kernel image is not embedded in the loader, but placed at some
  offset behind the loader (OKLI-style loader), the rootfs must be
  aligned to an erase-block after the loader and kernel image.

In case section header table is empty, determine the elf loader size by
finding the end of the last segment, as defined by the program header
table.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
2020-09-10 17:27:30 +08:00
config ar71xx: drop target 2020-09-06 18:19:14 +08:00
include Merge Mainline 2020-09-06 20:03:11 +08:00
package Merge Mainline 2020-09-08 09:15:47 +08:00
scripts Merge Mainline 2020-09-01 19:06:02 +08:00
target kernel: mtdsplit: support ELF loader splitting 2020-09-10 17:27:30 +08:00
toolchain toolchain: Update GCC 10 to version 10.2.0 2020-09-01 17:37:46 +08:00
tools tools: drop unused upslug2 and wrt350nv2-builder 2020-09-06 18:05:24 +08:00
.gitattributes fix permisson 2019-08-16 15:09:42 +08:00
.gitignore gitignore: ignore patches in root directory 2020-02-25 15:39:25 +08:00
BSDmakefile packages: apply usign padding workarounds to package indexes if needed 2019-08-16 14:48:02 +08:00
Config.in packages: apply usign padding workarounds to package indexes if needed 2019-08-16 14:48:02 +08:00
CONTRIBUTED.md Merge Mainline 2020-08-28 01:59:52 +08:00
feeds.conf.default feeds: switch to github official repo 2020-06-20 12:06:05 +08:00
LICENSE packages: apply usign padding workarounds to package indexes if needed 2019-08-16 14:48:02 +08:00
Makefile Makefile: sync with official source 2020-07-30 23:49:33 +08:00
README.md README: rename branch to openwrt-18.06-k5.4 2020-08-08 13:53:33 +08:00
rules.mk build: fix path to libfakeroot on macOS 2020-09-02 11:31:25 +08:00

PROJECT OPENWRT

The Source Code of OpenWrt-Lean Modified by CTCGFW

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/project-openwrt/openwrt && cd openwrt
./scripts/feeds update -a && ./scripts/feeds install -a

Configure your firmware

make menuconfig

Make it

make -j1 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.