地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

ラズパイでミュージックボックス

ラズパイでミュージックサーバーが立ち上がった。気軽に手持ちの音源を聞くことができる。在宅で音寂しい時にBGMとしてお手軽に流せるようになった。

 

bwgift.hatenadiary.jp

 

折角なので、Webでアクセスできた方が便利かも・・・と思って、web clientをインストールしてみる。javaで動く、クライアントで良さそうなものがあったので挑戦。

github.com

 

その前にjavaraspberry piにインストール。

どうやってインストールするべきか、悩んだ末、snapsを使うことにする。お勉強の意味もありつつ、自動的にupdateするので(放置よりも)安全だろう。

 

インストール手順:

snapcraft.io

ただし、3B+だと

sudo snap install core

を実行したあと、待たされた挙句、timeoutでエラーとなった。単にtimeoutだったようで、プロセスを監視してしばらく放置。

snap install hello-world

でhello-worldをインストール後動作確認し終了。

 

OpenJDKをインストール

Install OpenJDK on Linux | Snap Store

sudo snap install openjdk

 

環境変数追加のために・・

~/.bashrcに

. $(openjdk)

の一行を追加し、

source ~/.bashrc

で反映。

 

引き続き、githubからampdをダウンロード。

java -jar -Dserver.port=8003 ampd.jar

で起動。ブラウザからhttp://myserver:8003にアクセスして動作を確認。起動までちょっぴし時間かかるけれども、ラズパイだし許容範囲内。起動してしまえば、動作にもたつきもないし問題なし。

 

さらに、systemdで起動できるように設定。

github.com

 

あらかじめ、application.propertiesを準備しお好きな設定にカスタマイズ。説明通りに設定したけれども、systemctl start ampdで起動しない。javaそのものにpathが通ってない。30分くらい悩んだ・・・。sudoの時のパスに足すのか、とか。結論としてはampd.serviceファイルにpathの環境変数を追加すると良いらしい。

 

ampd.service:

[Unit]
Description=ampd
After=syslog.target

[Service]
Environment=PATH=/snap/openjdk/current/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
User=home_user
ExecStart=/opt/ampd/ampd.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

でOK。自動起動も設定。

systemctl enable ampd.service

試しに再起動して動作確認も。

 

細かいところは使いながら設定を吟味していこう。