OpenWrt 简介
OpenWrt项目是一个针对嵌入式设备的Linux操作系统。OpenWrt不是一个单一且不可更改的固件,而是提供了具有软件包管理功能的完全可写的文件系统。这使您可以从供应商提供的应用范围和配置中解脱出来,并且让您通过使用适配任何应用的软件包来定制设备。对于开发人员来说,OpenWrt是一个无需围绕它构建完整固件就能开发应用程序的框架; 对于普通用户来说,这意味着拥有了完全定制的能力,能以意想不到的方式使用该设备。
以下是OpenWrt项目链接
OpenWrt 功能
OpenWrt的强大开发团队与社区支持使得OpenWrt的插件基本可以覆盖所需的各个方面了。常用的有
- Docker (拥有Docker基本等于拥有了一切)
- 拥抱世界
- DDNS 动态域名解析
- Frps/Frpc 内网穿透
- Zerotier 内网穿透
- AD Guard Home 去广告
- Smart DNS
- Samba 文件共享
- Home Assistant
- Syncdial 多拨
- MWAN3 均衡负载
- ...
OpenWrt下载&编译
下载
如果不想自己编译专属固件,可以直接去下载大佬们编译好的固件:
- eSir编译的Lean大固件 (仅有X86)
- SuLingGG/OpenWrt-Rpi (x86、树莓派、Rockchip、ipq40xx)
- klever1988/nanopi-openwrt (x86、常见arm平台)
- iStoreOS (x86、常见arm平台)
编译 (以LEDE为例)
编译时需要有科学网络环境
安装依赖
sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 aria2 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
下载源码并进入工作目录
git clone https://github.com/coolsnowwolf/lede
cd lede
添加第三方插件库(可选)
sed -i '$a src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.default
sed -i '$a src-git small https://github.com/kenzok8/small' feeds.conf.default
git pull
添加额外插件(可选)
mkdir ./package/myaddons
git clone [addon_url_1] ./package/myaddons/
git clone [addon_url_2] ./package/myaddons/
git clone [addon_url_3] ./package/myaddons/
...
更新feeds
./scripts/feeds update -a
./scripts/feeds install -a
选择所需要的配置
make menuconfig
- 在
Target System
选择目标平台 - 在
Subtarget
选择目标机型 - 在
Target Profile
选择对应的默认编译配置文件 - 在
Target Images
配置镜像的分区大小、镜像文件的格式等 - 在
LuCI->Applications
选择需要的插件
下载dl库并编译
第一次编译建议使用单线程编译并添加V=s参数,便于出错时排查问题
make download V=s -j1
make V=s -j1
编译完成后在 ./bin/targets
目录下可以找到生成的固件
OpenWrt安装
TF卡版
使用 balenaEtcher
等工具将镜像烧录到TF卡中即可 (balenaEtcher官网)
硬盘安装(通常为x86平台)
硬盘安装通常是在x86平台上。当然也有部分arm板子没有使用TF卡而是使用了emmc存储(如r68s),此处以更常见的x86平台为例演示安装步骤
制作PE盘
准备一个WindowsPE盘,这里使用的是微PE,也可以自行选择其他的PE(如雷电PE、Edgeless等)
- 下载微PE
微PE下载链接 - 安装微PE至U盘
- 右下角选择安装PE到U盘
- 选择准备好的U盘(注意:会抹除U盘里之前的数据,请提前做好备份)
- 右下角选择安装PE到U盘
- 下载写盘工具
physdiskwrite下载链接
选命令行版本,下载解压后得到physdiskwrite.exe
文件 - 将写盘工具和OpenWrt镜像放入U盘
安装OpenWrt
- 进入BIOS将USB启动调到第一位
- 进入PE系统后以管理员身份打开cmd
- 写盘
注意:physdiskwrite.exe
和openwrt.img.gz
的路径和名称要根据自己情况进行修改C:\OpenWrt\physdiskwrite.exe -u C:\OpenWrt\openwrt-N5105-P.img.gz
选择对应的磁盘:输入需要写入的磁盘编号(一般为0号盘)回车,等待写入完成
- 写盘完成后关机、拔掉U盘、开机
OpenWrt基本设置