环境搭建

基础环境

1、VMware虚拟机
2、Ubuntu 22.04.2 LTS
Ubuntu官网下载

Ubuntu系统更新

1
2
sudo apt update -y
sudo apt full-upgrade -y

安装编译依赖

1
sudo apt install build-essential clang flex g++ gawk gcc-multilib gettext git libncurses5-dev libssl-dev python3-distutils rsync unzip zlib1g-dev file wget

首次编译

编译在普通用户模式下编译,在root模式下会有蜜汁问题
OpenWrt源码有不同的分支,它们都有属于自己的特色,具体差异不在这赘述
1.OpenWrt官方
2.LEDE
3.Lienol
4.immortalwrt

这里以LEDE源码为例

拉取LEDE 源码

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

进入lede

1
cd lede

添加插件源

之所以选lede是因为大佬默认已经集成了很多常用插件,但是如果有小众需求可以自己将插件源添加进来,在lede根目录执行

1
vim feeds.conf.default


将需要启用的插件源去掉“#”即可,也可自行加入第三方的插件源

插件更新与安装

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

个性化配置(可选,非必要)

1.修改默认IP为 10.1.1.1

1
sed -i 's/192.168.1.1/10.1.1.1/g' package/base-files/files/bin/config_generate

2.修改默认主机名为 ABCD

1
sed -i '/uci commit system/i\uci set system.@system[0].hostname='ABCD'' package/lean/default-settings/files/zzz-default-settings

3.修改默认主题

1
sed -i "s/luci-theme-bootstrap/luci-theme-argon/g" feeds/luci/collections/luci/Makefile

生成配置

在lede根目录执行make menuconfig进入编译菜单

1
make menuconfig

常用菜单说明

1.选择 CPU 类型
Target System (x86) --> # 软路由选择 x86,硬路由根据型号厂家自行选择
Subtarget (x86_64) --> # CPU 子选项
Target Profile (Generic x86/64) --> # 厂家具体型号
2.设置镜像编译的格式(squashfs,ext4
Target Images --> # 默认 squashfs
3.添加较多插件时,为了避免空间不足,建议修改下面两项默认大小(x86/64)
Target Images --> (16) Kernel partition size (in MB) # 默认是16,建议修改为256
Target Images --> (400) Root filesystem partition size (in MB) # 默认是400,建议修改为512
4.开启 IPv6 支持
Extra packages --> ipv6helper(选定这个后,下面几项会自动选择)
Network --> odhcp6c
Network --> odhcpd-ipv6only
LuCI --> Protocols --> luci-proto-ipv6
LuCI --> Protocols --> luci-proto-ppp
5.开启适用于 VMware 的 VMware Tools
Utilities --> open-vm-tools
Utilities --> open-vm-tools-fuse
6.选择插件
LuCI --> Applications # 根据需要选择,* 代表编入固件,M 表示编译成模块或者IPK包,为空表示不编译
7.选择主题
LuCI --> Themes # 选择喜欢的主题,可以选多个

插件说明

插件对照表

下载编译所需插件

1
make download -j8

检查文件完整性

1.查找文件小于1k的文件

1
find dl -size -1024c -exec ls -l {} \;

2.删除小于1k的文件

1
find dl -size -1024c -exec rm -f {} \;

3.继续下载、检查步骤

编译

1
make V=s -j1

V=s表示开启详情,-j1表示编译线程,可根据实际调整
编译完成默认的编译输出路径为bin/targets,默认密码是password

再次编译

拉取最新lede源码

1
2
cd lede
git pull

更新 feeds 源中的插件

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

清除上一次编译文件和目录(可选,非必要)

1.源码较大更新,删除 /bin 和 /build_dir 目录中的文件

1
make clean

2.更换架构,删除 /bin 和 /build_dir 目录的中的文件(make clean),以及 /staging_dir、/toolchain、/tmp 和 /logs 中的文件

1
make dirclean

3.完全清理,回到刚git clone初始状态

1
make distclean

如果需要重生成新配置

1.清除临时文件和编译配置文件

1
rm -rf ./tmp && rm -rf .config

2.重复执行2.7-2.9节内容

至此教程结束~