
WindowsでZephyr SDKのsetup.cmdが「ツールチェーンのダウンロードに失敗」する原因と最短回避策(wgetブロック対策)
Windows環境でZephyrアプリをビルドしようとしたら、Zephyr SDKのセットアップ中に setup.cmd が「Toolchain download failed(ツールチェーンのダウンロードに失敗)」で止まる――最近この手の詰まり方がじわじわ増えています。ポイントは、最小構成(Minimal)インストールが内部で wget を使って追加ツールチェーンを取得し、その通信がWindows側の保護機能やセキュリティ製品、ネットワーク制限で“危険”扱いされて弾かれること。
この記事では、最短で復旧する実務的な回避策から、Minimalを使い続けたい場合の現実的な対処、最後に「通ったかどうか」を確認するチェック項目まで、手戻りが少ない順にまとめます。 Zephyr Project Documentation
まず押さえるべき前提:MinimalとFullで失敗確率が違う
Zephyr SDKの配布には、大きく Full(フルバンドル) と Minimal(最小バンドル) があり、GitHubのリリースページでもOSごとにMinimal/Fullが分かれて提供されています。Minimalは本体が小さい代わりに、セットアップ時に必要なツールチェーンを“後から”選んでダウンロードします。ここで setup.cmd → wget が動くため、ブロックされるとインストール全体が失敗します。 GitHub
一方、Fullは最初のアーカイブが重い代わりに、必要物が同梱されているため「セットアップ中に個別ツールチェーンを取りに行く」場面が減り、今回の症状を踏み抜きにくいのが最大の利点です。
症状:よくある“詰まり方”のパターン
次のような状況が揃うと発生しがちです。
-
setup.cmd実行中にツールチェーン取得フェーズで停止する -
途中で
wgetがエラーになり、ダウンロード失敗扱いになる -
企業ネットワーク、EDR/ウイルス対策、SmartScreenやアプリ実行制御が強めの端末ほど再現しやすい
-
NXP の周辺ツール(インストーラー等)経由でも、内部的にMinimalを使っていて同様に転ぶことがある(“手動でもダメ”になりやすい)
※本質は「Zephyr SDKそのものが壊れている」ではなく「取得手段(wget)が通らない」です。
最短回避策:Full(フルバンドル)へ切り替える
最も手堅い回避策は、MinimalをやめてFullを使うことです。やることはシンプルで、失敗ポイント(setup.cmdがwgetで個別DLする箇所)を踏みにくくできます。
手順(Windows)
-
Zephyr SDKのリリースから Windows向けFull のアーカイブ(
.7z)を入手 -
推奨の配置先(例:
%HOMEPATH%または%PROGRAMFILES%)へ展開 -
展開したフォルダで
setup.cmdを実行(CMakeパッケージ登録などの“仕上げ”) Zephyr Project Documentation
公式ドキュメントは、Windowsでは %HOMEPATH% で取得→展開→ setup.cmd 実行、という流れを案内しています。 Zephyr Project Documentation
また、現時点の公開情報上、Zephyr SDKの“最新”として参照されている版は 0.17.4 です(リリース一覧でもLatest表記)。 GitHub+1
Minimalを使い続けたい場合の現実的な対処
容量や運用方針でMinimalを使い続けるなら、ボトルネックは「wgetの通信・実行が許可されるか」に尽きます。狙い所は次の3つです。
1) ネットワーク制限(プロキシ/SSL検査/フィルタ)を疑う
企業環境だと、HTTPSの中身を検査するSSLプロキシや、未知バイナリの外部取得を制限する仕組みで落ちることがあります。対処としては、
-
取得元(Zephyr SDK配布元のGitHub)へのアクセス許可
-
プロキシ環境変数(HTTP/HTTPS_PROXY)の設定見直し
-
セキュリティ製品側の「開発ツールの取得」ポリシー調整
が効きます。ここは組織ポリシーの領域なので、端末単体で無理に迂回するより、許可ルールを作る方が再発防止になります。
2) Windowsの保護機能・実行制御で弾かれていないか確認
“wgetが危険扱い”になる場合、ファイルのブロック(ダウンロード元の扱い)やアプリ制御で止められていることがあります。イベントログやセキュリティ製品の検知ログに wget のブロック履歴が残ることが多いので、まずそこを確認すると最短で原因に当たります。
3) 取得手段を変える(curl / PowerShellの利用を検討)
環境によっては wget だけが弾かれて、Windows標準の curl やPowerShellの取得が通ることがあります。Minimalの設計上“setup.cmdがwget前提”になっているため、現場運用としては「Fullへ切替」が最も安全ですが、どうしてもMinimalで行くなら 同じURLを別の手段で取得できるか を切り分けるのが有効です(通れば、あとは社内ルール整備の根拠にもなります)。
インストール後の“成功判定”チェックリスト
回避策で通ったつもりでも、後でビルド時に迷子になるのがWindowsあるあるです。最後にここだけ確認しておくと手戻りが減ります。
-
SDKを既定の場所に置いていない場合、
ZEPHYR_SDK_INSTALL_DIRを設定する(自動検出されないときの定番) Zephyr Project Documentation -
setup.cmdを実行して、CMakeのパッケージレジストリ登録まで完了させる(移動したら再実行が必要) Zephyr Project Documentation -
“どのSDKが推奨か”はZephyrのバージョンと関係するため、互換性(Compatibility Matrix)も意識する Zephyr Project Documentation
まとめ:急いで直すなら「Full」、根治するなら「wgetが通る設計」に寄せる
-
いま目の前の失敗を最短で潰すなら Fullバンドルへ切替が一番堅い
-
Minimal運用を続けるなら、
wgetが「どこで」「何に」ブロックされているか(端末保護/セキュリティ製品/ネットワーク)を特定し、許可ルール側で解決するのが再発防止になる -
インストールが通った後は、
setup.cmd実行とZEPHYR_SDK_INSTALL_DIR周りの確認でビルド時の迷子を防ぐ Zephyr Project Documentation
必要なら、このエラーが出たときのログ例(setup.cmd の出力、セキュリティ製品の検知ログ、プロキシ有無)を想定して、「どこを見れば原因が切り分けられるか」まで踏み込んだチェック手順も記事化できます。