目前OpenWrt官方最新的固件是23.05.5, 这是9月28日更新的,整个社区还是非常活跃。
官方固件镜像下载地址是: https://downloads.openwrt.org/releases/23.05.5/targets/x86/64/
这里23.05.5 是固件的版本 :targets是归档的镜像文件 ,x86/64 表示x86架构,64位系统。各位可以根据自己的硬件来选择。
对于一些传统路由器来刷机的,OpenWrt提供了firmware selector 工具来选择。不过这个需要严格按照给出的固件文件来进行更新,比如刷写的顺序等。不过这个固件提供的功能也只有最精简的,如果需要更多插件,需要自己去找。
前面写了篇国内怎么搭建测试环境,参考win11下搭建openwrt学习环境,今天说下这些固件,这些包怎么来。
固件分类
这里对这官网提供的固件文件,简单写下各个文件的作用:
固件文件 | 文件说明 |
---|---|
generic-ext4-combined-efi.img.gz | ext4文件格式,带efi引导的镜像,可扩展磁盘格式 |
generic-ext4-combined.img.gz | ext4文件格式,非efi引导的镜像,可扩展磁盘格式 |
generic-ext4-rootfs.img.gz | rootfs的镜像,不带引导,可自行定义用grub或者syslinux来引导。Ext4格式 |
generic-kernel.bin | 单一的内核文件 |
generic-squashfs-combined-efi.img.gz | squashfs格式的,带efi引导的镜像,可以一键恢复出厂设置 |
generic-squashfs-combined.img.gz | squashfs格式的,非efi引导的镜像,恢复出厂设置 |
generic-squashfs-rootfs.img.gz | rootfs的镜像,不带引导,可自行定义用grub或者syslinux来引导。sqarshfs格式 |
rootfs.tar.gz | rootfs不带引导 |
不同的架构可能支持的文件不一样,根据实际情况选择即可。
另外,这里说明一下名词中出现的一些名词的解释:
- kernel:内置最简文件系统的Linux内核,适用于首次安装或故障恢复
- sysupgrade:从本来就是openwrt的固件基础上升级,或者无刷机引导限制的机器上直接刷入此格式文件
- factory:用于从设备的原厂固件刷入factory,再刷入breed之类不死使用
- ext4 :ext4文件系统,可以扩展磁盘空间大小
- squashfs :可以使用 重置功能(恢复出厂设置)
- efi : efi引导,非BIOS引导(优先使用efi固件,无法启动时再换无efi固件)
- rootfs :不带引导,可自行定义用grub或者syslinux来引导
- combined :表示带引导
- .img :镜像文件格式,img一般用于物理机
以上是官网的固件的解释,另外还有一种就是一些发烧友自己编译的固件。这些在一些论坛上都能找到,大家都存放在网盘里面,烧录的步骤也很详细。不过这类固件都是作者根据需要来编译的,可能有很多是自己不需要的, 额外还造成了资源浪费。
怎么选择这些固件,说下我这里的思路
- 最简单的,选择squashfs,一键还原,还是非常好用的
- 是否选择efi,看你的固件的支持。
- 如果自己对linux的一些引导,内核等都掌握比较好,那就随便选了,想怎么折腾怎么折腾。
国内如何加速下载
找到固件之后,将其下载到本地,在对你的硬件进行升级,这是每一个人的做法。但是openwrt官网的下载太慢了,我们可以选择国内的加速站来下载。
国内的包括腾讯阿里等提供的镜像源都可以下载到对应的固件,另外还有一些搞笑,具体地址如下:腾讯:https://mirrors.cloud.tencent.com/openwrt/ 阿里:https://mirrors.aliyun.com/openwrt/releases/ 清华源:https://mirrors.tuna.tsinghua.edu.cn/openwrt 北大源:https://mirrors.pku.edu.cn/openwrt
这里我自己感觉用高校的源速度会快些,不知道是我网络的原因还是软件源做了限速。
opkg软件包国内源
前面说了怎么在国内找到OpenWrt的固件。安装完成之后,还需要安装各种插件,各种包,比如中文语言包。OpenWrt采用okpg来管理各种安装包。登录页面,系统 -- 软件包 可以到到管理的页面。
默认的是从官网的去下载,但是可以替换为国内的源。点击配置opkg,可以编辑对应的配置,其中 opkg.conf 用于全局配置——这个一般不修改 customfeeds.conf 用于自定义仓库——这个在有自定义的时候可以修改。比如我们自己编译或者额外需要的。但是我们这里是需要提供OpenWrt对应版本下自带的软件包为国内源。我们可以直接修改/etc/opkg/distfeeds.conf部分。比如采用阿里源,按照如下贴入到框中。注意:架构和版本需要同你的路由器匹配。
src/gz openwrt_core https://mirrors.aliyun.com/openwrt/releases/23.05.4/targets/x86/64/packages src/gz openwrt_base https://mirrors.aliyun.com/openwrt/releases/23.05.4/packages/x86_64/base src/gz openwrt_luci https://mirrors.aliyun.com/openwrt/releases/23.05.4/packages/x86_64/luci src/gz openwrt_packages https://mirrors.aliyun.com/openwrt/releases/23.05.4/packages/x86_64/packages src/gz openwrt_routing https://mirrors.aliyun.com/openwrt/releases/23.05.4/packages/x86_64/routing src/gz openwrt_telephony https://mirrors.aliyun.com/openwrt/releases/23.05.4/packages/x86_64/telephony
主要分为6个部分:openwrt_core 、openwrt_base、openwrt_luci 、openwrt_packages 、openwrt_routing 和openwrt_telephony 。每一个部分官网package下的不同光模块,全部替换完成,点击页面更新列表,即可看到可用的软件,根据需要选择安装即可。
另外也可以通过命令行,参考https://help.mirrors.cernet.edu.cn/openwrt/ 站点(这是很多高校国内源的汇总,我一般用这里的源)的方法,直接替换 登录到路由器,执行替换命令,比如这替换为清华源:
#替换 sed -i 's_https\?://downloads.openwrt.org_https://mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf # 更新 opkg update # 安装某个软件包 opkg install xxx
总结
通过以上方法,可以在国内快速的下载,配置和使用OpenWrt,不过有些地方也需要注意下:
- 官方站点提供的包,可能有些不一定全。比如之前做IPTV融合(参考OpenWrt应用场景:IPTV融合介绍)用的msd_lite在官方仓库就没有。
- 软件包采用okpg来管理,opkg对应的配置文件需要注意。之前我们部署OMNP的时候,也是用okpg去管理,不过那个opkg和这里的是不一样的,需要替换环境变量。
- OpenWrt是为路由器设计,很多信息都是存在内存中,每一个opkg update 后的缓存信息,在断电之后是看不到的,需要重新update才能够看到。