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?

Raspberry Pi Zero 2 W で Node.js/Matter.jsベースのIoTデバイスを作成する試み(1) 環境構築

Last updated at Posted at 2025-11-22

環境構築を実施した際の覚書とともに、参考にした記事をまとめておく。
(主に参考記事)

Raspberry Pi Zero 2Wのセットアップ

この記事を参考に、OSイメージをSDカードに書き込み、起動する。

ヘッドレスで開発するつもりなので、OSは"Raspberry pi OS lite(64bit)"を選択。
またイメージ作成時にWifiとSSHの設定を行った。
rpi_imager_設定_一般.png

rpi_imager_設定.png

アップデート&アップグレード

以下を実行。

sudo apt update
sudo apt upgrade

Gitのインストール

普通にapt installした

sudo apt install git

Node.jsのインストール

最新をインストールするため、NodeSource によって管理されているPPA(personal package archive) を使用して、インストールする。

sudo curl -sL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install nodejs
sudo npm install -g npm@latest

スワップの拡張

npm init @matterをすると、リソース不足で失敗する。
スワップ設定は必須だが、Trixie以降はスワップがdphys-swapfileからrpi-swapに変更されたため、man(man swap.conf)ぐらいしか情報がないので、ついでにまとめておく。

参考

swap.confの編集

インストールされているswap.confは以下のようなもの。

#  This file is part of rpi-swap.
#
#  Defaults are provided as commented-out options. Local configuration
#  should be created by either modifying this file, or by creating "drop-ins" in
#  the swap.conf.d/ subdirectory. The latter is generally recommended.
#
#  See swap.conf(5) for details.

[Main]
#Mechanism=auto

[File]
#Path=/var/swap
#RamMultiplier=1
#MaxSizeMiB=2048
#MaxDiskPercent=50
#FixedSizeMiB=

[Zram]
#RamMultiplier=1
#MaxSizeMiB=2048
#FixedSizeMiB=
# Writeback settings (for zram+file mechanism):
#WritebackTrigger=auto
#WritebackInitialDelay=180min
#WritebackPeriodicInterval=24h

推奨ではこれを編集するのではなく、これを参考に、/etc/rpi/swap.conf.dディレクトリを作成し、設定ファイルを置く。

sudo mkdir /etc/rpi/swap.conf.d
sudo nano /etc/rpi/swap.conf.d/swap.conf

開発中はswapファイルで容量を大きく取りたいので、一旦以下のような設定に。

[Main]
Mechanism=swapfile

[File]
Path=/var/swap
RamMultiplier=1
FixedSizeMiB=8192

Mechanismには、zram(圧縮メモリによるスワップ)、swapfile(よくあるファイルによるスワップ)、zram+file(zramにswapfileを組み合わせたもの)、auto(最適なものを自動選択。現状はzram+file)のいずれかをしていできる。

それでもだめだったので

デフォルトに戻した(sudo rm /etc/rpi/swap.conf.d/swap.confと再起動した)うえで、この記事を参考に、以下のコマンドを実行し、使用できる最大メモリサイズを指定してみる。

export NODE_OPTIONS="--max-old-space-size=512"

この設定でビルドに成功したので、.profileに追記する。

nano ~/.profile

Matter.jsの初期設定

ガレージのシャッター及び照明、換気扇をコントロールするデバイスを作りたいので、それに近いと思われるテンプレートdevice-composed-wc-lightを指定する。

npm init @matter device-composed-wc-light

Windows上のVSCodeからリモートで開発したい

この記事なんかを参考にしてるけど、安定的に繋がる感じがしない。

色々調べて、こんな記事を見つけた。

記事に従ってVSCodeのTypeScriptプラグインを無効化

  1. VS Codeの拡張機能ボタン(左側のツールバーにあるビルディングブロックのようなボタン)をクリック
  2. @builtin TypeScriptを検索
  3. TypeScriptとJavascript言語機能拡張機能を無効にする
  4. 再起動
    vscode_Typescript拡張機能無効化2.png

最初の起動に失敗することもあるけど。元がコピペしただけで固まってたのを考えると、だいぶ安定。

ひとまずここまで。

この連載記事の他の回

その2
その3
その4

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?