Skip to content

Latest commit

 

History

History
431 lines (262 loc) · 18.7 KB

getting-started-wsl2_ja.md

File metadata and controls

431 lines (262 loc) · 18.7 KB

Windows 11 のスタックチャン環境構築マニュアル(WSL2)

スタックチャンはWindows11、MacOS、Linuxで開発ができます。MacOS、Linuxの場合は環境構築マニュアル(MacOS/Linux)を参照してください

Windows11上でスタックチャンのプログラムを書き込む手順を説明します。 Moddableを使用したスタックチャンの開発環境はUbuntuOSを想定しています。WSL2(Windows Subsystem for Linux 2)を使用することで、Windows環境上でUbuntuの環境を構築することができます。

Windows PowerShellUbuntuの見分け方

この手順書では、Windows PowerShellUbuntuの2種類のウインドウを扱います。インターフェースが類似しているため間違いやすいです。以下のようにコマンド入力欄に注目すると容易に見分けられます。

  • Windows PowerShell:コマンド入力欄の表示がPS C:\WINDOWS\system32>
  • Ubuntu:コマンド入力欄の末尾の表示が$

WSL2+Ubuntu22.04のインストール

WSL2Ubuntu22.04をインストールします。

以下の3つの手順によって、Windows PowerShellを管理者権限で開いてください。

  1. Windowsキーを押す
  2. 検索欄に「windows powershell」と入力する
  3. Windows PowerShellのアイコンが出てくるので「管理者権限で開く」を選択してください。


開いたWindows PowerShell上に、以下のコマンドを入力し、実行してください。

コマンドは画像の通り、PS C:\WINDOWS\system32>の後に続けて入力し、Enterキーで実行します。

PS C:\WINDOWS\system32> wsl --install -d Ubuntu-22.04



インストールが完了したら、PCを再起動してください。

PCを再起動すると、自動的にUbuntuが立ち上がります。 自動で立ち上がらない場合は、以下の3つの手順によって、Ubuntuを開きます。(Ubuntuは管理者権限で起動せずに通常通りに起動してください)

  1. Windowsキーを押す
  2. 検索欄に「ubuntu」と入力する
  3. Ubuntuのアイコンが出てくるので「開く」を選択してください。



ユーザー名とパスワードの入力を求められますので任意の文字列を入力してください。 ここで入力するユーザー名とパスワードはWindows11のものではなく、Ubuntuに設定するユーザー名とパスワードです。 ユーザー名では全角文字と大文字は使用できないため、小文字のみの半角文字の文字列で設定してください。



設定が完了したらUbuntuを再起動します。 Ubuntuのウインドウ右上の×アイコンをクリックして閉じた後、再度スタートメニューからUbuntuを選択してを起動してください。

末尾が$記号の文字列が表示されていればUbuntuの設定は完了です。 成功していれば、<設定したUbuntuのユーザー名>@...:~$表示されています。



[注意!]初期設定に失敗した場合

Ubuntu起動時、root@"...:~#のように表示される場合、ユーザー作成の設定は失敗しています。

この状態に遭遇された際には本マニュアルの末尾の最初からやり直したい場合の節を参照し、再度Ubuntuのインストールを行ってください。


Ubuntuのパッケージリストの更新と必要パッケージのインストール

Ubuntuにスタックチャンの開発環境を構築します。 Ubuntuのウインドウ上で以下のコマンドを順番に入力してください。

コマンドは画像の通り、$の後に続けて入力し、Enterキーで実行します。


コピー&ペーストを行う際の注意!

UbuntuではWindows PowerShellと違い、キーボードによるコピー&ペーストはshiftキーも押す必要があります。

コピー:ctrl + shift + c

ペースト:ctrl + shift + v

特に、ctrl + cをUbuntu上で実行すると、プロセス(現在実行しているコマンド・プログラム)の終了となりますのでご注意ください。


パッケージリストの更新

最新パッケージのリストを更新します。

$ sudo apt update

Python venvのインストール

Pythonの仮想環境を作成する際に使用するvenvツールが含まれているpython3.10-venvをインストールします。

$  sudo apt install -y python3.10-venv

Node.jsnpmのインストール

スタックチャンの開発にはNode.jsと、そのパッケージを管理するnpmという名前のソフトウェアを使います。

