OpenWrt编译

OpenWrt

OpenWrt WiKi

OpenWrt 官网

LEDE WiKi

编译准备

国内请尽量全局科学上网

安装工具依赖

需要以下工具来编译OpenWrt,软件包名称在发行版之间有所不同。 Build system setup中找到不同发行版上软件包的列表。

  • binutils
  • bzip2
  • diff
  • find
  • flex
  • gawk
  • gcc-6+
  • getopt
  • grep
  • libc-dev
  • libz-dev
  • make4.1+
  • perl
  • python3.6+
  • rsync
  • subversion
  • unzip
  • which

获取源码

原生 OpenWrt:

1
git clone https://github.com/openwrt/openwrt.git

lean OpenWrt(LEDE):

1
git clone https://github.com/coolsnowwolf/lede.git

编译

运行 feeds 获取所有的预定义软件包并且安装

1
2
./scripts/feeds update -a
./scripts/feeds install -a

配置编译,详细参考下一节

1
make menuconfig

下载 dl 库(国内请尽量全局科学上网)

1
make -j8 download V=s

开始编译
-j1 是线程数。第一次编译推荐用单线程

1
make -j1 V=s

编译完成后输出路径: bin/targets

二次编译(更新)

1
2
3
4
5
6
cd lede
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s

若需要重新配置

1
2
3
rm -rf ./tmp && rm -rf .config
make menuconfig
make -j$(($(nproc) + 1)) V=s

配置参考

方向建上下操作纵列,左右操作横列,空格选择,回车进入子菜单,* 代表编入固件,M 表示编译成模块或者IPK包, 不编译

Target System : 系统架构,例: MediaTek Ralink MIPS
Subtarget : 处理器型号,例: MT7621 based boards
Target Profile : 路由器型号,例: Xiaomi Mi Router AC2100

LuCI ---> 3. Applications ---> : 插件
LuCI ---> 4. Themes ---> : 主题,例: <*> luci-theme-argon

配置好后使用左右键选中 < Save > 回车将配置保存到 .config 中,使用 ESC 键退出

自选插件

插件列表

OpenWrt 编译 LuCI -> Applications 添加插件应用说明

添加源码库中未包含的插件

使用插件集合库

在文件 feeds.conf.default 中添加:

feeds.conf.default
1
2
3
4
5
6
7
# kenzok8仓库
src-git kenzo https://github.com/kenzok8/openwrt-packages
# kenzok8的需要安装依赖
src-git small https://github.com/kenzok8/small

# liuran001仓库
src-git liuran001_packages https://github.com/liuran001/openwrt-packages

执行命令获取并安装

1
./scripts/feeds update -a && ./scripts/feeds install -a

单独添加需要的插件

在 github 搜索 luci-app 找到需要的插件,如:rufengsuixing/luci-app-adguardhome

将插件源码 clonepackage 下新建的一个目录中,然后在配置中勾选编译,也可使用插件作者编译完成的在路由器管理界面进行安装,也可通过 ssh 使用 opkg install xxxx 安装,使用 opkg remove xxxx 卸载。

Github Action自动编译

借助 GitHub Actions 的 OpenWrt 在线集成自动编译,可以不要求自己的硬件或系统达到要求即可进行编译。

P3TERX/Actions-OpenWrt

KFERMercer/OpenWrt-CI

编译前自定义IP

修改 package/base-files/files/bin/config_generate 中的 192.168.1.1 的后两位即可

-------------本文结束感谢阅读-------------

欢迎关注我的其它发布渠道