懒人福利飞牛NAS本地编译ImmortalWrt保姆级教学

懒人福利飞牛NAS本地编译ImmortalWrt保姆级教学

编译完成的路径: /home/xiaochen/immortalwrt/bin/targets

代码https://github.com/immortalwrt/immortalwrt

【Debian11下载链接】

构建要求 (Requirements)

要构建此项目,推荐使用 Debian 11 系统。此外,您需要满足以下硬件条件:

  • CPU: 基于 AMD64 架构
  • 内存 (RAM): 至少 4GB
  • 磁盘空间: 至少 25GB 可用空间
  • 网络: 确保互联网访问通畅

编译 ImmortalWrt 需要以下工具链,不同 Linux 发行版的软件包名称可能会有所不同。以下是面向 Debian/Ubuntu 用户的安装示例:

方法一:通过 APT 安装依赖

巴什

1
2
3
4
5
6
7
8
9
10
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 cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext gcc-multilib \
g++-multilib git gnutls-dev gperf haveged help2man intltool lib32gcc-s1 libc6-dev-i386 libelf-dev \
libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses-dev libpython3-dev \
libreadline-dev libssl-dev libtool libyaml-dev libz-dev lld llvm lrzsz mkisofs msmtp nano \
ninja-build p7zip p7zip-full patch pkgconf python3 python3-pip python3-ply python3-docutils \
python3-pyelftools qemu-utils re2c rsync scons squashfs-tools subversion swig texinfo uglifyjs \
upx-ucl unzip vim wget xmlto xxd zlib1g-dev zstd

方法二:使用一键脚本环境配置

巴什

1
sudo bash -c 'bash <(curl -s https://build-scripts.immortalwrt.org/init_build_environment.sh)'

注意事项 (Note):

  • 权限警告: 所有操作请使用普通用户权限执行,切勿使用 root 用户,也不要加 sudo
  • CPU 架构: 使用其他架构的 CPU 理论上也可以编译 ImmortalWrt,但这需要更多额外的代码调整——我们对此不提供任何保证。
  • 路径规范: 您的系统 PATH 环境变量或工作目录路径中,绝不能包含空格或非 ASCII 字符(如中文字符)。
  • WSL 用户: 如果您使用的是 Windows Subsystem for Linux (WSL),则必须从 PATH 中移除 Windows 系统文件夹,详情请参阅“构建系统设置 WSL”文档。
  • macOS 用户: 不推荐使用 macOS 作为宿主编译系统。我们对此不提供任何保证。您可以从“构建系统设置 macOS”文档中获取相关提示。
  • 更多详情,请参阅“构建系统设置”文档。

快速上手 (Quickstart)

  1. 克隆源码: 运行以下命令克隆源代码(请将 <branch> 替换为您想要编译的分支,例如 masteropenwrt-23.05):Bashgit clone -b <branch> --single-branch --filter=blob:none https://github.com/immortalwrt/immortalwrt
  2. 进入目录: 运行以下命令进入源码目录:Bashcd immortalwrt
  3. 更新软件源 (Feeds): 运行以下命令,获取 feeds.conf / feeds.conf.default 中定义的所有最新软件包:./scripts/feeds update -a
  4. 安装软链接: 运行以下命令,将获取到的所有软件包软链接安装到 package/feeds/ 目录下:./scripts/feeds install -a
  5. 配置固件: 运行以下命令,打开配置菜单,选择您需要的工具链、目标系统(路由器型号)以及固件包含的软件包:make menuconfig
  6. 开始编译: 运行以下命令构建您的固件:Bashmake 系统将自动下载所有源代码,构建交叉编译工具链,然后为您的目标系统交叉编译 GNU/Linux 内核以及所有选定的应用程序。

要求和快速入门

要求要使用此项目,建议使用 Debian 11 系统。此外,您需要使用基于 AMD64 架构的 CPU,至少 4GB 内存和 25GB 可用磁盘空间。请确保网络 连接 畅通。

