一条命令搞定Flipper Zero固件编译
【免费下载链接】awesome-flipperzero🐬 A collection of awesome resources for the Flipper Zero device.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-flipperzero
你翻出刚入手的 Flipper Zero,想把 Unleashed 固件刷上去,却找不到固件编译的入口。FBT(Flipper Build Tool)是固件编译使用的构建工具,管的是交叉编译、打包产物和烧录这几件事,语法简单到只有一层目标参数。跟着做完这几步,你就能在自己的电脑上产出第一份固件包,并按需求切换编译目标。
快速跑通:一条命令出固件
先准备一台 Ubuntu 20.04 或更新的机器,推荐这个系统是因为它的依赖源最齐,交叉编译工具链装起来最省心。依赖装好后克隆仓库并直接运行构建:
git clone https://gitcode.com/GitHub_Trending/aw/awesome-flipperzero cd awesome-flipperzero && ./fbt跑完后终端会滚动大量编译日志然后停住,build/目录下生成固件产物包。跑通这一步说明环境基本没问题,后面无论换哪个目标参数都只改命令、不换环境。
搞懂FBT到底在做什么
把整个流程想成寄快递:源码是散件,交叉编译是按 ARM 芯片的规则把散件打包(Flipper Zero 主控是 ARM Cortex-M,所以必须用arm-none-eabi-gcc这类交叉编译工具链,而不是电脑自带的 x86 编译器),打包是压缩封装,烧录则是把包裹直接塞进设备 Flash。FBT 把这三步串成一条命令,你的决定只落在目标参数上:
./fbt firmware📌 目标参数决定流程走到哪一步:只编译出包、编译加烧录、还是出发布压缩包。想清楚"这次要走到哪一步",参数就不会用错。
按需求选目标:fbt目标参数速查
四个最常用的目标参数覆盖了从本地编译到发布分发的全部路径,按需求查表即可:
| 你想达成什么 | 目标参数 | 命令 | 产物 |
|---|---|---|---|
| 只产出固件包 | firmware | ./fbt firmware | build/下的固件 zip |
| 编译并直接烧录设备 | flash | ./fbt flash | 经 USB 直接写入设备 Flash |
| 出可调试的版本 | debug | ./fbt debug | 带调试符号的固件 |
| 出可分发的发布包 | dist | ./fbt dist | 打包好的发布压缩文件 |
⚠️ 第一次只建议用firmware,先拿 zip 走 SD 卡升级;flash需要设备保持 USB 连接,中途断开会前功尽弃。
走一遍完整流程:编译Unleashed并写入SD卡
第 1 步:装依赖、克隆源码。工具链没装过的话,先补齐编译依赖:
sudo apt update && sudo apt install -y build-essential cmake \ gcc-arm-none-eabi仓库沿用上文的克隆命令。此时你会看到 apt 输出Setting up gcc-arm-none-eabi一行,确认交叉编译工具链就位。
第 2 步:选固件并编译。选 Unleashed 是因为它开发活跃、默认解除 Sub-GHz 地区限制、支持滚动码和大量社区插件,是多数人的默认选择;各版本差异可查 Firmwares.md:
| 固件 | 特点 | 适合谁 |
|---|---|---|
| Unleashed | 滚动码支持、社区插件、活跃开发 | 多数人默认 |
| RogueMaster | 基于 Unleashed 加自定义图形与实验功能 | 想换动画尝鲜 |
| Xtreme | 代码更整洁、模块扩展更多 | 想要稳定基线 |
然后执行编译,此时你会确认终端日志滚完、build/目录多出固件 zip 文件:
./fbt firmware第 3 步:把产物写入 SD 卡。把编译出的 zip 解压到 SD 卡根目录,这是官方支持的升级方式,不用额外烧录工具:
cd ~/sdcard && unzip ~/awesome-flipperzero/build/f7-firmware-D/*.zip此时你会确认 SD 卡里出现了升级用的固件文件。
第 4 步:插卡开机。把 SD 卡插回设备并开机,设备识别到升级包后会自动刷机。此时你会看到屏幕进入升级流程,重启后落进新固件主界面,从源码到上机的闭环完成。
出问题了:按顺序排查
遇到卡壳按这个顺序走,比对着报错乱试快得多:
- 先查工具链。报错出现
arm-none-eabi-gcc: command not found,说明交叉编译工具链缺失,重装gcc-arm-none-eabi即可,FBT 全靠它产出 ARM 固件。 - 再确认目标参数。
./fbt不带目标参数时的行为和显式写firmware不一致,把目标参数写全能排除一半"命令写错"的情况。 - 检查自定义配置。刷入后卡在开机 logo,多半是改过的配置项互相不兼容,换回默认配置重新编译再试。
- 三步都排除后,查 FAQ.md 兜底,SD 卡选型、刷失败后的恢复方法那里都有现成答案。
接下来你可以:一是给命令追加OPTFLAGS=-Os编译选项,让编译器更激进地压体积,适合想塞更多自定义内容的场景;二是打开 README.md 的 Databases & Dumps 一栏,Sub-GHz 数据、红外转码脚本这些现成资源能直接配合你刚编好的固件使用。
【免费下载链接】awesome-flipperzero🐬 A collection of awesome resources for the Flipper Zero device.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-flipperzero
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考