news 2026/9/7 10:26:55

QMK 开发环境搭建:3 条命令跑通第一次固件编译(附全平台避坑速查)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QMK 开发环境搭建:3 条命令跑通第一次固件编译(附全平台避坑速查)

QMK 开发环境搭建:3 条命令跑通第一次固件编译(附全平台避坑速查)

【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware

刚接触机械键盘固件开发,第一步不是学 keymap 语法,而是把 QMK 开发环境搭对。这套流程只需三步:装好 QMK CLI、跑一次qmk setup、编译一个默认键位验证环境。Windows、macOS、Linux/WSL 的差异只在第一步,后两步完全一致。

我该用哪种安装方式?三平台推荐路径

别纠结包管理器、tap 和 pip 的组合,每个平台只有一条推荐路径,选错代价最高的是依赖版本冲突:

平台推荐路径说明
WindowsQMK MSYS 安装包打包了 MSYS2、QMK CLI 与全部工具链,自带终端快捷方式,开箱即用
macOS / Linux / WSL官方安装脚本一条命令装好 CLI、构建依赖、AVR/ARM 交叉工具链与烧录工具
FreeBSD 及其他类 Unixpkg install -g "py*-qmk"社区尽力维护,建议优先用前三类系统

Windows 上直接安装 QMK MSYS,装完从开始菜单启动它(提示符应为 MINGW64),CLI 已经就位,跳过下一条命令。

macOS 与 Linux/WSL 用户只需一条命令:

curl -fsSL https://install.qmk.fm | sh

⚠️ 两点提醒:发行版自带的 qmk 包几乎必然过时,别走apt install qmk;WSL 用户把仓库放在 Linux 文件系统里(~/qmk_firmware),放在/mnt/c/...下编译会慢得令人怀疑人生。

系统要求一句话带过:Win10+ / macOS 10.15+ / 主流 Linux 发行版(Debian、Ubuntu、Fedora、Arch 系),4GB 内存 + 几 GB 磁盘足够。musl 基础的 Linux 发行版不受支持。

qmk setup 到底在干什么?

装完 CLI 别急着关终端,先搞懂qmk setup在做什么,再执行它:

qmk setup

多数提示回答y即可。它不是简单的下载器,而是按顺序完成四件事:

两个实用参数:qmk setup -H <路径>指定仓库位置;qmk setup <用户>/qmk_firmware克隆你的个人 fork,适合打算向社区提 PR 的人。

如果直接用本地仓库副本代替克隆(本指南适用场景),命令如下:

git clone https://gitcode.com/GitHub_Trending/qm/qmk_firmware ~/qmk_firmware cd ~/qmk_firmware qmk setup

setup 检测到仓库已存在后会跳过克隆,直接进入工具链安装环节。

装完怎么确认环境是对的?编译一个默认键位

环境验证不用敲gcc --version之类的花活,编译出第一个.hex才算数:

qmk list-keyboards # 确认仓库里有哪些键盘 qmk compile -kb planck -km default # 编译 Planck 的默认键位

-kb是相对keyboards/目录的路径(如clueboard/66/rev3),-km是键位名。输出末尾出现下面这种"体检合格"信息,即验证通过:

Linking: .build/planck_default.elf [OK] Creating load file for flashing: .build/planck_default.hex [OK] Checking file size of planck_default.hex [OK] * The firmware size is fine - 27312/28672 (95%, 1360 bytes free)

✅ 看到这行,QMK 固件编译环境就通了:工具链、仓库、CLI 三件套齐活。

编译报错了先看这里:Top 3 速答

  1. bash: qmk: command not found——~/.local/bin不在 PATH 里。执行echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc,这是 WSL 上踩的人最多的坑。
  2. 编译中途报错 / 依赖缺失—— 回到仓库根目录跑qmk setup -y重装依赖;仍不行就qmk clean -kb <keyboard> -km <keymap>清掉构建缓存重新编译。
  3. WSL 下键盘插上没反应—— 物理键盘接在 Windows 上,Linux 侧默认看不到,需要 USB 直通;配置方法见 QMK 官方文档。

下一步

环境通了,就可以用qmk new-keymap基于默认键位生成自己的 keymap,打开生成的keymap.c改一个键试编译——小步改动最容易定位问题。刷写固件、键位语法等进阶内容,从 docs/newbs_flashing.md 和 docs/cli_commands.md 继续看即可。

【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 10:26:51

千兆网丢包排查:特性阻抗与信号反射的隐性故障

在机器人视觉项目里&#xff0c;相机与工控机之间的千兆网往往是最容易被忽视的环节。现场报错时&#xff0c;程序偶尔丢包、图像传不完、视觉软件超时退出的现象轮番出现&#xff0c;很多人第一反应是“现场干扰太大&#xff0c;网线不行”。于是换屏蔽线、加磁环、把网线挪远…

作者头像 李华
网站建设 2026/9/7 10:26:09

STM32定时器配置踩坑指南:PSC/ARR计算与时钟源陷阱解析

1. 为什么定时时间总是不对&#xff1a;从一次“翻车”现场说起先讲个真实经历。有一次我给一块板子做电机控制&#xff0c;定时器打算产生 10kHz 的 PWM&#xff0c;主频 72MHz&#xff0c;PSC 和 ARR 我算得明明白白&#xff0c;公式也背得滚瓜烂熟&#xff1a;频率 时钟 / …

作者头像 李华
网站建设 2026/9/7 10:25:37

CMSIS-DSP源码深度审计:FFT/FIR优化与工业落地实战

我得先说明一个感受&#xff1a;做Cortex-M嵌入式开发的工程师&#xff0c;几乎没有人没听说过CMSIS-DSP&#xff0c;但真正打开过这个库源码、一行一行读过实现的人&#xff0c;少之又少。大多数人停留在"调API"的层面。我之所以花整块时间去做一次源码级的梳理&…

作者头像 李华