nixpkgs-esp-dev
适用于 Nix 的 ESP8266 和 ESP32(-C3、-S2、-S3、-C6、-H2)软件包和开发环境。
本仓库包含 ESP-IDF 的派生,以及它所依赖的大多数工具链和工具(所有支持目标的编译器、用于 Espressif 芯片的自定义 OpenOCD 等)。
通过 CC0 发布到公共领域(参见 COPYING
)。
入门
nix develop
最简单的入门方式是运行以下命令之一来获取开发环境,甚至无需下载仓库(需要 Nix 2.4 或更高版本):
nix --experimental-features 'nix-command flakes' develop github:mirrexagon/nixpkgs-esp-dev#esp32-idf
:用于使用 esp-idf 进行 ESP32 开发。- 包括 ESP32 工具链,并下载并设置 ESP-IDF,一切准备就绪可以使用
idf.py
。
- 包括 ESP32 工具链,并下载并设置 ESP-IDF,一切准备就绪可以使用
nix --experimental-features 'nix-command flakes' develop github:mirrexagon/nixpkgs-esp-dev#esp8266-rtos-sdk
:用于使用 ESP8266_RTOS_SDK 进行 ESP8266 开发。- 包括 ESP8266 工具链、ESP8266_RTOS_SDK 和 esptool。
可用的环境列表(在命令中的 #
后面)包括:
esp-idf-full
:包括所有支持的 ESP32 芯片的工具链(不包括 ESP8266)。esp32-idf
:包括 ESP32 的工具链。esp32c3-idf
:包括 ESP32-C3 的工具链。esp32s2-idf
:包括 ESP32-S2 的工具链。esp32s3-idf
:包括 ESP32-S3 的工具链。esp32c6-idf
:包括 ESP32-C6 的工具链。esp32h2-idf
:包括 ESP32-H2 的工具链。esp8266-rtos-sdk
:包括 ESP8266 的工具链和 esptool。
nix-shell
如果你没有使用 Nix 2.4+ 或者不想启用 flakes,你可以克隆仓库并使用以下命令之一:
nix-shell shells/esp32-idf-full.nix
nix-shell shells/esp32-idf.nix
nix-shell shells/esp32c3-idf.nix
nix-shell shells/esp32s2-idf.nix
nix-shell shells/esp32s3-idf.nix
nix-shell shells/esp32c6-idf.nix
nix-shell shells/esp32h2-idf.nix
nix-shell shells/esp8266-rtos-sdk.nix
以获得与 nix develop
相同的环境。
注意:nix develop
将使用 flake.nix
/flake.lock
中指定的 nixpkgs 版本,而使用 nix-shell
默认会使用你系统的 nixpkgs。
创建自定义环境
你可以为你的项目创建一个独立的 shell.nix
,自动下载 nixpkgs-esp-dev
并创建一个包含必要软件包和环境设置的环境,以使用 ESP-IDF。
参见 examples/shell-standalone.nix
示例。
覆盖 ESP-IDF 和 ESP32 工具链版本
pkgs/esp-idf/default.nix
中指定了默认的 ESP-IDF 版本。要使用不同版本的 ESP-IDF 或固定版本,请使用所需版本和相应的哈希值覆盖 esp-idf-*
派生。工具的正确版本将自动下载。
参见 examples/shell-override-versions.nix
示例。
覆盖层
本仓库在 overlay.nix
中包含一个覆盖层,其中包含本仓库定义的所有软件包。如果你将仓库克隆到 ~/.config/nixpkgs/overlays/
,nixpkgs 将自动获取覆盖层,有效地将这些软件包添加到你的系统 nixpkgs 中。