QMK开发环境搭建:3 条路径跑通你的第一次固件编译
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
读完后你会得到一个能用的 QMK开发环境搭建成果:给一把键盘名和一个键位图名,qmk compile就能吐出可直接刷写的 .hex。Windows、macOS、Linux / WSL、FreeBSD 都能走通,三条路径任选其一。
先说清楚:QMK 编译到底要装哪几样
别急着敲命令,先把"购物清单"过一遍。QMK 编译的本质,就是把仓库里的 C 代码翻译成芯片能执行的机器码,再让你用一条命令拿到固件文件。最小依赖集就六样:
| 组件 | 干嘛用的 | 要不要装 |
|---|---|---|
| Git | 拉 qmk_firmware 仓库、管理子模块 | 必须 |
| Python(3.9+) | QMK CLI 靠它跑,编译命令本质是脚本 | 必须 |
| AVR 工具链(avr-gcc) | 编译 Atmel ATmega32u4 这类老牌芯片 | 键盘是 AVR 就要 |
| ARM 工具链(arm-none-eabi-gcc) | 编译 STM32 这类新芯片 | 键盘是 ARM 就要 |
| QMK CLI | qmk setup/qmk compile/qmk config的入口 | 必须 |
| 烧录工具 | QMK Toolbox / dfu-util / avrdude,把固件写进键盘 | 必须(刷机环节) |
两点说明:多数键盘只用其中一类芯片,查一下你键盘的 MCU 型号就能省掉另一套工具链;不确定就都装,体积不大。
挑一条路把 QMK 装完
三条路装出来的东西一样,选你系统上最顺手的。
路径一:官方打包方案,最省心
Windows 首选:装 QMK MSYS。安装器把 Git、Python、AVR 和 ARM 工具链全打包好了,双击装完,打开"QMK MSYS"终端就能用,PATH 都不用操心。
macOS 最省心:用 Homebrew 装 QMK,两行命令的事:
brew tap qmk/qmk brew install qmk/qmk/qmkApple Silicon(M 系列)上首次安装会明显慢,这个架构没有现成的工具链二进制,会本地编译,预留 30~60 分钟,别以为卡死了。
Linux / WSL / FreeBSD 一行装:官方 CLI 是 Python 包,pip 直接搞定:
python3 -m pip install --user qmk路径二:包管理器手动拼装
官方包不覆盖你的发行版、或者你想自己掌控版本,就手动来。Ubuntu / Debian两组命令走完全程,先装通用依赖,再装两套工具链:
sudo apt update sudo apt install -y git python3-pip build-essential libusb-1.0-0-dev libudev-dev pkg-config sudo apt install -y gcc-avr avr-libc avr-gcc gcc-arm-none-eabiFedora换成dnf install -y git python3-pip gcc make libusb1-devel avr-gcc arm-none-eabi-gcc;FreeBSD同理,pkg install -y git python3 avr-gcc arm-none-eabi-gcc avrdude。看着包不少,其实各司其职:libusb / libudev 管 USB 通信,build-essential 是宿主机 C 编译器。
路径三:隔离环境,不污染系统 Python
不想全局装、或者系统 Python 被发行版托管(较新发行版上 pip 装会被 PEP 668 拒绝),用隔离方式:
uv tool install qmk不想引入 uv 也行,python3 -m venv qmk-venv建个虚拟环境再pip install qmk。Arch Linux 用户直接拿社区包,yay -S qmk-git更省事。
跑通第一次编译:qmk setup → qmk compile 验证闭环
✅ 装完别急着庆祝,先验证闭环。第一条命令是 setup,它会把固件仓库克隆下来(本文基于的仓库为 https://gitcode.com/GitHub_Trending/qm/qmk_firmware)并初始化全部子模块:
qmk setup第二条,编译仓库里最小的键盘。null 是一块没有实体硬件的虚拟键盘,纯粹用来跑通流水线:
qmk compile -kb null -km default输出末尾看到这样几行就对了:
Linking: .build/null_default.elf [OK] Creating load file for flashing: .build/null_default.hex [OK] The firmware size is fine - 24404/30720 (6316 bytes free)看到[OK]就是成了。从这一刻起,你的机器就具备完整的机械键盘固件编译环境,仓库里任意一把键盘都能编。完整编译流程可以看官方文档 docs/getting_started_make_guide.md。
qmk compile 报错?先看这张踩坑速查
⚠️ 你大概率会碰到的问题,别人早就碰过了,直接对表:
| 现象 | 高发平台 | 一句解法 |
|---|---|---|
qmk: command not found | 全平台 | 把~/.local/bin加进 PATH,重载 shell 配置 |
| 安装器/构建被杀毒拦截 | Windows | 把 QMK_MSYS 目录加排除项,装的时候关掉实时保护 |
| 克隆仓库中途断网 | 全平台 | 重跑qmk setup,它会续传 |
| 拉了新代码后报缺文件 | 全平台 | qmk git-submodule,或重跑qmk setup -y |
| 刷机时提示 USB 权限拒绝 | Linux / WSL | 加一条 idVendor 为feed的 udev 规则放权 |
| 首次编译巨慢 | macOS Apple Silicon | 工具链在本地编译,等它跑完,之后正常 |
| WSL 里看不到 USB 键盘 | WSL | 用 usbipd 从 Windows 侧把设备直通进来 |
从"能编译"走到"能刷写"
编出 .hex 只算完成一半,另一半是把它写进键盘。Windows上最省事的是 QMK Toolbox:选文件、点烧录,结束。Linux / macOS走命令行,STM32 用dfu-util、AVR 用avrdude,流程见 docs/flashing.md。刷通之后马上能做的三件小事:去keyboards/目录找到你板子的键位图开始改键;qmk config user.keyboard=<你的键盘> user.keymap=<键位名>设好默认值,以后只敲qmk compile就够;卡住了直接去 QMK 的 Discord 社区问,比搜资料快。
顺手调几个体验项 ⚡
- 仓库放 SSD:QMK 编译相当一部分时间在读写中间文件,机械盘和 SSD 的差距肉眼可见
- Windows 编译时关实时保护(或给仓库加排除项):杀毒软件反复扫 .o 文件是 Windows 编译慢的头号原因
- 内存:4GB 能应付大多数板子,编大型 ARM 板建议 8GB
- shell 别名:
alias c='qmk compile',每次敲命令省两下
下一步就是打开 keyboards/ 找到和你硬件对得上的那把键盘,开始改键位了。
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考