windows openwrt编译

老刘

Windows 下编译 OpenWrt 全攻略:从零到定制固件

对于很多网络爱好者和开发者来说,OpenWrt 是一个极具吸引力的开源路由器系统。它能让普通路由器变身为一台功能强大的网络设备,支持广告过滤、多拨、科学上网等高级功能。但官方固件可能不包含你需要的功能,这时候自己编译就成了最佳选择。今天,我就以一名老技术员的身份,手把手教你在 Windows 系统上完成 OpenWrt 的编译,即便是电脑新手也能跟着做出来。

一、编译环境搭建:为 Windows 装上“Linux 心脏”

OpenWrt 的编译工具链主要基于 Linux,所以我们需要在 Windows 上创建一个 Linux 编译环境。目前最主流、问题最少的方法是使用 WSL2

1. 安装 WSL2 与 Ubuntu 系统

这是最关键的一步,环境搭好了,后面就顺利了一半。

第一步:启用 Windows 功能

  1. 在 Windows 搜索框输入“启用或关闭 Windows 功能”,打开它。
  2. 在弹出来的窗口里,找到并勾选 “适用于 Linux 的 Windows 子系统”虚拟机平台” 这两项。
  3. 点击“确定”,系统会应用更改,然后根据提示重启电脑
windows openwrt编译

第二步:安装 WSL2 内核更新包 重启后,去微软官网下载一个叫 “WSL2 Linux 内核更新包” 的小程序。下载完直接双击安装,一直点“下一步”就行。

第三步:安装 Ubuntu 系统

  1. 打开 Windows 自带的 Microsoft Store(微软商店)。
  2. 在商店里搜索 “Ubuntu”,选择版本(推荐 Ubuntu 22.04 LTS,比较稳定),点击“获取”进行安装。这个过程就是下载一个Linux系统到你的Windows里,但别担心,它和你的Windows是分开的。

第四步:设置 WSL2 为默认版本并初始化 Ubuntu

  1. 管理员身份打开 Windows 的“命令提示符”或“PowerShell”。(在开始菜单里搜索“cmd”或“PowerShell”,右键选择“以管理员身份运行”)。
  2. 输入以下命令并回车,将 WSL 的默认版本设置为 2:
    wsl --set-default-version 2
  3. 回到开始菜单,找到刚刚安装好的“Ubuntu”并打开。第一次启动会需要几分钟来安装,完成后会让你设置一个用户名密码。这个用户名密码是 Ubuntu 系统专用的,记住它,后面输入密码时屏幕上不会显示*号,正常输入后回车即可。

2. 更换软件源并安装编译依赖

Ubuntu 自带的软件服务器在国外,下载很慢。我们需要把它换成国内的镜像源,比如阿里云或清华的。

第一步:备份并更新软件源 在打开的 Ubuntu 窗口里,依次输入下面的命令(每输入一行,按一次回车):

# 备份原来的源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 使用 sed 命令一键替换为阿里云源 (适用于 Ubuntu 22.04)
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

# 更新软件包列表
sudo apt update

如果上面的 sed 命令执行后报错或你觉得不放心,也可以用图形化编辑器 nano 手动修改文件,但对于新手,上面这个命令成功率很高。

第二步:安装编译所需的全部工具 这是一条很长的命令,作用是安装编译 OpenWrt 需要的所有软件包。一次性复制粘贴进去执行即可:

sudo apt install -y build-essential ccache ecj fastjar file g++ gawk gettext git java-propose-classpath libelf-dev libncurses5-dev libncursesw5-dev libssl-dev python3 python2.7-dev python3-pip python3-setuptools python3-dev rsync subversion swig time xsltproc zlib1g-dev

这个过程会下载几百兆的文件,取决于你的网速,请耐心等待完成。

二、获取 OpenWrt 源码并开始配置

环境准备好,我们就可以“获取原材料”了。

第一步:拉取 OpenWrt 源码 OpenWrt 源码就像一棵大树,有主干(开发版)和许多分支(稳定版)。新手建议从稳定分支开始,比如 openwrt-22.03

在 Ubuntu 里继续输入:

# 先回到家目录
cd ~
# 使用 git 克隆 OpenWrt 的官方源码仓库
git clone https://github.com/openwrt/openwrt.git
# 进入源码目录
cd openwrt
# 切换到 22.03 稳定分支
git checkout v22.03.5

第二步:更新和安装 feeds OpenWrt 的很多功能是以“软件包”形式存在的,它们存放在另一个叫 feeds 的列表中,需要更新并安装。

# 更新 feeds 列表
./scripts/feeds update -a
# 安装所有 feeds 中的包到配置菜单
./scripts/feeds install -a

