@パパリウス さん、こんばんは。
拙宅ではmpdでしか聴いていないので、これまで不具合などは全くないようです。
あと、パワーアンプのメーターの振れが鋭くなったように見えます。いつも目に入るので、気のせいではないと思います。
ただ、心地よすぎて、ずっと音楽を聴き続けているので寝不足気味です(^^♪
@パパリウス さん、こんばんは。
拙宅ではmpdでしか聴いていないので、これまで不具合などは全くないようです。
あと、パワーアンプのメーターの振れが鋭くなったように見えます。いつも目に入るので、気のせいではないと思います。
ただ、心地よすぎて、ずっと音楽を聴き続けているので寝不足気味です(^^♪
@パパリウス さま
業務連絡です。
ファイルアップロードの件ですが、
HTTP POSTでのファイル処理後にRaspberry側がレスポンスを正常に返せず、
2分間当該のコネクションがペンディング状態であったことが判明しました。
本日アップしたソースコードでは処理完了後即座にレスポンスを返し、
WebUI側でその返事を受け取って通知がされるように改良しています。
併せて、楽曲情報スクロールのJavaScriptでエラーが計測されましたので
これを消すように修正いたしました。
@ゴンザエモンさん
ご連絡ありがとうございます。
こちらも同じような状況です。自前であれこれやってみていますが、うまく動いてくれません。そもそもlinuxのスキルがないのでかなりハードルが高いです。。。
@ゴンザエモン さま、 @Pass さま
なかなかうまく行ってないようですね。ちょっと見てみましたsetupスクリプト
少なくとも44行の
if [ -d "/usr/lib/systemd/system" ]; then
と202行の
INITFILE="/usr/lib/systemd/system/minim${ws}.service"
を"/lib/systemd/system"に直さないと/lib/systemd/systemにminimserver.serviceは生成されませんね。
(symphonic-mpdでのsystemdのスクリプト保存先はこちらのため)
という訳でこちらで修正したものをお送りしますので差し替えしてみてください。
(systemdでの起動は確認していませんが、指定の場所にsystemdのサービスファイルは生成されたことは確認しました)。
setup.zip
sunatomoさん CC.Passさん、パパリウスさん
おはようございます。お手を煩わせてしまい申し訳ありません。アドバイスに基づき早速下記の手順にてやってみました。sysytemdへの登録はうまくいくのですが、systemctlでの起動が出来ず結果自動起動がまだできていません。(通常の起動は問題なし)
手動起動ではstartdのスクリプト125行目(下記記載)で「JAVA : command not found」で叱られています、、、通常起動とsysytemctl起動の動きが若干違うのかな、、、
(添付、長くてすみません)
1.為念バックアップを取得
root [ ~ ]# mkdir /home/pi/backup
root [ ~ ]# cp /home/pi/minimserver/bin/setup /home/pi/backup
root [ ~ ]# ls /home/pi/backup
setup
2.setupを編集して起動 (44行目と202行目を ctl+jキーで探すと早い)
root [ ~ ]# nano /home/pi/minimserver/bin/setup
root [ ~ ]# /home/pi/minimserver/bin/setup
(以下setupの応答、正しい処理がスタート)
MinimServer desktop integration is not available
MinimServer automatic startup is disabled
Do you want to change these settings (y/n)?
y
Enable automatic startup for MinimServer (y/n)?
y
Created symlink /etc/systemd/system/multi-user.target.wants/minimserver.service → /lib/systemd/system/minimserver.service.
MinimServer automatic startup has been enabled
3.minimserverのステータスを見てみる。が、systemctlでは起動できない。(これが問題?)
root [ ~ ]# systemctl status minimserver.service
● minimserver.service - MinimServer
Loaded: loaded (/lib/systemd/system/minimserver.service; enabled; vendor preset: enabled)
Active: inactive (dead)
root [ ~ ]# systemctl start minimserver.service
Job for minimserver.service failed because the control process exited with error code.
See "systemctl status minimserver.service" and "journalctl -xe" for details.
4.minimserverの手動起動(問題無し)
root [ ~ ]# /home/pi/minimserver/bin/startd
/home/pi/minimserver/bin/startd: line 144: warning: command substitution: ignored null byte in input
5.systemdに登録された内容
root [ ~ ]# nano /lib/systemd/system/minimserver.service
[Unit]
Description=MinimServer
After=multi-user.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/pi/minimserver/bin/startd init
ExecStop=/home/pi/minimserver/bin/stopall
[Install]
WantedBy=multi-user.target
6.rebootするも起動されない。(systemctl startでエラーになっているため?)
root [ ~ ]# systemctl status minimserver.service
● minimserver.service - MinimServer
Loaded: loaded (/lib/systemd/system/minimserver.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2020-04-26 08:38:18 JST; 1min 59s ago
Process: 243 ExecStart=/home/pi/minimserver/bin/startd init (code=exited, status=1/FAILURE)
Main PID: 243 (code=exited, status=1/FAILURE)
CPU: 137ms
Apr 26 08:38:18 smpd startd[276]: /home/pi/minimserver/bin/startd: line 125: java: command not found
Apr 26 08:38:18 smpd systemd[1]: minimserver.service: Main process exited, code=exited, status=1/FAILURE
Apr 26 08:38:18 smpd systemd[1]: minimserver.service: Failed with result 'exit-code'.
Apr 26 08:38:18 smpd systemd[1]: Failed to start MinimServer.
(startd の125行目がエラー、二段になっているが、一行)
LD_LIBRARY_PATH="${MINIMDIR}/libsys" MINIM_LANG="${MINIM_LANG}" "${JAVAX}" ${JAVAOPTS} -jar "${MINIMDIR}/lib/m${ws}.jar" --launchrc --set watch.view=log --nohup ${MINIMOPTS} "$@" >"${OUTFILE}" 2>&1 &
(以下のように手動起動するとちゃんと動く)
root [ ~ ]# /home/pi/minimserver/bin/startd init
(ただし、systemctlでの停止は出来ない、startでのエラー状態のままだから?)
root [ ~ ]# systemctl stop minimserver.service
root [ ~ ]# systemctl status minimserver.service
● minimserver.service - MinimServer
Loaded: loaded (/lib/systemd/system/minimserver.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2020-04-26 08:38:18 JST; 17min ago
Process: 243 ExecStart=/home/pi/minimserver/bin/startd init (code=exited, status=1/FAILURE)
Main PID: 243 (code=exited, status=1/FAILURE)
CPU: 137ms
Apr 26 08:38:18 smpd startd[276]: /home/pi/minimserver/bin/startd: line 125: java: command not found
Apr 26 08:38:18 smpd systemd[1]: minimserver.service: Main process exited, code=exited, status=1/FAILURE
Apr 26 08:38:18 smpd systemd[1]: minimserver.service: Failed with result 'exit-code'.
Apr 26 08:38:18 smpd systemd[1]: Failed to start MinimServer.
(手動での停止はできる)
root [ ~ ]# /home/pi/minimserver/bin/stopall
Stopping MinimServer process 342
7.journalctl -xeの中身(一部抜粋、125行目がエラーなのは同じ)
A start job for unit minimserver.service has finished with a failure.
The job identifier is 80 and the job result is failed.
Apr 26 09:02:49 smpd startd[457]: /home/pi/minimserver/bin/startd: line 125: java: command not found
Apr 26 09:02:49 smpd systemd[1]: minimserver.service: Main process exited, code=exited, status=1/FAILURE
Subject: Unit process exited
Defined-By: systemd
Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
An ExecStart= process belonging to unit minimserver.service has exited.
The process' exit code is 'exited' and its exit status is 1.
Apr 26 09:02:49 smpd systemd[1]: minimserver.service: Failed with result 'exit-code'.
Subject: Unit failed
Defined-By: systemd
Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
The unit minimserver.service has entered the 'failed' state with result 'exit-code'.
Apr 26 09:02:49 smpd systemd[1]: Failed to start MinimServer.
Subject: A start job for unit minimserver.service has failed
Defined-By: systemd
Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
A start job for unit minimserver.service has finished with a failure.
sunatomo さん ゴンザエモン さん
ccパパリウス さん
sunatomoさん
修正ファイルまで作って頂きありがとうございます。
お手数をかけしてしまい申し訳ありません。
ゴンザエモンさん
こちらの状況も全く同じです。
systemctl status minimserver.serviceで「java: command not found」「code=exited, status=1/FAILURE」と言われているので、起動タイミングが早すぎるのかと思い、いろいろと試しているところですが、どこをどういじればよいのやら。。。
root [ ~ ]# systemctl list-dependencies
default.target
● ├─dbus.service
● ├─dsctl.service
● ├─minimserver.service
● ├─mpd.service
● ├─rc-local.service
● ├─shairport-sync.service
● ├─sshd.service
● ├─systemd-ask-password-wall.path
● ├─systemd-logind.service
● ├─systemd-networkd.service
● ├─systemd-resolved.service
● ├─systemd-update-utmp-runlevel.service
● ├─upmpdcli.service
● ├─basic.target
● │ ├─-.mount
● │ ├─tmp.mount
● │ ├─paths.target
● │ ├─slices.target
● │ │ ├─-.slice
● │ │ └─system.slice
● │ ├─sockets.target
● │ │ ├─dbus.socket
● │ │ ├─mpd.socket
● │ │ ├─systemd-coredump.socket
● │ │ ├─systemd-initctl.socket
● │ │ ├─systemd-journald-audit.socket
● │ │ ├─systemd-journald-dev-log.socket
● │ │ ├─systemd-journald.socket
● │ │ ├─systemd-networkd.socket
● │ │ ├─systemd-udevd-control.socket
● │ │ ├─systemd-udevd-kernel.socket
● │ │ └─ympd.socket
● │ ├─sysinit.target
● │ │ ├─dev-hugepages.mount
● │ │ ├─dev-mqueue.mount
● │ │ ├─fake-hwclock.service
● │ │ ├─kmod-static-nodes.service
● │ │ ├─proc-sys-fs-binfmt_misc.automount
lines 1-39...skipping...
皆様、マロンです。SMPDの音の素晴らしさに感激しています。開発には大変なご苦労がありますので、頑張ってくださいとしか言えませんが、正式版ラズパイ4が出ることに期待しております。
以前は再生システムの問題で、ラズパイ3最新版のSMPD V9.6は、解像度やクリアさがあるのですが音が細くて、前のバージョンに戻して聞いていましたが、システムを良くすると、実は最新版がやはり最高だということに気づきました。
私は色々実験した中でRAMに音源を入れ再生させてからLANケーブルを抜いて再生する方法が、どれよりも飛びぬけて音が良いという結果が出ましたので、いつもその方法で再生しています。問題点は操作性の悪さで、途中で再生を止めて次の再生をするとかはできず、そうする時はLANケーブルを再度繫いで操作しなければなりませんが、再生される音は素晴らしいのです。他の場合との差が大きいのです。2つのラズパイを使えば少し近づくのですが、未だ差があります。まぁ、アナログレコードを再生しているのと手間は変わらないのですが・・・・
それとこのような再生をしていますとRAM領域が小さいので、アルバム1枚が限度で、ハイレゾやDSDだと1曲しか再生できません。パパリウスさま正式版ラズパイ4でRAM領域をもう少し拡大できないでしょうか?
現在の再生システム
ラズパイ3→KALIリクロッカーI2S→逢瀬インテグレート250DAC部→逢瀬Ncore500モノアンプ→自作SP
以上よろしくお願いいたします。
@sunatomoさん
ありがとうございます。動きました!!
神様、仏様、sunatomo様 CC.Passさん、皆様
sysytemctlでのstart、enableによる自動起動もOKとなりました。ありがとうございました!
sunatomoさんのようなプロが見れば一発なのですね、、、スキル不足を恥じる次第です。もっと勉強せねば。
皆様:
またまたのたくさんの板汚し、すみませんでした!
(参考)
/home/pi/minimserver/bin/startdの編集を行う際はchmodで書き込み権限を与えてください。
ゴンザエモンさんの環境でも無事起動したようですね。
これでsmpdの可能性が広がり、楽しみ方もいろいろですね。
sunatomoさん、ゴンザエモンさん
この度はいろいろとお世話になり、本当にありがとうございました。
@ゴンザエモン さま、 @Pass さま
お役に立てたようで何よりです。
今回はシェルスクリプトでしたので、中身が見えたというのが大きいですね。
Windowsなどと違い色々イジれるところがUnix系OSの面白みかつ面倒くさいところですが、
上手く付き合っていきましょう。
@マロン さま
レスを書くために裏で見ていてレスが遅れましたが、
現状のβでは/var/lib/mpd/music/RAMはRaspberryPiのSDカードに直接アクセスしているように見えますが如何でしょうか?
(逆にRAMディスクだと思っていたのですが、頻繁に書込をするとSDカードがどこかで壊れそうでWebUIの方でもちょっと練り直しが必要かもしれません。)
sunatomoさん
マロンです。お返事ありがとうございます。
私は、未だラズパイ4を使っていません。ラズパイ3ですので、ベータ版は試していません。過去の経験では、暫くの間arthphile というソフトを使っていて、その実験ではRAMとSDカードに保存されている音源の再生では、余り差がなかったのですが、SMPDでSDカード内音源の再生とRAMにコピーしたものの再生には、大きな差がありました。私の環境では、arthphile では、RAM(LAN抜き)=SDカード保存(LAN抜き)>USB=NAS
SMPDでは、RAM(LAN抜き)>SDカード保存(LAN抜き)>USB>NASでした。
NASは、Soundgenic HDL-RA2HF(クロック交換、トランス電源に変更済み)なので、役不足なのかもしれません。以上、よろしくお願いいたします。
@ゴンザエモン さん @Passさん @sunatomoさん
すでに解決してましたか、出遅れました。
一応、スクリプトの改変なしでの解決方法として書いときます。
~ ]# ln -s /opt/jdk/bin/java /usr/local/bin/java
~ ]# mkdir /usr/lib/systemd/system
これでインストール出来ると思います。
~ ]# systemctl start minimserver
~ ]# systemctl enable minimserver
#.serviceは省略出来る。
エラーなければ、起動時デーモンとして働いてくれます。
@マロン さま
/etc/fstabの
tmpfs /var/lib/mpd/music/RAM tmpfs defaults,size=650m,noatime,mode=0777 0 0
ここでsize=650mと書いてある場所を増やせば当該RAMディスク宛の容量を変更できます。
ただし、RaspberryPi3Bの場合は合計1GBしか無いため、あまり大量には割当しないほうが良いと思います。
(特にMPDでNAS側に大量のライブラリがある場合などはfreeコマンド等でメモリの空きを見ながら慎重に見極めが必要でしょうね)
@Cresson さま
ご提示の方法でも動作しますね。
特にstartdの場合はjavaのシンボリックリンクと直接パス指定のどちらが良いかなぁと私も考えていました。
RPi4 Edition ベータテストで@マロンが発言 :
sunatomoさん
マロンです。お返事ありがとうございます。
sunatomoさん
マロンです。お返事ありがとうございます。
RaspberryPi3BのRAMディスク宛の容量を増量させてみます。
RaspberryPi4のRAMディスク宛の容量は最大どのくらいまでなのでしょうか?
よろしくお願いいたします。
Cressonさん CC.sunatomoさん、Passさん
アドバイスいただいた方法で最初からやり直してみました。
この方法であればスクリプトの編集が不要でコマンド投入だけで良いのでよりスマートで楽ですね!
手順はこちらに沿って改訂しておきます。ありがとうございました!
一点だけ、systemdの定義が/usr/lib/systemd/systemの方に書かれてしまうので、
#cp /usr/lib/systemd/system/minimserver.service /lib/systemd/system
を行いました。
@ゴンザエモン さん
コピーしないと動かなかったですか?
/usr/lib/systemd/systemに書かれたユニットは自動で
/etc/systemd/system/multi-user.target.wants/にリンクが貼られ
そのまま動くと思うのですが?
~ ]# ls -l /etc/systemd/system/multi-user.target.wants/minimserver.service
存在しませんか?
ps.
存在しませんか?は間違いですね。
コピーする前には存在しませんでしたか?
@Cresson さん
アドバイスありがとうございます。そんな簡単な方法もあるんですね。
コピーする前には存在しませんでしたか?
setupを行う前はminimserver.serviceは存在していないはずです。
あまりよく分かっていないので見当違いならスミマセン。