2022年2月24日木曜日

pCP Mobile:IPアドレスの固定もsqueezeliteの起動もできた!!

squeezeliteをちゃんと動かすぞ!

折角IPアドレスを固定できたのに、squeezeliteが起動しなくなるなんて。。。
どうにかしなければ。

1.現象はこんな感じ
piCorePlayerのMain画面では正常に起動している。
Squeezelite is runningは✓だ

LMSの画面は真っ白。。。「プレーヤーが見つかりません。」ってさ。。。
Chooze PlayerにpCP_portableが表示されるはず(T_T)

どうやら、起動に失敗しているのではなく、
LMSに接続できてないようだ。

2.まずは、起動ログの確認
tc@pCP:~$ cat /var/log/pcp_boot.log 
Starting piCorePlayer v7.0.0 startup...
Starting rngd using /dev/hwrng... Done.
Checking for boot files on mmcblk0p1...
  Trying to mount /dev/mmcblk0p1.
  ssh file found on mmcblk0p1.
  newpcp.cfg not found on mmcblk0p1.
Setting default piCorePlayer repository...
Generating sound card drop-down list...
Starting bluetooth...
Starting wifi...
Starting WiFi on wlan0...
udhcpc: started, v1.31.1
udhcpc: sending discover
udhcpc: sending discover
sh: =: argument expected
udhcpc: sending select for 192.168.3.214
udhcpc: lease of 192.168.3.214 obtained, lease time 7200
deleting routers
route: SIOCDELRT: No such process
adding dns 192.168.3.1
adding dns 192.168.3.1
 Done.
Pei's WiFi setting Start.
Pei's WiFi setting Done.
Loading configuration file... Done.
Loading pcp-lms-functions...Starting pCP BT Speaker Daemon
 Done.
Waiting for soundcard sndrpirpidac to populate. Done (1).
Waiting for network. Done (1).
Starting Openssh server... Done.
Mounting USB Drives...
Mounting USB Drive: 12ebxxxx-xxxx-xxxx-xxxx-xxxx1f1a6b7d...
mount: /dev/mmcblk0p3 mounted on /mnt/music.
Disk Mounted at /mnt/music.
 Done.
Waiting for valid date before starting LMS ..............................Date is not set. Timeout
Starting LMS, this can take some time...[70-01-01 09:02:15.0116] main::init (388) Starting Logitech Media Server (v8.1.0, 1608700893, Wed Dec 23 12:16:44 CET 2020) perl 5.032000 - arm-linux-gnueabihf-thread-multi-64int

Slimserver Running pid:10240
 Done.
Waiting for LMS to initiate...... Done (6).
Starting Squeezelite and/or Shairport-sync...
[ INFO ] Starting Squeezelite player: Squeezelite...
 Done.
Powering off HDMI.../usr/local/etc/init.d/pcp_startup.sh: line 799: pcp_rpi_is_rpi4: not found
sh: 1: unknown operand
 Done.
Starting Samba Server...
Starting SAMBA...
 Done.
Starting httpd web server... Done.
Starting to Advertise pcp.local... Done.
Starting user commands... Done.
Setting CPU scaling governor to ondemand... Done.
Creating static footer...Waiting to connect to bluetoothd...[bluetooth]# Agent registered
[bluetooth]# connect 3F:xx:xx:xx:xx:F5 
Attempting to connect to 3F:xx:xx:xx:xx:F5
[bluetooth]# quit
[bluetooth]#  Done.

Finished piCorePlayer v7.0.0 startup.

To setup piCorePlayer, use the web interface via a browser:
 - http://192.168.3.97

Press [Enter] to access console.

In the background, ntpd is syncing time between piCorePlayer and the internet.
A large offset between 1970 and now is normal.

IPアドレスの固定もsqueezeliteの起動もエラーなく実行できているようだ。
(一箇所スクリプトがエラーになってるな。。。)

3.squeezeliteの起動スクリプトを確認してみる
pcp_startup.shのsqueezeliteの起動部分を見てみる

前略