第三步:进行编译配置(核心环节) 这是决定你的固件包含什么功能的一步。我们使用一个图形化的菜单来配置。

make menuconfig

执行这个命令后,会进入一个蓝底白字的文本图形界面。在这个界面里:

  • 使用 上下箭头键 移动光标。
  • 使用 回车键 进入子菜单或选中/取消选中项目。
  • Y 键:将这个功能编译进固件(固件体积会变大)。
  • M 键:将这个功能编译成独立的软件包(固件里不包含,但之后可以手动安装)。
  • N 键:不编译此功能。
  • 空格键 可以在 Y/M/N 之间切换。
  • ESC 键两次:返回上一级菜单。
  • 移动光标到 <Save> 并回车保存,再到 <Exit> 回车退出。

对于新手,必须关注这几个关键选项:

  1. Target System:选择你的路由器CPU架构。比如常见的老款联发科MT7621芯片,就选 MediaTek Ralink MIPS -> MT7621
  2. Subtarget:选择具体的型号变体,比如 Default 或带 MT7603/MT7612 等无线芯片的。
  3. Target Profile:选择具体的路由器型号!这是最重要的一步,一定要选对,比如 Xiaomi Mi Router 3G。如果列表里没有你的 exact 型号,可以选一个配置最接近的。
  4. LuCI:这是网页管理界面,必须选上。进入 LuCI -> Collections,按 Y 选中 luci
  5. 常用软件包:在 LuCI -> Applications 里,可以按 MY 选择你需要的插件,如 luci-app-upnp(UPnP自动端口映射)、luci-app-wireguard(VPN)等。

如何查找自己路由器的配置? 去 OpenWrt 官网的硬件支持页面,搜索你的路由器型号,页面会明确告诉你对应的 TargetSubtargetProfile 名称。

三、开始编译与获取固件

配置保存好后,就可以开始漫长的编译了。编译时间取决于电脑CPU性能,从半小时到几小时不等。

第一步:开始编译 输入以下命令,-j 后面的数字代表使用几个CPU核心进行编译,一般是你的CPU核心数+1。比如4核CPU可以用 -j5

make -j5 download V=s

这条命令会先下载编译所需的所有源代码(dl库),确保网络通畅。

make -j5 V=s

这条是真正的编译命令。V=s 表示输出详细的编译信息,方便出错时排查。第一次编译会非常久,因为要编译整个工具链。你可以去喝杯咖啡,看看剧。

第二步:处理常见编译错误

  • 下载失败:编译过程中如果某个包下载失败,可以按 Ctrl+C 中断,重新执行 make download 或单独下载该包放到 dl/ 目录。
  • 依赖错误:通常是环境问题,确保第一步的所有依赖包都已安装。
  • 内存不足:WSL2 默认内存可能不够,可以在用户目录(C:\Users\你的用户名\)下创建 .wslconfig 文件,写入以下内容后重启 WSL(在 PowerShell 输入 wsl --shutdown):
    [wsl2]
    memory=4GB # 分配4GB内存,可根据你电脑情况调整
    processors=2 # 分配2个CPU核心

第三步:找到编译好的固件 编译成功后,生成的固件文件在 bin/targets/ 目录下。根据你选择的架构,路径会有所不同。例如:

~/openwrt/bin/targets/ramips/mt7621/openwrt-22.03.5-ramips-mt7621-xiaomi_mir3g-squashfs-sysupgrade.bin

这个 .bin 文件就是你千辛万苦编译出来的定制固件!

四、刷入固件与后续建议

  1. 刷机:将固件通过路由器原厂升级页面或 Breed/Uboot 等引导程序刷入你的路由器。刷机有风险,务必确认固件型号完全匹配!
  2. 首次登录:刷机成功后,用网线连接路由器,浏览器访问 192.168.1.1,设置密码即可登录 LuCI 管理界面。

给新手的终极建议:

  • 第一次编译,强烈建议在 make menuconfig 里除了选对路由器型号和 LuCI,其他所有额外插件都先不要选(按 N),确保能编译出一个最精简可用的固件。 成功一次后,你就有信心了,下次再慢慢添加功能。
  • 编译过程会占用大量C盘空间(约20-30GB),请确保C盘有足够空间。
  • 善用 make clean(清理编译文件,保留配置和dl库)和 make dirclean(更彻底的清理)命令来进行下一次编译。

自己编译 OpenWrt 就像为你的路由器量身定制一件铠甲,虽然过程有些曲折,但成功后的成就感和完全掌控设备的自由是无与伦比的。遇到问题不要慌,多查阅 OpenWrt 官方论坛和 Wiki,大部分坑都有前人踩过。祝你一次编译成功!

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,9人围观)

还没有评论,来说两句吧...

目录[+]