树莓派刷 ImmortalWrt:用官方打包工具自定义固件

树莓派刷 ImmortalWrt:用官方打包工具自定义固件

前言

ImmortalWrt 是 OpenWrt 的一个活跃分支,对树莓派等 ARM 设备支持良好。官方提供了 Firmware Selector(固件选择器) 网页工具,让你无需本地编译、无需 Linux 环境,就能在浏览器里自定义插件打包出专属的 .img 固件。


准备工作

项目 说明
树莓派型号 确认具体型号(如 Pi 4B、Pi 5、Pi 3B+),不同型号对应不同固件
SD 卡 建议 ≥ 8GB,Class 10 以上
读卡器 用于电脑写入 SD 卡
网络 有线串口(可选,用于调试)

⚠️ 重要:请确认你的设备型号,选错型号会无法启动或变砖。


第一步:打开 ImmortalWrt Firmware Selector

在浏览器中搜索 “ImmortalWrt Firmware Selector”,进入官方页面。

界面大致如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
┌─────────────────────────────────────────────┐
│ ImmortalWrt Firmware Selector │
├─────────────────────────────────────────────┤
│ │
│ 设备型号 (Device): [下拉选择 ▼] │
│ │
│ ┌─ 自定义包列表 (Customize Package List) ─┐│
│ │ ││
│ │ 添加插件(每行一个): ││
│ │ ┌──────────────────────────────────┐ ││
│ │ │ luci-app-passwall │ ││
│ │ │ luci-app-samba4 │ ││
│ │ │ docker │ ││
│ │ │ luci-app-homeproxy │ ││
│ │ │ -luci-proto-ipv6 │ ││
│ │ └──────────────────────────────────┘ ││
│ │ ││
│ │ 💡 在前面加 - 表示移除该包 ││
│ └────────────────────────────────────────┘│
│ │
│ [ Request Build ] │
│ │
└─────────────────────────────────────────────┘

第二步:选择设备型号

Device 下拉框中输入你的树莓派型号,例如:

  • raspberrypi,4-model-b(树莓派 4B)
  • raspberrypi,5-model-b(树莓派 5)
  • raspberrypi,3-model-b-plus(树莓派 3B+)

如果不确定,可以去 ImmortalWrt 设备支持页面 查询。


第三步:自定义包列表

点击 “自定义包列表 (Customize Packet List)” 展开选项。

添加插件(预装到固件中)

在输入框中每行写一个插件名:

1
2
3
4
luci-app-passwall
luci-app-samba4
dockerd
luci-app-homeproxy

移除不需要的插件(精简固件)

在插件名前面加 - 即可:

1
2
-luci-proto-ipv6
-uhttpd

这样生成的固件更小、启动更快、资源占用更少。

常用插件推荐

插件 用途
luci-app-passwall 透明代理(科学上网)
luci-app-homeproxy Homeproxy 代理
luci-app-samba4 Samba 文件共享
dockerd Docker 容器支持
luci-app-ttyd Web 终端(SSH 替代)
luci-app-wol 网络唤醒
luci-app-nlbwmon 流量监控
luci-app-upnp UPnP 服务

精简建议(移除项)

1
2
3
4
5
6
7
8
# IPv6(如果不用 IPv6)
-luci-proto-ipv6

# 不需要的管理界面
-uhttpd

# 不需要的 QoS
-sqm-scripts

第四步:构建固件

点击 Request Build,等待约 2-3 分钟

页面会显示构建进度:

1
[████████████████████░░░░] Building...

构建完成后会弹出下载链接,下载 .img.gz 文件(压缩格式)。


第五步:写入 SD 卡

Linux / macOS

1
2
3
4
5
6
7
8
9
# 解压
gunzip immortalwrt-*.img.gz

# 确认设备名
lsblk

# 写入 SD 卡(sdX 替换为你的实际设备)
sudo dd if=immortalwrt-*.img of=/dev/sdX bs=4M status=progress
sync

Windows

使用 RufusbalenaEtcher

  1. 解压 .img.gz 得到 .img
  2. 打开 balenaEtcher
  3. 选择镜像文件 → 选择 SD 卡 → Flash!

第六步:启动树莓派

  1. 将 SD 卡插入树莓派
  2. 连接网线(推荐有线)
  3. 上电启动

默认登录信息

项目
IP 地址 192.168.1.1
用户名 root
密码 无(直接回车)
Web 管理 http://192.168.1.1

首次登录后建议立即设置密码:

1
passwd

常见问题

Q: 选错型号怎么办?

重新在 Firmware Selector 选对型号,重新构建。不会影响已写入的 SD 卡——重新刷入正确固件即可。

Q: 构建失败 / 下载链接过期?

重新点击 Request Build。链接有效期有限,建议尽快下载。

Q: 刷完无法启动?

  • 确认型号选择正确
  • 检查 SD 卡接触良好
  • 尝试重新写入
  • 查看串口日志排查原因

Q: 如何更新固件?

在 ImmortalWrt Web 界面 → System → Backup/Flash Firmware → Flash image,上传新的 .img 文件即可。


界面截图参考

下面是 ImmortalWrt Firmware Selector 的自定义包列表界面,实际使用时可以看到完整的插件输入框和构建按钮:

ImmortalWrt Firmware Selector 自定义包列表界面


总结

ImmortalWrt Firmware Selector 的优势:

  • ✅ 无需本地 Linux 环境和编译工具链
  • ✅ 浏览器操作,门槛极低
  • ✅ 2-3 分钟出成品
  • ✅ 插件增删自由,固件按需定制
  • ✅ 官方构建,安全可靠

适合场景:快速部署树莓派做软路由、家庭网关、NAS 代理等。