我用的到底是哪种 OpenWrt:原生、ImmortalWrt、iStoreOS 还是厂商固件
完成后你能确认什么
Section titled “完成后你能确认什么”- 这台设备是原生 OpenWrt、ImmortalWrt、iStoreOS,还是厂商定制固件;
- 发行版、版本、revision、target、架构和硬件型号;
- 包管理器是
apk还是opkg,软件源该用哪一套; - 升级时该找 sysupgrade 镜像还是厂商固件,避免刷错变砖。
先跑三条只读命令
Section titled “先跑三条只读命令”ubus call system boardcat /etc/openwrt_releaseubus call system board 的 release.distribution、release.version、release.target 和 model 是最关键的四个字段。
预期能看到 distribution、version、target、model。
command -v apkcommand -v opkgcat /etc/apk/arch 2>/dev/nullopkg print-architecture 2>/dev/nulluname -a不要按“版本号”猜包管理器:25.12 官方镜像通常用 apk,24.10 用 opkg,但 fork/厂商固件可能不同;以命令是否存在为准。
预期知道是 apk 还是 opkg,以及 CPU 架构。
x86:
cat /sys/class/dmi/id/sys_vendorcat /sys/class/dmi/id/product_namecat /sys/class/dmi/id/board_namecat /sys/class/dmi/id/board_versioncat /sys/class/dmi/id/bios_versionARM/路由器:
cat /tmp/sysinfo/modelcat /tmp/sysinfo/board_namemodel 不是硬件修订;同一个型号可能有不同 revision。刷机前以设备标签、board_name 和厂商下载页为准。
预期型号和 board 名称能对上设备标签。
常见搜索是“ImmortalWrt 和 iStoreOS 有什么区别”“原生 OpenWrt、ImmortalWrt、iStoreOS、厂商固件怎么区分”。先看 distribution、包管理器和软件源,不要只看版本号。
| 字段/现象 | 原生 OpenWrt | ImmortalWrt | iStoreOS | 厂商固件 |
|---|---|---|---|---|
release.distribution |
OpenWrt |
通常 ImmortalWrt |
通常 iStoreOS/厂商标识 |
厂商标识 |
| 软件源 | downloads.openwrt.org |
ImmortalWrt 自己的源 | iStoreOS 自己的源 | 厂商源/应用商店 |
| 包管理器 | apk(25.12)或 opkg(24.10) |
以实际命令为准 | 通常 opkg |
可能没有/被限制 |
| Web UI | LuCI | LuCI + 定制 | iStoreOS 界面 | 厂商界面 |
| 升级镜像 | OpenWrt sysupgrade | ImmortalWrt 对应镜像 | iStoreOS 对应镜像 | 厂商固件 |
| 官方支持 | OpenWrt 社区 | ImmortalWrt 社区 | iStoreOS 社区 | 厂商 |
不要混用:把 OpenWrt 官方源加到 ImmortalWrt/iStoreOS,或把别的型号的 sysupgrade 刷进来;ABI、内核和分区布局都可能不匹配。
为什么不能只看“关于”页面
Section titled “为什么不能只看“关于”页面”- 有些厂商固件会把 LuCI 换皮,但底层不是官方 OpenWrt;
DISTRIB_DESCRIPTION可能被定制,不能单独作为判断依据;- 版本号相同不代表 target/profile 相同;
- 包管理器/软件源才是你装插件时真正要匹配的东西。
以 ubus call system board + /etc/openwrt_release + 包管理器三者交叉判断。
ubus call system board重点:
release.target(如x86/64、mediatek/filogic);board_name;model;- 当前版本和 revision。
官方设备去 OpenWrt Firmware Selector 选对应 target/model;ImmortalWrt/iStoreOS/厂商设备去各自下载页。不要跨型号、跨 target 刷 sysupgrade。
预期你能在固件选择器/厂商页面找到完全对应的条目。
- 已有 OpenWrt,升级通常用
sysupgrade; - 从厂商固件首次刷入,通常用
factory/厂商提供的过渡镜像; - x86 可能是 combined/ext4 镜像,写入方式不同;
- 不确定时先查设备页,不要凭文件名猜。
预期知道该用 sysupgrade 还是 factory/厂商镜像。
失败分支与恢复
Section titled “失败分支与恢复”ubus 不存在或命令报错
Section titled “ubus 不存在或命令报错”可能是厂商固件/非 OpenWrt 系统。先用 Web UI 的“关于/系统信息”和设备标签确认;不要直接刷 OpenWrt。
只有 Web UI,没有 SSH
Section titled “只有 Web UI,没有 SSH”厂商固件可能关闭 SSH。先查厂商文档/保修政策;不要为了拿 root 随意刷机。需要保留原厂功能时,优先用厂商升级流程。
- 包管理器与固件不匹配(apk/opkg);
- 软件源架构/版本不匹配;
- 内核模块 ABI 不匹配;
- 混用了别的 fork 的源。
先回到 ubus call system board 和包管理器,确认来源,再谈装插件。
刷错镜像/变砖
Section titled “刷错镜像/变砖”停止继续刷。按设备文档进入 failsafe、TFTP 或厂商恢复模式;没有恢复条件时不要尝试“再刷一个试试”。
E1 状态与来源
Section titled “E1 状态与来源”- 本页是 E1:字段、判断表和镜像选择方法按公开资料整理;没有在本次实验环境采集具体设备。
- 不同 fork/厂商的输出可能不同;发布前用真实设备跑一遍
tests/recipes/which-openwrt.md,记录字段和截图,再升级 E2。 - 本页只做识别,不提供跨型号刷机或绕过厂商限制的步骤。