4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2でNerves Livebook環境構築

Last updated at Posted at 2025-07-28

WLS2でNerves Livebookをやろう!

今回はラズパイ4を使います。
WSL2から fwup コマンドでDLしたファームウェアをSDカードに書き込むのが、本記事のゴールです。

NERVES_SERIAL_NUMBER='nako' NERVES_WIFI_SSID='your_ssid' NERVES_WIFI_PASSPHRASE='your_password' fwup nerves_livebook_rpi4.fw

WindowsにWSL2(ubuntu)のインストールが終わっている前提でやっていきます。

[WSL2上]ファームウェアをDLする

releaseページからfwup用ファイルをDLする。
私はラズパイ4で使いたいので下記ファイルをDL。

nerves_livebook_rpi4.fw

[WSL2上]fwupコマンドのインストール

asdfインストール

公式を読みつつasdfのインストールをする。

curl -OL https://github.com/asdf-vm/asdf/releases/download/v0.16.7/asdf-v0.16.7-linux-amd64.tar.gz
sudo tar -C /usr/local -xzf asdf-v0.16.7-linux-amd64.tar.gz

$PATHが通ってるディレクトリに移動
このあたりは好みで

sudo cd /usr/local/asdf /usr/local/bin

fwupインストール

asdfにfwupプラグインを追加(この時点ではまだインストール終わってない)

sudo apt-get install autoconf pkg-config help2man libconfuse-dev libarchive-dev
asdf plugin add fwup https://github.com/fwup-home/asdf-fwup.git

asdf current fwupでインストールコマンドを確認

asdf current fwup

Name            Version         Source                    Installed
fwup            1.13.0          /home/nako/.tool-versions false - Run `asdf install fwup 1.13.0`

asdfでfwupをインストール

asdf install fwup 1.13.0
fwup --version # インストールされていることを確認

[Windows側]fwupインストール

パッケージマネージャchocolateyのインストール

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Windowsにfwupインストール
choco install fwup

WSL2からSDカードに書き込む

WSL2でUSBを認識できるよう、usbipd-winパッケージをインストール

WSL2はそのままだとUSBポートを認識できないので、usbipd-winパッケージをインストールする。

インストーラか、powershellでインストールできる。

winget install --interactive --exact dorssel.usbipd-win

USBを認識できるようにする(バインド、アタッチ)

powershellを管理者権限で実行する。

> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-6    30c9:0042  Integrated Camera                                             Not shared
1-10   8087:0033  インテル(R) ワイヤレス Bluetooth(R)                           Not shared
1-13   2537:1081  USB 大容量記憶装置                                            Not shared

バインドする(この時点ではWindows側からUSBが認識できている)

usbipd bind --busid 1-13

ここからは管理者権限でなくてもOK

> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-6    30c9:0042  Integrated Camera                                             Not shared
1-10   8087:0033  インテル(R) ワイヤレス Bluetooth(R)                           Not shared
1-13   2537:1081  USB 大容量記憶装置                                            Shared

アタッチする(Windows側からUSBポートが認識できなくなる)

usbipd attach --wsl --busid 1-13

アタッチされていることを確認

> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
1-6    30c9:0042  Integrated Camera                                             Not shared
1-10   8087:0033  インテル(R) ワイヤレス Bluetooth(R)                           Not shared
1-13   2537:1081  USB 大容量記憶装置                                            Attached

必要に応じて、セキュリティソフトにusbipdを許可するルール追加

これは参考程度に

スクリーンショット 2025-07-19 172131.png

WSL2からSDカードに書き込みを試す

NERVES_SERIAL_NUMBER='nako' \
NERVES_WIFI_SSID='your_ssid' \
NERVES_WIFI_PASSPHRASE='your_password' \
fwup nerves_livebook_rpi4.fw

Use 15.63 GB memory card found at /dev/sde? [y/N] y
100% [====================================] 60.48 MB in / 69.90 MB out
Success!
Elapsed time: 7.705 s

これでSDカードにnerves livebookが書き込めました、やったね!

書き込めないとき

下記エラーメッセージが表示されている場合、書き込み権限がない可能性がある。

Use 15.63 GB memory card found at /dev/sde? [y/N] y
fwup: Error determining the size of /dev/sde

fwup: Cannot open '/dev/sde' for output.
Check file permissions or the read-only tab if this is an SD Card.

書き込み権限を付与する。

sudo chmod 666 /dev/sde

参考

ElixirでIoT#4.1.1:WSL 2でNerves開発環境を整備する
WSL2へUSBデバイス共有、usbipd-win 4

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?