友情提示,文章配合以下两期视频食用更佳:
全文行文结构预览:
|一、OpenWrt项目与固件杂谈
|—-|(一)、OpenWrt功能示意
|—-|(二)、OpenWrt起源
|—-|(三)、OpenWrt官网不完全使用指南
|—-|(四)、三大延续:lienol、lean、immortalwrt
|—-|(五)、无需编译、开箱即用的固件推荐
|—-|(六)、固件文件格式区别
|二、实现方法推荐与固件安装方法
|—-|(一)、树莓派/r2s等设备的固件安装
|—-|(二)、旧电脑/小主机的固件安装
|—-|(三)、预刷OpenWrt的路由器的固件安装
|—-|(四)、家用路由器刷机
|三、其他
以下正题:
一、OpenWrt项目与固件杂谈
(一)、OpenWrt功能示意
(二)、OpenWrt起源
2002年底,Linksys公司推出一款叫WRT-54G的路由器,大受欢迎,不过WRT-54G使用的是Linux操作系统,软件核心是基于GPL许可开发的,需遵循开源标准。Linksys公司在2003年开放了源代码,在2004年1月就出现了第一个基于Linksys源码、以OpenWRT命名的开源路由系统。另外,后续的LEDE是2016年产生的 OpenWRT 的一个分支,openwrt和LEDE这两者于2018年1月合并为一。
值得一提的是,WRT-54G作为历史上第一个将路由器带进开源时代的产品,销量不错,而且这个系列成为了一个常青树,现在市场上还在售着WRT系列的路由器,外观一脉相承。
(三)、OpenWrt官网不完全使用指南
官网地址:https://openwrt.org
官网功能:阅读官方的项目介绍、权威问答,查看支持的设备列表和设备信息,以及下载官方编译的官方固件。
设备支持列表入口有三,侧重点不同,但是总体而言功能有点类似,都可以通过设备品牌、型号进行搜索。
以上三个入口都可以通过设备型号或cpu找到自己想要的固件。
以红米ac2100为例,设备cpu是联发科MT7621,后续在别的地方看到适用于联发科MT7621的固件,理论上也可以用在这个红米ac2100路由器上。反过来,如果你的设备品牌型号在OpenWrt官网的列表中找不到(说的就是你,竞斗云2.0),但是你知道设备的cpu(ipq40xx),通过搜索在列表中找到了这个cpu(ipq40xx),就知道理论上OpenWrt是支持这个设备的,找到支持这个芯片的固件下载使用即可。
(四)、三大延续:lienol、lean、immortalwrt
lienol、lean、immortalwrt三个项目都是基于OpenWrt官方项目进行修改和定制的开源项目,拥有更好的本地化适配、加入了各种官方软件列表中没有但是国内环境中可能会用到的软件功能(这也许是很多人使用OpenWrt的初衷?)但是客观的说,正是这些项目的拥有者、千千万万参与的协作者,推动了OpenWrt这类的项目在国内的普及和相关社区的繁荣发展。致敬!
三个项目打卡观光地址:
lienol项目::https://github.com/Lienol/openwrt
lean大项目:https://github.com/coolsnowwolf/lede
immortalwrt:https://github.com/immortalwrt/immortalwrt
(五)、无需编译、开箱即用的固件推荐:
编译固然正确,但是有一定门槛。入门可以使用他人编译好、开箱即用的固件开始进行尝试。推荐宝藏博主小苏的两个自动编译固件的项目:OpenWrt-Rpi与OpenWrt-Buildbot项目。
1、如果你的设备是:x86平台、树莓派、r2s为代表的Rockchip平台、竞斗云为代表的ipq40xx平台的其中一种,请移步:OpenWrt-Rpi项目
进入后根据设备选择下载链接:https://doc.openwrt.cc/2-OpenWrt-Rpi/1-Download/
2、如果你的设备归属于arm/aarch64/x86三大平台之一,或者想要纯净、高度客制化(后续自行安装软件),请移步:OpenWrt-BuildBot项目
查看芯片选择对应的固件下载链接:https://doc.openwrt.cc/3-OpenWrt-Buildbot/1-Download/
ps:小苏项目文档:https://doc.openwrt.cc
更多信息介绍(博客):https://mlapp.cn/369.html
另外根据上述知识点,可以通过官网列表查看设备的cpu和平台:https://openwrt.org/zh/toh/views/toh_fwdownload
部分国内的路由器设备在官网中无法找到设备,则需自行百度查找。
(六)、固件文件格式区别
(以下转载自:https://mlapp.cn/1004.html,已经作者同意。可点击进入原文查看更多内容)
1、固件文件名中带有 ext4 字样的文件为搭载 ext4 文件系统固件,ext4 格式的固件更适合熟悉 Linux 系统的用户使用,在 Linux 下可以比较方便地调整 ext4 分区的大小;
2、固件文件名中带有 squashfs 字样的文件为搭载 squashfs 文件系统固件,而 squashfs 格式的固件适用于 “不折腾” 的用户,其优点是可以比较方便地进行系统还原,哪怕你一不小心玩坏固件,只要还能进入控制面板或 SSH,就可以很方便地进行 “系统还原操作”。
3、固件文件名中带有 factory 字样的文件为全新安装 OpenWrt 所用的固件,推荐在全新安装 OpenWrt 时解压 gz 文件刷入 SD 卡或硬盘。
4、固件文件名中带有 sysupgrade 字样的文件为升级 OpenWrt 所用的固件,无需解压 gz 文件,可直接在 Luci 面板中升级。
例如:
openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz 为树莓派 4B ext4 格式全新安装固件;
openwrt-bcm27xx-bcm2711-rpi-4-squashfs-sysupgrade.img.gz 为树莓派 4B squashfs 格式升级专用固件。
另外,有一些设备全新安装和升级专用固件是合二为一的,也就是说全新安装和升级所需文件为同一文件。
二、实现方法推荐与固件安装方法
对应视频中讲到的四种实现方法(最后一种不太推荐,也未进行过多说明,慎重选择)。
(一)、树莓派/r2s等设备的固件安装
1、以 SD 卡为存储介质的设备,例如树莓派、友善r2s等
(以下转载自:https://doc.openwrt.cc/1-General/1-Install-Upgrade/,已经作者同意。可点击进入原文查看更多内容)
从 软件源站 下载 「存储还原固件」至电脑;
将 SD 卡插入电脑,使用 Win32 Disk Imager 或者 Etcher 将「存储还原固件」 写入 SD 卡;
从 软件源站 下载 OpenWrt 固件;
无需弹出 SD 卡,使用 Win32 Disk Imager 或者 Etcher 将 OpenWrt 固件刷入 SD 卡即可。
2、在Docker中运行OpenWrt旁路网关
该方法一般适用于可运行docker的设备,包括但不限于:电脑、x86小主机、树莓派、r2s等。优点是可使OpenWrt 与宿主机自身的常用系统共存,实现一个设备多个功能用途;同时旁路网关的接入,对原有网络环境的破坏及影响较小,可以实现“无感升级”,丝般顺滑。
旁路由的网络拓扑示意:
(二)、旧电脑/小主机的固件安装
1、物理机安装及初始化配置
详见Brave大佬视频:(已经作者同意)
Brave大佬讲的非常详尽又深入浅出了,所以我也不重复造轮子,大家自行观看学习吧。
(三)、预刷OpenWrt的路由器的固件安装
既然是预刷了系统,这种直接用其实也是可以的。但是商家预刷的OpenWrt固件说实话不一定透明可靠,可以在OpenWrt系统的「LuCI – 系统 – 备份/升级 – 刷写新的固件」中上传 sysupgrade固件的gz压缩包,将商家预刷的OpenWrt升级为自己信得过的OpenWrt固件,升级前请去掉 「保留配置」 的勾选;或者如果是OpBoot支持的路由器设备,可以进入OpBoot,上传ubi固件以全新安装OpenWrt。完成后即可放心使用。
(四)、路由器刷机
这个方法也就是拿出自己手头拥有的路由器,查看OpenWrt官网设备列表中,是否支持这个路由器或者这个CPU,如果可以,再找到适配于这个CPU的固件,经过一系列的骚操作,把原厂固件替换为自己想要的OpenWrt固件。不过,每个路由器设备的固件刷入方式各不相同,这种方式折腾起来比较费力。不是很推荐,暂不展开。
三、其他
1、最后有同学在问第一期视频中提到的频道大纲脑图。事先说明这也是拍脑袋出来的,目前尽量按照这个思路再走,如果你对这些题目有兴趣,麻烦记得关注+视频一键三连吧,这是我坚持的最大的动力。
2、还有一个大坑。没错,就是编译。编译可以讲的也挺多,先给自己留个大坑,后续再讲,下次一定!
原文链接:https://www.bilibili.com/read/cv16071219/