はじめに
([2024/04/13補足]インストール後の手順に誤りがありましたので、訂正致します。コメント欄でご指摘くださったとおり(@rabe さま、ありがとうございました!)、npm startで動かす場合、追加手順が必要になります。稼働手順をpm2経由のみに変更いたしました。ついでにタイトルも変えました(笑)
以前RaspberryPi+MagicMirror2で超簡単にGoogleフォトフレームをつくる を書きました。少し前に、ShigeZoneで売られていたSHARP Mebius Padを手に入れてしまい、MagicMirror2を稼働してみました。この機種はIntel ATOM Z3770 (Passmark:739)・4GBメモリですが、使用で困らない程度に動作します。
このように、MagicMirror2稼働にはちょうどいいサイズ・性能の中古タブレットPCが入手しやすくなっています。そこで、それらタブレットにプレインストールされているWindows10でMagicMirror2をそれなりに動かすためのインストール手順をまとめてみました。
ここでは起動時にMagicMirror2が安定的に稼働することまでを記載しておりますので、その後の設定は、以前まとめた RaspberryPi+MagicMirror2で超簡単にGoogleフォトフレームをつくる をご確認ください。
手順の概要
- MagicMirror2は、node.jsとPM2を使って稼働していることから、Windows 10 Proに以下手順でインストールすることで、RaspberryPiと同様の稼働環境にしています。ただし、一部シェルスクリプトが使われていることから、この部分は手作業で設定します。(Windows 10 Proにインストールしたので、Windows 10 Homeですと、手順の一部が異なる可能性があります)
- MagicMirror2自身は、%USERPROFILE% (/Users/<ユーザー名>/)にインストールします。
- MagicMirror2は、稼働すると画面を占有してしまいます。他のPCから、SSH経由でコマンドプロンプトを利用することを前提にしています。
- Windowsは、バージョンや稼働環境によってビミョウに挙動が異なることから、質問を頂いてもお答えするのは難しいです。むしろ「この環境だと、ここが違うのでこのようにすると動くよ」的なコメントを記載頂けると、他の閲覧者が助かります!
Windows環境を整備する
OpenSSHを入れてリモートでコマンドプロンプト/ファイル転送できるようにする。
メンテナンスしやすいように、リモートでコマンドプロンプトとファイル転送が行えるように、OpenSSHをインストールします。
- スタートメニューから、> 設定 >アプリ >アプリと機能 >オプション機能 >機能の追加 を選びます。
- ここで「OpenSSHサーバー」を選んでインストールを行います。
- インストール後、%ProgramData%\ssh\sshd_config の最後の以下2行をコメントアウトします。
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
- コントロールパネルから、> 管理ツール >サービス で、「OpenSSH SSH Server」を「自動」にして、OpenSSHを起動時に実行するようにします。
- /Users/<ユーザー名>/.ssh/ にauthorized_keysを用意した場合は、authorized_keysの Everyone 権限に読み取り権限が付加されますが、これがあると SSH 鍵認証が通らないため、この権限を削除しておきます。
これで、他のWindows PCのコマンドプロンプトなどから、
ssh <ユーザー名>@<コンピュータ名>
で、設定したPCのコマンドプロンプトを開くことができます。ファイル転送はWinSCP などのSCPクライアントも使えるようになります。
ロック画面を表示しないよう、windowsの設定を変更する
https://otona-life.com/2022/07/10/126547/ や、https://hirogura.com/2016/08/18/post-3982/ などを参考にして、サスペンドなどからの復帰時でも、ロック画面を表示せずにすぐにMagicMirror2が表示されるように設定します。
- コントロールパネル > 電源オプション で、「スリープ」ボタンの動作を「なし」に設定します。
- コントロールパネル > 管理ツール > コンピュータの管理 で、「ヒューマンインターフェイスデバイス」→「USB入力デバイス」→「プロパティ」→「電源の管理」→「電力の節約のために…」をOFFに設定します。
MagicMirror2に必要なツールをインストールします。
- node.jsをインストールします。
- git をインストールします。
- 再起動します。
MagicMirror2をインストールする
- 管理者権限でコマンドプロンプトを開きます。以下コマンドを順に実行します。
> cd %USERPROFILE%
> git clone https://github.com/MichMich/MagicMirror
> cd MagicMirror/
> npm run install-mm
- Windows だと途中でインストールに失敗するので、以下を手動で実行します。
> cd fonts && npm install && cd ..
> cd vendor && npm install && cd ..
> cd config && copy config.js.sample config.js && cd ..
- %USERPROFILE%\MagicMirror\config\config.js を修正します。(localhostがIPv6アドレスの「::1」だと、うまく動かないことがあります。)
let config = {
address: "localhost",
⇒ address: "127.0.0.1", に変更します。
正常にインストールできていれば、以下コマンドでMagicMirror2が起動します。
> npm start
無事に動いたら、[CTRL]+[C]で、いったんMagicMirror2を終了しておきます。- ** (2024/04/13修正) npm start での起動は、Installation & Usage の5a項目にある package.json の修正が必要です。修正を行うか、そのまま次の項目に進んでください。**
PM2をインストールする
node.jsで標準的に使われている管理ツール PM2で、MagicMirror2を自動実行できるようにします。
- 管理者権限でコマンドプロンプトを開き、pm2をnpmコマンドでグローバルインストールします。
npm install -g pm2
cd %USERPROFILE%\MagicMirror\
pm2 init simple
- 自動作成されたファイル「%USERPROFILE%\MagicMirror\ecosystem.config.js」を修正します。なお、ファイル内でフォルダパスを記載するときは、「\」ではなく「/」で区切ります。ファイル内で環境変数(%USERPROFILE%)は使えないので、フルパスを記載してください。
module.exports = {
apps : [{
name : "MagicMirror",
script : "node_modules/electron/cli.js",
args : "js/electron.js",
watch : ["config/config.js"] ,
cwd : "MagicMirrorのあるフォルダ(例:/Users/ユーザー名/MagicMirror)"
}]
}
- 変更したら、管理者権限でコマンドプロンプトを開き、以下を順に実行してPM2を設定します。
cd %USERPROFILE%
npm install pm2-windows-startup -g
cd MagicMirror
pm2 start
pm2 save
pm2-startup install
- これで、PCの電源を入れると、MagicMirror2が自動的に起動するようになります。
MagicMirror2の起動と停止手順
- MagicMirror2は、実行すると画面を占有してしまいます。MagicMirror2を一旦起動・停止する場合は、リモートでコマンドプロンプトを開き、以下コマンドで停止・実行します。
- MagicMirror2を実行する⇒ pm2 start all
- MagicMirror2を停止する⇒ pm2 stop all
PM2ログをローテートする手順
しばらく稼働するとPM2ログがたまってくるので、ログを適宜削除するように設定します。管理者権限でコマンドプロンプトを開き、以下を順に実行します。
- インストール
- pm2 install pm2-logrotate
- 1つのログの最大サイズ(1Mバイト)を設定します。
- pm2 set pm2-logrotate:max_size 1M
- logを保持する数(8つ)
- pm2 set pm2-logrotate:retain 8
PM2を定期的にリスタートする手順
以下に詳しいです。
- https://pm2.keymetrics.io/docs/usage/restart-strategies/#restart-at-cron-time
- 例えば以下のように設定すると、毎朝4:15にMagicMirror2が再起動します。
cron_restart: '15 4 * * *', //4:15に再起動
MagicMirror2のバージョンアップ手順
MagicMirror2は,だいたい3か月ごとにバージョンアップします。管理者権限でコマンドプロンプトを開き、以下手順で更新します。
pm2 stop all
cd MagicMirror
copy /y config\config.js config\config.js.update.bak
copy /y css\custom.css css\custom.css.update.bak
git pull
npm run install-mm
cd fonts && npm install && cd ..
cd vendor && npm install && cd ..
cd ..
pause
pm2 start all
最後に
実際の環境設定やカスタマイズは、過去の記事 RaspberryPi+MagicMirror2で超簡単にGoogleフォトフレームをつくる をご確認ください。
なお、上記記事中でモジュールのインストールを行うときは、「cd ~/MagicMirror/」の部分を、windowsの表記「cd %USERPROFILE%\MagicMirror\」に置き換えてください。