Ubuntuのパッケージマネージャー(apt)から直接インストールできるNode.jsのバージョンは古いため、VoltaというNode.jsのバージョン管理ツールを使って最新の安定版をインストールします。

Voltaのインストール

Node.jsnpmを管理するツールVoltaをインストールします。

$ curl https://get.volta.sh | bash

インストールに成功するとsuccess: Setup complete. Open a new terminal to start using Volta!と表示され、新しいターミナルを開始するように促されます。

Ubuntuのウインドウを閉じ、Windows11のスタートメニューからUbuntuを再起動してください。

VoltaからNode.jsnpmをインストール

Node.jsnpmをインストールします。

$ volta install node@20.11.0

インストールしたNode.jsnpmを確認

npmNode.jsがインストール出来ているかを確認します。 以下の2つのコマンドをうち、それぞれ画像の通りに表示されれば完了です。

$ npm -v
$ node -v

スタックチャンのプログラムのインストール

スタックチャンのプログラムのダウンロード

スタックチャンのプログラムをダウンロードします。

$ git clone --recursive https://github.com/rt-net/stack-chan.git

ソフトウェアパッケージのインストール

ダウンロードしたスタックチャンのfirmwareフォルダに移動し、必要なソフトウェアパッケージをインストールします。

cdコマンドで作業するフォルダを変更できます。

npm install でインストールを実行します。

$ cd stack-chan/firmware
$ npm install

Moddableのインストール

Moddableをインストールします。

コマンドnpm run setupによってスクリプトを実行します。スクリプトによって、自動でModdableのインストールが行われます。

以下に示す1つ目のコマンドの実行直後、Ubuntuに設定したパスワードの入力が要求されますので入力してください。 パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。 2つ目のコマンドでは、再度パスワードが要求されない内に実行してください。 もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。

$ sudo echo "Temporary SuperUser Grant"
$ npm run setup

M5Stack向けにModdableをにセットアップ

以下のコマンドでModdableの環境をM5Stack向けにセットアップします。 npm run setup -- --device=esp32はスクリプトを実行し、自動で環境のセットアップを行います。

1つ目のコマンドを実行直後、Ubuntuに設定したパスワードの入力が要求されますので入力してください。 パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。 2つ目のコマンドでは、このパスワードが要求されない内に実行してください。 もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。

$ sudo echo "Temporary SuperUser Grant"
$ npm run setup -- --device=esp32

構築した環境の確認

以下のコマンドで環境のテストをします。

$ npm run doctor

Moddableのバージョンがv4.1.0で、ESP32 IDF Directoryのパスが正しく表示されており、Supported target deviceslin, esp32となっていれば成功です。 ここまで完了次第、Ubuntuのウインドウを閉じてください。

PCのUSBポートに接続されたデバイスをWSL2上で認識できるようにする

スタックチャンにプログラムを書き込むには、USBケーブルでPCと接続する必要がありますが、WSL2上ではPCのUSBポートに接続したデバイスを読み取れません。 usbipd-winというツールを使用することでWSL2上でもPCのUSBポートに接続したデバイスを認識することができます。

usbipd-winのダウンロード

公式のダウンロードページから、最新版の.msi形式ファイルをダウンロードしてください。

usbipd-winのインストール

ダウンロードしてきたファイル(インストーラ)に従ってインストールしてください。インストールが完了したらPCを再起動してください。

スタックチャンBUSIDを確認する

Windows PowerShellUbuntuを起動します。

Windows PowerShellは管理者権限で起動し、以下のコマンドを順番に入力してください。

USBポートに接続されたデバイスリスト出力します。

PS C:\WINDOWS\system32> usbipd list



以下の手順でスタックチャンとPCを接続して起動します。

  1. スタックチャンとPCをUSBケーブルで接続します
  2. スライドスイッチを上側にスライドさせてスタックチャンのバッテリー供給をONにします(同時にPCからバッテリーの充電も開始されます)
  3. 起動ボタンを押してスタックチャンの電源をONにします(OFFにするときは6秒間長押しします)


スタックチャンを起動する前と同様に、usbipd listコマンドを実行して再度USBデバイスリスト出力します。

PS C:\WINDOWS\system32> usbipd list

今回のコマンドで新たに現れたBUSID(画像の場合では2-1)がスタックチャンを指し示してます。

スタックチャンbindする