编译 ImmortalWrt 需要以下工具,软件包名称因发行版而异。

  • 以下是针对 Debian/Ubuntu 用户的示例:
    • 方法一:通过 APT 设置依赖项 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 cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext gcc-multilib \ g++-multilib git gnutls-dev gperf haveged help2man intltool lib32gcc-s1 libc6-dev-i386 libelf-dev \ libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses-dev libpython3-dev \ libreadline-dev libssl-dev libtool libyaml-dev libz-dev lld llvm lrzsz mkisofs msmtp nano \ ninja-build p7zip p7zip-full patch pkgconf python3 python3-pip python3-ply python3-docutils \ python3-pyelftools qemu-utils re2c rsync scons squashfs-tools subversion swig texinfo uglifyjs \ upx-ucl unzip vim wget xmlto xxd zlib1g-dev zstd
    • 方法二:sudo bash -c ‘bash <(curl -s https://build-scripts.immortalwrt.org/init\_build\_environment.sh)’

笔记:

  • 所有操作均以非特权用户身份执行,而非 root 用户,无需使用 sudo。
  • 使用基于其他架构的 CPU 编译 ImmortalWrt 应该没问题,但需要更多技巧——完全不提供任何保证。
  • PATH 环境变量或驱动器上的工作文件夹中不得 包含 空格或非 ASCII 字符。
  • 如果您使用的是适用于 Linux 的 Windows 子系统(或 WSL),则需要从 PATH 中删除 Windows 文件夹,请参阅 WSL 文档中的“构建系统设置”  。
  • 建议使用 macOS 作为主机构建操作系统  。不提供任何担保。您可以从 macOS 构建系统设置 文档中获取相关提示。
  • 更多详情请参阅 构建系统设置 文档。

快速入门1. 运行 git clone -b <branch> --single-branch --filter=blob:none https://github.com/immortalwrt/immortalwrt 以克隆源代码。

  1. 运行 cd immortalwrt 此命令进入源目录。
  2. 运行此命令 ./scripts/feeds update -a 以获取 feeds.conf / feeds.conf.default 中定义的所有最新软件包定义。
  3. 运行此命令 ./scripts/feeds install -a 将所有获取的软件包的符号链接安装到 package/feeds/ 目录中。
  4. 运行程序 make menuconfig 以选择您喜欢的工具链、目标系统和固件包配置。
  5. 运行 make 此命令以构建固件。它将下载所有源代码,构建交叉编译工具链,然后交叉编译 GNU/Linux 内核以及所有选定的应用程序,以适配您的目标系统。
英文插件名 (LuCI -> Applications) 中文/通俗名称 核心功能简介
广告卫兵之家 AdGuard 主页 全网去广告、防追踪 DNS 拦截工具
aria2 Aria2 下载器 高速多线程下载神器
自动重启 自动重启 定时重启路由器释放内存
ddns 动态 DNS 绑定动态公网 IP 到固定域名
Dockerman Docker 管理 路由器的 Docker 容器可视化管理工具
frpc / frps Frp 内网穿透 常见的内网穿透工具 (分为客户端/服务端)
高清空闲 硬盘休眠 让挂载的机械硬盘在不使用时停转,省电保护
模块域名 MosDNS 非常强大的 DNS 转发和防污染工具
mwan3 多线多拨 / 负载均衡 支持多条宽带叠加网速,或单线多拨
qBittorrent qBittorrent 目前最火的 BT/PT 种子下载工具
samba4 Samba 网络共享 在电脑上像访问本地硬盘一样访问路由器 U盘
智能域名系统 SmartDNS 测速并优选最快的 DNS IP,加快网页打开速度
平方米 SQM Qos 控制 改善游戏延迟,防止下载时占用全部带宽
尾鳞 尾鳞 目前非常火的 Mesh VPN 异地组网神器
传播 传播 老牌的 BT/PT 种子下载器
时间 网页终端 直接在网页浏览器里使用 SSH 命令行界面
涡轮加速器 Turbo ACC 网络加速 DNS加速、BBR加速、软硬流控
向上np UPnP 即插即用 改善 P2P 下载速度,提升主机游戏联机 NAT 类型
监视猫 断网自动重启 检测到网络断开时自动重启路由器或光猫
护套 WireGuard 新一代的高性能 VPN 工具
羊毛 网络唤醒 远程开机局域网内的电脑或 NAS
零层 ZeroTier 内网穿透 异地组网,在外网访问家里局域网设备
[1]: https://github.com/zippoyg/immortalwrthttps://github.com/zippoyg/immortalwrt
[up主专用,视频内嵌代码贴在这]