#----------------------------------------------------------------------------------------
# Start squeezelite. If running LMS locally, start squeezelite later.
#----------------------------------------------------------------------------------------
if [ "$LMSERVER" != "yes" ]; then
if [ "$SQUEEZELITE" = "yes" ]; then
echo "${BLUE}Starting Squeezelite and/or Shairport-sync...${YELLOW}"
pcp_squeezelite_start "nohtml"
echo " ${GREEN}Done.${NORMAL}"
fi
fi

LMSがlocalで動かすときはsqueezeliteの起動は後回しだよってことなので。。。
更に下を見てみる。

中略

#----------------------------------------------------------------------------------------
# Start LMS.
#----------------------------------------------------------------------------------------
if [ "$LMSERVER" = "yes" ]; then
if [ "$LMSDATA" = "default" -o "$LMSMOUNTFAIL" = "0" ]; then
DD=0
echo -n "${BLUE}Waiting for valid date before starting LMS ${NORMAL}"
while [ $(date +"%Y") -lt 2020 -a $DD -lt 30 ]; do
echo -n "."
sleep 1
DD=$((DD+1))
done
[ $DD -lt 30 ] && echo " ${GREEN}Done.${NORMAL}" || echo "${RED}Date is not set. Timeout${NORMAL}"

echo -n "${BLUE}Starting LMS, this can take some time...${NORMAL}"
sudo /usr/local/etc/init.d/slimserver start
echo " ${GREEN}Done.${NORMAL}"
if [ "$SQUEEZELITE" = "yes" ]; then
# Wait for server to be responsive.
echo -n "${YELLOW}Waiting for LMS to initiate."
# Check response from port 3483 for Player Connects.
CNT=1
CHK=""
while [ "$CHK" != "E" ]
do
CHK=$(echo "e" | nc -w 1 -u 127.0.0.1 3483)
if [ $((CNT++)) -gt 20 ]; then
echo "${RED} LMS not running ($CNT).${NORMAL}"
break
else
echo -n "."
[ "$CHK" != "E" ] && sleep 1
fi
done
echo " ${GREEN}Done ($CNT).${NORMAL}"
echo "${BLUE}Starting Squeezelite and/or Shairport-sync...${YELLOW}"
pcp_squeezelite_start "nohtml"
echo " ${GREEN}Done.${NORMAL}"
fi
else
echo "${RED}LMS data disk failed mount, LMS and squeezelite will not start.${NORMAL}"
fi
fi

後略

squeezeliteはpcp_squeezelite_startで起動されるようだが。。。
見つけられなかった(T_T)
ただ、このスクリプトの中で「127.0.0.1 3483」なるループバックアドレスが使用されている。IPアドレスを変更したらplayerが見つけられなくなったようなので、squeezeliteに適切なアドレスを指定してやればOKなのでは???
なんて思ったよ。

4.sqeezeliteにIPアドレスを指定する箇所があるか??
piCorePlayerの「Squeezelite Settings」のパラメタを確認してみる。
LMS IPってのがある

「LMS IP」があやしい。それ以外は無さそうだ。
特別なLMSに接続する場合に指定するよ。
サーバアドレスと標準ポート3483を指定するみたい。

そして、LSMを有効にしている場合でこのLMSから聞く場合は
127.0.0.1:3483
なるループバックアドレスを使用してね。だってさ。

ということで素直に設定してみた。

5.動いた!!
「Squeezelite Settings」を保存するとsqueezeliteが再起動する。
すると。。。
piCorePlayerの画面上部に「pCP_portable」タブが表示され、
タイトルの上のタブが出た

LMS画面のプレーヤーに「pPC_portable」が表示され楽曲も表示されたよ!!
いつもの画面だ

バッチリ~(^^)v
原因は squeezelite起動時にLMSを見つけられなかったから みたい。

ついでにテザリングでも確認してみよう。
pCP_portableタブが表示された
SqueezerでもOKOK

固定IPアドレスでバッチリ動いた!!
やっとできたぞ~(^^)♪

0 件のコメント:

コメントを投稿