スタックチャンをbindします。

以下に示すように、コマンドの<スタックチャンのBUSID>部分を自身のスタックチャンのBUSIDと置き換えて実行した後、再度USBデバイスリスト出力してください。

PS C:\WINDOWS\system32> usbipd bind --busid <スタックチャンのBUSID>
PS C:\WINDOWS\system32> usbipd list

USBデバイスリスト上のスタックチャンのBUSIDSharedとなっていれば完了です。


スタックチャンattachする

スタックチャンをattachします。

[注意!]プログラムを書き込みする際は、スタックチャンとPCのUSBケーブルを再接続(挿し直し)したり、スタックチャンのリセットボタンを押すたびに本手順を実行する必要があります。

以下に示すように、スタックチャンのattachコマンドを実行した後、再度USBデバイスリスト出力してください。

(今回もbindのときと同様、<スタックチャンのBUSID>部分を自身のスタックチャンのBUSID`と置き換えて実行します。)

PS C:\WINDOWS\system32> usbipd attach --wsl --busid <スタックチャンのBUSID>
PS C:\WINDOWS\system32> usbipd list

USBデバイスリスト上のスタックチャンのBUSIDAttachedとなっていれば完了です。

WSL2からスタックチャンを認識できていることを確認する

WSL2からスタックチャンを認識できるかを確認します。

Ubuntuでの作業に移ります。

lsusbコマンドで認識していることを確認します。 先程のPowerShell上でのスタックチャンと同じ名称のデバイスが表示されています。 今回の例では、USB JTAG/serial debug unitです。

$ lsusb

プログラムのビルドと書き込み

ダウンロードしたスタックチャンのfirmwareに移動し、プログラムのビルド・書き込みます。ビルドを行うことで、プログラムをM5Stackが実行できる形式に変換できます。ビルドしたプログラムをM5Stackに書き込めれば、スタックチャンを動かす手順は完了です。

先程の操作からUbuntuのウインドウを開いた状態であれば、一度再起動(Ubuntuのウインドウを閉じてから再度開く)してください。

cd stack-chan/firmwareで作業フォルダを移動し、npm run build --target=esp32/m5stack_cores3コマンドを実行してビルドします。

次に、npm run deploy --target=esp32/m5stack_cores3を実行すればビルドしたプログラムをスタックチャンに書き込めます。

$ cd stack-chan/firmware
$ npm run build --target=esp32/m5stack_cores3
$ npm run deploy --target=esp32/m5stack_cores3



以下のように書き込みが完了次第、リセットボタンを押下してください。



リセットボタンの位置

リセットボタンを押下した後にスタックチャンに顔が表示されていれば書き込み完了です。


[注意!]リセットボタンを押下した場合、再度プログラムを書き込むためには、スタックチャンをattachする手順 も再度実行する必要があります。

最初からやり直したい場合

どこからかマニュアル通りにいかず、エラーが出力されていまった場合、エラーに従ったり調べるすることで解決に繋がります。 ですが、Ubuntuを一旦アンインストールし、きれいな環境で最初から実行するという手段もあります。 その場合、管理者権限で開いたWindows PowerShell上で以下のコマンドを実行することで現在のUbuntuを削除することができます。

PS C:\WINDOWS\system32>  wsl --unregister Ubuntu

上記のコマンドでUbuntuを削除した後、Windows11のスタートメニューからUbuntuを選択します。 自動でUbuntuのインストールが開始され、しばらく待つとインストールが完了します。 しばらくするとUbuntuインストール後の時点と同じ状態になりますので、再度構築を開始してください。

よくある質問

リリースファイルの有効期限エラー

WSL2とPCの設定時間がずれていると、sudo apt updateコマンド実行の際に以下の画像のようにセキュリティ上のエラーが起きます。

sudo apt updateコマンドの実行が完了していない場合、これ以降の手順でも失敗するため、正しく同期していることを確認してください。

$ sudo apt update
[sudo] password for ubuntu:
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
Reading package lists... Done
E: Release file for http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease is not valid yet (invalid for another 8h 24min 40s). Updates for this repository will not be applied.
E: Release file for http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease is not valid yet (invalid for another 8h 25min 52s). Updates for this repository will not be applied.
E: Release file for http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease is not valid yet (invalid for another 6h 47min 42s). Updates for this repository will not be applied.