0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Apple Silicon Mac + Zephyr SDK + Docker で nRF52 をビルドするまでの記録

Last updated at Posted at 2025-03-23

Zephyr SDK (v2.8.0) を使って nRF52 向けファームウェア開発を進める中で、Apple Silicon Mac によるビルド停止・ハング問題に悩まされました。この記事では、その原因と対策、そして Dockerを使って安定してビルドする手順 をすべて共有します。


システム情報

  • MacBook Pro M2 (Apple Silicon)
  • nRF52832 / nrf52dk
  • nRF Connect SDK v2.8.0
  • Zephyr SDK v0.16.3
  • Docker Desktop v25.0.2 (GUI バージョン)

発生した問題

west build で止まる

-- Found GnuLd: ld.bfd

このメッセージの直後で west build が停止し、プロンプトが返ってこなくなる現象が発生する。これは、Apple Silicon 環境が Zephyr SDK に正式対応していないことが原因と考えられる。


解決策: Dockerを使ってビルド

1. Dockerが使えるか確認

docker --version
# Docker version 25.0.2, build 29cf629

使えない場合は Docker Desktop を開き、Preferences > Resources > File Sharing/Users/<yourname> を指定することで CLI でも利用可能になります。

2. Dockerイメージ(nordic)のダウンロード

docker pull nordicplayground/nrfconnect-sdk:v2.9-branch

3. Dockerでビルド実行

docker run --rm -it \
  -v $HOME/nordic/v2.8.0:/workdir \
  -w /workdir/emg_sensor_firmware \
  nordicplayground/nrfconnect-sdk:v2.9-branch \
  west build -b nrf52dk/nrf52832 --pristine=always -- -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

4. HEXファイルの作成を確認

ls -lh ~/nordic/v2.8.0/emg_sensor_firmware/build/emg_sensor_firmware/zephyr/zephyr.hex

実機へ書き込み

nrfjprog --eraseall
nrfjprog --program ~/nordic/v2.8.0/emg_sensor_firmware/build/emg_sensor_firmware/zephyr/zephyr.hex --chiperase --verify --reset

ビルド成功ログ一部

Memory region         Used Size  Region Size  %age Used
           FLASH:       18526 B       512 KB      3.53%
             RAM:        5632 B        64 KB      8.59%
        IDT_LIST:          0 GB        32 KB      0.00%
[10/10] Generating ../merged.hex

ポイント

  • Apple Silicon 環境で Zephyr SDK を使うと、ld.bfd でビルド停止することがある
  • Docker の SDK イメージを使えば、依存性と対応バージョンに問題なくビルド可能
  • VS Code ではなく CLI/ターミナル での実行が安定

おわりに

Apple Silicon で Zephyr SDK を利用するのは現状体験としてハードルが高く、官方Dockerイメージを利用するのが最も確実な手段でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?