为 360T7 编译 ImmortalWrt 固件

原本使用小米的 AC2100 搭配 N1 作为旁路由,一切正常,后来折腾 IPv6,发现这种环境出现各种问题。比如 YouTube 能打开,但是无法播放视频。 因为我在别的地方使用小米的 AX3600 作为主路由使用一切正常,于是决定在闲鱼买了 360T7,卖家还改了512M 的内存。 可惜卖家刷好的 OpenWrt 固件似乎不太稳定,重启后 WiFi 会断开必须重新连接。 为了找到合适的固件,我在恩山论坛上找到了 uparrow 的这篇帖子:

https://www.right.com.cn/forum/uc_server/data/avatar/000/66/04/06_avatar_middle.jpg

[2023.04.27] 360T7 lede 23.4.1 |IPV6|猫咪|多播|酸奶|Upnp|adguardhome|全千兆

由于官方lede目前没有对360T7进行开源,故移植hanwckf的mt7981的dts和配置到lede的源码,构建出lede版本。

阅读全文

不过作者并没有在固件里加入 passwall,所以我希望自己编译把 passwall 包括进去,同时去掉不需要的软件包。作者的代码在 GitHub 上,基于 hanwckfimmortalwrt-mt798x 项目修改的。

我是在 Windows 11 下安装 WSL 2,在 ubuntu 22.04 LTS 下编译的。

在 PowerShell 下运行这个命令安装:

1
wsl --install

安装完要重启系统。

先关闭 WSL:

1
wsl --shutdown

打开配置文件:

1
notepad "$env:USERPROFILE\.wslconfig"

按照个人需要添加下面的内容:

1
2
3
[wsl2]
memory=10GB  
processors=4

根据网上的说法

使用WSL中的工具时,恰好windows中有同名的,虽然在wsl中设置了PATH,但还是有些会找到windows中的,从而报错。

下面引用修改的方法:

在wsl 的 ubuntu中编辑/etc/wsl.conf,输入:

1
2
3
[interop]
enabled = false
appendWindowsPath = false

在 WSL ubuntu 中使用 echo $PATH 查看 PATH,如果没有 Windows 自己的东西就正常了。

1
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
sudo bash -c "cat << EOF > /etc/apt/sources.list && apt update 
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
EOF"

运行下面的代码:

1
2
3
4
5
6
7
8
9
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
1
2
3
4
5
6
7
git clone https://github.com/uparrows/immortalwrt-mt798x
cd immortalwrt-mt798x
./scripts/feeds update -a
./scripts/feeds install -a
# 对于 mt7981,推荐使用 mt7981-ax3000.config
cp -f defconfig/mt7981-ax3000.config .config
make menuconfig

360T7 是 mt7981 的,所以使用 mt7981-ax3000.config

我选了 ZeroTier 和 passwall 这两个包,其它基本上没有改动。

运行 make V=s 开始编译固件

相关内容