apt update -y
apt full-upgrade -y
apt install ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python3 python3-pyelftools libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev python3-setuptools -y
GUI 界面询问是否启用 AppArmor ,选择 Yes
#从此处开始请勿使用 root 账户执行,否则编译时将会被阻止
git clone https://github.com/openwrt/openwrt.git --branch=openwrt-23.05
cd openwrt
#update feeds
./scripts/feeds update -a
./scripts/feeds install -a
git clone https://github.com/Zxilly/UA2F.git package/UA2F
git clone https://github.com/CHN-Beta/rkp-ipid.git package/rpk-ipid
git clone https://github.com/jerrykuku/luci-theme-argon.git package/luci-theme-argon
git clone https://github.com/jerrykuku/luci-app-argon-config.git package/luci-app-argon-config
git clone https://github.com/lucikap/luci-app-ua2f.git package/luci-app-ua2f
#update feeds
./scripts/feeds update -a
./scripts/feeds install -a
echo "47964456485559d992fe6f536131fc64" > vermagic
nano include/kernel-defaults.mk
找到grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | $(MKHASH) md5 > $(LINUX_DIR)/.vermagic
,将这行用#
注释,下一行加入cp $(TOPDIR)/vermagic $(LINUX_DIR)/.vermagic
nano package/kernel/linux/Makefile
找到STAMP_BUILT:=$(STAMP_BUILT)_$(shell $(SCRIPT_DIR)/kconfig.pl $(LINUX_DIR)/.config | $(MKHASH) md5)
,将这行用#
注释,下一行加入STAMP_BUILT:=$(STAMP_BUILT)_$(shell cat $(LINUX_DIR)/.vermagic)
make menuconfig
GUI 的配置界面中 Target
部分需要按照硬件的实际情况选择
新路由3 的配置如下
Target System => MediaTek Ralink MIPS
Subtarget => MT7621 based boards
Target Profile => D-Team Newifi D2
GUI 配置界面下按/
键可以进入搜索功能
添加 IP-ID 模块
Root -> Kernel modules -> Other modules -> [*] kmod-rkp-ipid
添加 UA2F 模块
Root -> Network -> Routing and Redirection -> [*] ua2f
添加防火墙相关模块
Root -> Network -> Firewall -> [*] iptables-mod-conntrack-extra
[*] iptables-mod-filter
[*] iptables-mod-ipopt
[*] iptables-nft
[*] iptables-mod-u32
Root -> Network -> [*] ipset
添加 LuCI 相关模块
Root -> LuCI -> 1 -> [*] luci
2 -> [*] luci-compat
2 -> Translations -> [*] Chinese Simplified
3 -> [*] luci-app-argon-config
[*] luci-app-store
[*] luci-app-ttyd
[*] luci-app-ua2f
配置完成,保存后退出
开始内核编译配置
make kernel_menuconfig -j$(nproc) V=cs
最后会跳出 GUI 配置界面,需要进行一些配置
Root -> Networking support -> Networking options -> [*] Network packet filtering framework (Netfilter)
-> Core Netfilter Configuration -> [*] Netfilter NFNETLINK interface
[*] Netfilter LOG over NFNETLINK interface
[*] Connection tracking netlink interface
[*] NFQUEUE and NFLOG integration with Connection Tracking
保存后退出
预下载编译所需的资源
make download -j$(nproc) V=cs
编译
如果是使用 wsl 进行编译,最好在编译前将环境变量与 Windows 隔离,以免出现意外错误
make -j$(nproc) V=cs