Flipper Zero 固件编译:用 FBT 的 5 个里程碑跑通第一次刷机
2026/9/13 3:05:41 网站建设 项目流程

Flipper Zero 固件编译:用 FBT 的 5 个里程碑跑通第一次刷机

【免费下载链接】awesome-flipperzero🐬 A collection of awesome resources for the Flipper Zero device.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-flipperzero

30 分钟后,你会拿到一个能刷进 Flipper Zero 的固件包。这是用 FBT 完成的固件编译,全程只靠官方构建工具加几条命令。下面按 5 个里程碑走一遍:先选分支、装环境、跑编译、找产物、刷进设备,每一步后面都附带了最常见的那种报错处理。

选固件分支:先弄清 Unleashed 和 RogueMaster 的区别

编译前最该花 1 分钟的事是选对分支。官方固件有 Sub-GHz 区域发射限制,也不能保存和回放滚动码;社区分支把这几项放开了,所以多数人不会去编官方版。

  • Unleashed:基于官方 dev 分支,Sub-GHz 默认解除区域限制,支持滚动码的捕获与回放,开发和社区最活跃,是大多数人的首选。
  • RogueMaster:在 Unleashed 基础上叠加自定义动画和实验性小功能,适合想尝鲜、也能接受偶尔不稳的用户。

各分支的完整特性差异见 固件版本对比,挑一个你真正需要的再往下走,能省掉后面反复重编的时间。

装环境:在 Ubuntu 20.04 上配置 ARM 交叉工具链

交叉编译指"在你的电脑上生成能跑在另一颗芯片上的代码"。Flipper Zero 用的是 ARM 内核,所以要先装一套 ARM 交叉工具链——它是能把代码翻译成 Flipper 能执行的程序的编译器集合,后面 FBT 靠它真正干活。

先克隆固件源码仓库:

git clone https://gitcode.com/GitHub_Trending/aw/awesome-flipperzero cd awesome-flipperzero

再一次性装齐依赖,免得编译到一半才想起来补:

sudo apt update && sudo apt install -y git build-essential cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib

怎么确认装好了:运行arm-none-eabi-gcc --version,能打印出版本号就说明工具链可用。

这一步如果报错:出现arm-none-eabi-gcc: command not found,说明交叉工具链没装上,单独重装它即可:

sudo apt install -y gcc-arm-none-eabi

跑编译:用 ./fbt 指定目标并处理报错

FBT 是官方提供的固件编译工具,通用语法是./fbt [选项] [目标],其中"目标"决定你要产出什么:

目标说明
firmware编译出完整固件
dist生成发布用的压缩包
debug生成带调试信息的固件
flash编译后直接烧录进设备

烧录就是"把编译好的固件写进 Flipper 的闪存芯片",让它开机后运行这份新程序。

编译 Unleashed 固件:

./fbt -C unleashed-firmware firmware
  • 命令-C指定在哪个固件目录里执行,firmware是目标。
  • 预期输出:先有一长串编译日志,正常结尾会出现打包完成、生成 zip 的提示。
  • 怎么确认成功:不用纠结日志,只要最后没有红色Error、且能进下一个里程碑找到产物,就算过。

想换 RogueMaster 分支,把-C后的目录换掉即可:

./fbt -C rogue-master firmware

需要调整默认行为时,改firmware/targets/f7/configs目录下的配置头文件,例如default_config.h

#define DEFAULT_REGION "EU" // 改成 "WW" 以放开频率限制 #define ENABLE_ROLLING_CODES 1 // 开启滚动码支持

拿不准就先用默认配置,改坏一项就可能白编一次。

找产物:在 build 目录定位固件包

编译成功后产物固定落在build/f7-firmware-D/,里面的flipper-zero-firmware-D.zip就是你要刷机的包,解压到 SD 卡根目录即可升级。

怎么确认成功:能在该目录看到这个 zip,说明这次编译真的成了,不用回头翻日志。

这一步如果产物体积偏大想再压一压,加-Os优化选项重编:

./fbt -C unleashed-firmware firmware OPTFLAGS=-Os

刷进设备:把 zip 解压到 SD 卡并验证

把上一步的 zip 解压,将里面的内容放进 SD 卡根目录,设备重启后会自动识别并升级固件。这就是"烧录"的 SD 卡方式,比插数据线更省事。

这一步如果报错——设备卡在开机 logo 不动:多半是上一步自定义的配置启用了不兼容项。回到default_config.h检查,建议改回默认配置重新编译再刷一次;配置项的含义可对照 FAQ 的刷机与 Sub-GHz 章节。

想进一步折腾自定义插件,可以先看 Sub-GHz 协议分析里的sub_analysis/examples/示例,它是上手 FBT 插件开发的一个起点。

下一步:拿这次的产物刷一次机,再从 固件版本对比 里挑一个分支用同样的命令重编,直观对比差异。配置上遇到具体报错,先查 FAQ 的刷机与 Sub-GHz 章节,那里覆盖了大多数情况。

【免费下载链接】awesome-flipperzero🐬 A collection of awesome resources for the Flipper Zero device.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-flipperzero

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询