2024年6月13日木曜日

8CHボリューム:もう限界・・・

エ〜〜〜〜ッ!

システムの中心となる自作の8CHボリューム。
回路構造としては疑似T型アッテネーターを採用しているが、
これボリューム接点に電流が流れるため
ガリ等のノイズが出やすいことは認識していて、
作ったときから発生していた。

ボリュームを弄らなければ問題ないので「まいっか~」って使ってきた。
が、このところ急に酷くなってきた。
「ガリガリ〜ッ!ガリッ!ガリガリ~~!!」
と派手に鳴る!
こりゃもう限界!
このまま使うとツイーターを飛ばしちゃいそう。。。

アンプが死に、ボリュームも死に、システムが。。。死んじゃった(T T)
ボリュームは辛いなぁ。。。
予備がまだ少し残ってるから買い足してもう一度作るかなぁ。。。
あぁ~困った。どうするかなぁ。

2024年1月20日土曜日

TPA3116:やばいよ、やばいよ~

何か変?軽い!

いつものように音楽を楽しもうとしたとき、
何か変、軽い。。。低音が出てない。。。
ボリュームを上げてみても変わらない。
20HzのSineWaveを再生してSuperLowのコーンを触ってみる。
シ~~~ン、振動しない。。。
ゲゲゲッ!

念のためLowのRA-150に繋げてみたらちゃんと再生する。
ということは。。。
SuperLowのD級アンプTPA3116が死んじまった、オヨヨ(T T)
5wayになって良い感じで聞けてたのに。。。クソっ!

ポチッとするか???
いやいや、
まずは、nanoDIGIの設定を変更してLowの帯域をスルーにして、
4way構成に変更してよく考えよう。

年始早々最低やなぁ

2023年10月1日日曜日

System:システム構成図を最新にしたよ

 久々にシステム構成図を更新!

オーディオシステムは5Wayになり、ネットワークも有線LANに変更したり
色々変化があったので直近の構成図に変更したよ。
何か凄まじい状態になってきた^^;

更新してると接続を思い出す


2023年9月27日水曜日

Amazon Fire TV Stick:有線LAN接続で快適になった(第二弾)

Fire TV Stickも有線LANにするよ

Chromecastの有線LAN化が成功したので
良い気になってFire TV Stickも有線化にチャレンジ!!
Amazon Prime Videoのメニューすら表示できず最近使えてなかった(T_T)

Google先生に念のため確認してみると。。。
Fire TV には純正でイーサネットアダプタがあるようだ。
この説明にもあるように第2世代(2nd Gen)以降の製品でないとダメみたい。
早速調べてみるとバッチリ第2世代だったよ!
デバイスの種類が(2md Gen)になってる(^o^)

大丈夫みたい。
イーサネットアダプタを購入しようかと思ったけど。。。
スピードが100MBしか対応してないようなので、
Chromecastと同じようにOTGケーブルLANアダプタをポチりました。
やっぱ1GBの接続スピードが欲しい。
今度は欲張らずLANだけ

まずは現状確認。
WiFi接続になっている

接続はOTGケーブルを噛ましてLANアダプタと電源を接続するだけ。超簡単。
LANアダプタのLEDがチカチカ光るよ!
FireTVStickとChromecastが同じ接続で並んでる
接続後の状態。
接続がイーサネットに変わった!

Amazon Prime Videoのメニューもサラッと表示できるようになり、
再生中で止まることもなくなって良い感じ!
良かった(^^)/

2023年9月22日金曜日

Chromecast:有線LAN接続で快適になった

Chromecastを有線LANに接続する

最近Chromecastの動作がもっさりしてる。
特にNetflixやYoutube等の動画系をcastしたとき場合に読み込みに時間がかかり、再生中もたまに止まって読み込む状態(T_T)
初期のChromecastなので動作が遅いのかもと思い、新しいモノに買い換えようと思ってポチッとしそうになった時。。。ネットワークが遅いだけかも!と思い付いた。

ネットワークは
楽天ひかり--(光)-->ONU:Flet’s--(有線)-->ルータ:TP-Link--(WiFi)-->Chromecast
になっている。
このルータからChromecastのWiFi接続を有線に変更すれば今より早くなりそう。

でも、Chromecastには有線LANのインタフェースが無い。。。
困った時はGoogle先生!
「chromecast 初代 有線LAN」で検索すると、
同じように思っている方々がおられるようでいくつかヒットしました!!
私はりーべさんの記事を参考にさせていただきました。
有益な情報提供ありがとうございますm(_ _)m

ポイントは「OTG対応のUSBケーブルを使用する」ことみたい。
※OTGの説明は「USB OTGとは?」を参照ください。分かりやすいです。

早速、AmazonでOTGケーブルLANアダプタをポチりました。

二股のがOTGケーブル
LANアダプタは1Gbps対応のものをチョイス
欲張ってUSBコネクタ付きなんて選んじゃった^^;

まずは現状確認。
接続前はWiFi接続になっている

接続はOTGケーブルを噛ましてLANアダプタと電源を接続するだけ。超簡単。
LANアダプタのLEDがチカチカ光るよ!
接続した状態、間違うことはない

接続後の状態。
接続後はWiFi表示が消えるよ

変更後のネットワークは
楽天ひかり--(光)-->ONU:Flet’s--(有線)-->ルータ:TP-Link--(有線)-->Chromecast
になり全て有線接続になった!

Netflix等の動画系castは再生までの待ち時間が短縮され、再生中もほぼ止まることは無くなったよ(^^)v
これでちょっと延命できたぜぇ。

2023年4月1日土曜日

BATPURE:スーパーツイーター 導入で5Way化だ!

スーパーツイーター BATPURE導入

今どきのキーワード​「ハイレゾ対応」に向け、
超高域を補強するためにTakeTのBATPUREを導入したよ。
公称スペックでは再生周波数帯域がなんと20kHz〜100kHz。100kHzだぜぇ!
部品のようなパッケージ

​届いた現物を確認したが、驚くほど小さい。
10円玉と並べるとそのサイズ感がよく分かる。
ほぼ同じ

​さっそくハンダ付けを行う。
ケーブルは手持ちのオヤイデ電気シリコン線「RSCB」を使用。
柔らかいケーブルが扱いやすい

​取付については、手持ちのステーが幅もネジ穴もピッタリだった。
高域用ドライバーのDH2010の上部にこのステーを固定し、BATPUREを貼り付けている。
バッチリ~
裏側のシールでペタっと

​回路はDH2010と並列に接続。
これでシステムは5way構成となった。
BATPUREが分かるかな?

​ハイレゾ音源を再生しながら、
BATPUREを塞いだり離したりして聴き比べをしてみたが……
正直なところ、私の耳には違いが判然としない。
う~~~ん。。。

モスキート音が聞こえない年齢のせいか!?
「計器で計れよ!」って話なのかもしれないが ^^;
​とはいえ、100kHzまで再生可能というスペック上の安心感と、
この小さなユニットが鎮座している佇まいは悪くない。

2022年5月5日木曜日

DAC:SLOWの左右アンバランスはトランスが原因だった

なんかSLOWが変???

最初は大丈夫だったと思うが。。。
いつの頃かSLOWの左右がアンバランスだということに気づいた。
左チャンネルは盛大になるが、右チャンネルは大人しい。
で、色々試したよ。
  • アンプをDenon→GAOHOUに入れ替えてみた
  • DAC→アンプのケーブルを入れ替えてみた
  • デバイダnanoDIGI→DAC基盤のケーブルを交換してみた
  • トランスA28-271のアウト側の抵抗を交換してみた
  • トランスA28-271のアウト側の抵抗を半固定20KΩにして調整してみた
この位置でもアンバランスだったので調整はやめた
  • トランスA28-271を交換してみた
一組追加注文したよ
型番の枝が86S→22Sになってるよ

新たな2つを順に交換してみたが同じ結果だった。。。
ということで結局左チャンネルのトランスが異常だったようだ。

ということで新品のトランスA28-271に交換したよ。

やっと原因が判明し左右バランスは取れたが。。。
大人しい方の出力になってしまったので
LOWに使用しているTD-2をSLOWに交換することにした。
デバイダnanoDIGI→DAC、トランス→OUT端子の結線を交換したよ

良い感じに鳴るようになった♪
システム構成図も変更しておいた。
一件落着!

2022年2月27日日曜日

pCP Mobile:Raspberry Pi Zero W + piCorePlayer = Digital Audio Player(DAP)

piCorePlayerでmobileできた♪

2021年1月3日に思い立ち1年少々かかってやっとできた。
PiZeroWの起動に少々時間がかかるけど。。。
起動してしまえば普通のDAPと変わらないよ♪
RaspberryPiZeroWとモバイルバッテリー

通勤時等の外出時にはスマホにテザリングしてDAPとして使用し、
Squeezerで操作
LMSで操作
Bluetoothのイヤホンで聴きます♪
Bluetoothイヤホンは無いので
レシーバーとポタアンを介して有線イヤホンで聴く。

コンテンツの更新は自宅WiFiに接続して行う。
ファイル共有で操作

システムの調整は必要に応じてpiCoreplayerとLogitech Media Server(LMS)で行います。
piCorePlayerの設定画面
LMSの設定画面

外出時も帰宅時も起動すれば自動的にネットに接続できるので
なかなか良い感じで使えます。
ということで完成(^^)/~~

後は使いながら問題あれば解決しよっと。

2022/4/4:追記
テザリング時のIPアドレスは固定できないことがわかった。
Network Utilityで調べてから接続することになる。。。よ。

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アドレスでバッチリ動いた!!
やっとできたぞ~(^^)♪

2022年2月20日日曜日

pCP Mobile:自宅WiFiとスマホテザリングのIPアドレスを固定できた!(スマホはダメ)

接続しているSSIDでIPアドレスを変更したい(pcp_startup.sh編)

wlan0.shが起動するときには未だWiFiが接続完了になってないようだ。
ならば、その後に設定すれば良いじゃん!
と思いついた。

piCorePlayerがブート時にキックするコマンドは
/opt/bootlocal.shからキックされる/usr/local/etc/init.d/pcp_startup.shのようだ。
これを変更してみる。

1.pcp_startup.shの確認
早速、/usr/local/etc/init.d/pcp_startup.shの中身を確認してみる。

tc@pCP:/usr/local/etc/init.d$ cat pcp_startup.sh 
#!/bin/sh
# put other system startup commands here

GREEN="$(echo -e '\033[1;32m')"

echo
echo "${GREEN}Running bootlocal.sh..."
#pCPstart------
/usr/local/etc/init.d/pcp_startup.sh 2>&1 | tee -a /var/log/pcp_boot.log

中略

#----------------------------------------------------------------------------------------
# Start wifi.
#----------------------------------------------------------------------------------------
WPACONFIGFILE=$WPASUPPLICANTCONF

if [ $WPACONFIGFOUND -eq 1 ]; then
WIFI="on"
pcp_save_to_config
dos2unix -u $WPACONFIGFILE
if [ $(pcp_wifi_maintained_by_user) -ne 0 ]; then
pcp_wifi_read_wpa_supplicant "colour"
pcp_wifi_write_wpa_supplicant "colour"
fi
pcp_wifi_update_wifi_onbootlst
pcp_backup text
echo "${RED}Reboot needed to enable wifi...${NORMAL}"
sleep 3
sudo reboot
exit 0
fi

if [ "$WIFI" = "on" ]; then
echo -n "${BLUE}"
/usr/local/etc/init.d/wifi wlan0 start
echo "Starting WiFi... ${GREEN}Done.${NORMAL}"
fi

#----------------------------------------------------------------------------------------
# Load configuration file pcp.cfg
#----------------------------------------------------------------------------------------
echo -n "${BLUE}Loading piCorePlayer configuration file...${NORMAL}"

中略

echo "${YELLOW}A large offset between 1970 and now is normal.${NORMAL}"

sudo su -c 'echo "Finished piCorePlayer v'${PCP_VERSION}' startup." > /dev/kmsg'

unset ORIG_AUDIO

という具合に長いスクリプトだ。
この中でwlan0.shがキックされ終了時には「Starting WiFi...」となり
WiFi接続が完了するようだ。

2.WiFiの状態を確認してみる
pcp_startup.shを修正してWiFi完了後の状態を確認する。

tc@pCP:/usr/local/etc/init.d$ sudo vi pcp_startup.sh 
tc@pCP:/usr/local/etc/init.d$ cat pcp_startup.sh
前略

if [ "$WIFI" = "on" ]; then
echo -n "${BLUE}"
/usr/local/etc/init.d/wifi wlan0 start
echo "Starting WiFi... ${GREEN}Done.${NORMAL}"
fi

#-------------
# Pei
#-------------
wpa_cli -iwlan0 status
iwconfig wlan0

#----------------------------------------------------------------------------------------
# Load configuration file pcp.cfg
#----------------------------------------------------------------------------------------

後略

という具合に突っ込んでみ、変更後は保存してリブート!
tc@pCP:/usr/local/etc/init.d$ sudo filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz / 
Done.
tc@pCP:/usr/local/etc/init.d$ sudo reboot

起動ログを確認してみる。
tc@pCP:~$ cat /var/log/pcp_boot.log
Starting piCorePlayer v8.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 WiFi on wlan0...
udhcpc: started, v1.33.0
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending select for 192.168.3.188
udhcpc: lease of 192.168.3.188 obtained, lease time 7200
deleting routers
route: SIOCDELRT: No such process
adding dns 192.168.3.1
adding dns 192.168.3.1
Starting WiFi... Done.
bssid=40:xx:xx:xx:xx:32
freq=2452
ssid=TP-Link_BC32
id=0
id_str=Home
mode=station
wifi_generation=4
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.3.188
address=88:xx:xx:xx:xx:5e
uuid=e92axxxx-xxxx-xxxx-xxxx-xxxxff278537
wlan0     IEEE 802.11  ESSID:"TP-Link_BC32"  
          Mode:Managed  Frequency:2.452 GHz  Access Point: 40:xx:xx:xx:xx:32   
          Bit Rate=6.5 Mb/s   Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=61/70  Signal level=-49 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0

Loading piCorePlayer configuration file... Done.
Loading pcp-lms-functions... Done.
Waiting for sound card Headphones to populate......................................... Failed to find Headphones... Done (42).
Waiting for network. Done (1).
Starting Openssh server... Done.
Starting Squeezelite and/or Shairport-sync... Done.
Starting httpd web server... Done.
Starting to advertise pcp.local... Done.
Setting CPU scaling governor to ondemand... Done.
Creating static footer... Done.

Finished piCorePlayer v8.0.0 startup.

よっしゃ~、バッチリSSIDを取得できてる!!
ここに突っ込むぞ。

3.IPアドレスを変更する
IPアドレスはDHCPで取得しているが勝手に変更できるようだ。
なので、このタイミングでSSIDを識別してIPアドレスを変更するようにした。

tc@pCP:/usr/local/etc/init.d$ sudo vi pcp_startup.sh 
tc@pCP:/usr/local/etc/init.d$ cat pcp_startup.sh
前略

if [ "$WIFI" = "on" ]; then
echo -n "${BLUE}"
/usr/local/etc/init.d/wifi wlan0 start
echo "Starting WiFi... ${GREEN}Done.${NORMAL}"
fi

#-------------
# Pei
#-------------
wpa_cli -iwlan0 status
iwconfig wlan0
if  iwconfig wlan0 | grep -q Redmi ; then
    ifconfig wlan0 192.168.132.231 netmask 255.255.255.0 broadcast 192.168.132.255 up
else
    ifconfig wlan0 192.168.3.96 netmask 255.255.255.0 broadcast 192.168.3.255 up
fi
echo "Pei's WiFi setting Done."

#----------------------------------------------------------------------------------------
# Load configuration file pcp.cfg
#----------------------------------------------------------------------------------------

という具合にしてみた。
スマホテザリングできなくても自宅WiFiに繋がるように順序を入れ替えた。

変更後は保存してリブート!
tc@pCP:/usr/local/etc/init.d$ sudo filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz / 
Done.
tc@pCP:/usr/local/etc/init.d$ sudo reboot

起動ログを確認してみる。
tc@pCP:~$ cat /var/log/pcp_boot.log
Starting piCorePlayer v8.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 WiFi on wlan0...
udhcpc: started, v1.33.0
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending select for 192.168.3.188
udhcpc: lease of 192.168.3.188 obtained, lease time 7200
deleting routers
route: SIOCDELRT: No such process
adding dns 192.168.3.1
adding dns 192.168.3.1
Starting WiFi... Done.
bssid=40:xx:xx:xx:xx:32
freq=2452
ssid=TP-Link_BC32
id=0
id_str=Home
mode=station
wifi_generation=4
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.3.188
address=88:xx:xx:xx:xx:5e
uuid=e92axxxx-xxxx-xxxx-xxxx-xxxxff278537
wlan0     IEEE 802.11  ESSID:"TP-Link_BC32"  
          Mode:Managed  Frequency:2.452 GHz  Access Point: 40:xx:xx:xx:xx:32             Bit Rate=6.5 Mb/s   Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=61/70  Signal level=-49 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:3   Missed beacon:0

Pei's WiFi setting Done.
Loading piCorePlayer configuration file... Done.
Loading pcp-lms-functions... Done.
Waiting for sound card Headphones to populate......................................... Failed to find Headphones... Done (42).
Waiting for network. Done (1).
Starting Openssh server... Done.
Starting Squeezelite and/or Shairport-sync... Done.
Starting httpd web server... Done.
Starting to advertise pcp.local... Done.
Setting CPU scaling governor to ondemand... Done.
Creating static footer... Done.

Finished piCorePlayer v8.0.0 startup.

スクリプトはちゃんと動いたようだ。
試してみる。

tc@pCP:~$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 88:xx:xx:xx:xx:5E
          inet addr:192.168.3.96  Bcast:192.168.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:176 errors:0 dropped:57 overruns:0 frame:0
          TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:24689 (24.1 KiB)  TX bytes:14106 (13.7 KiB)

自宅WiFiのIPアドレスはちゃんと変更された。
192.168.3.96

今度はスマホにテザリングしてみると。。。
ちゃんと指定したIPアドレスに設定されていた。
192.168.132.231

やった~~!!できたできた~♪
後は本番機のスクリプトを変更して完了だぜ!!

2022/04/04:追記
スマホでsqueezeliteに接続できない。
ブラウザで192.168.132.231に接続もできない。
スマホ側のifconfigをコメントアウトしてみたら。。。
192.168.232.235なんてIPアドレスでテザリングされている!!
スマホがIPアドレスを取得する際に3オクテット目以降が変更されるようだ。
ということでテザリングのIPアドレスを固定することはできない。

そのため、前回設定で接続できなければ、
Network Utilityを使用してIPアドレスを調べるしかなさそうだ。
とりあえず今はそうしている(T_T)



pCP Mobile:自宅WiFiとスマホテザリングのIPアドレスを固定したい(原因判明)

接続しているSSIDでIPアドレスを変更したい(wlan0.sh編part2)

なぜSSIDを正しく評価できないのだろう。。。?
そもそも、wlan0.shが動く際にWiFiに接続できているのか??
と思いスクリプトを変更し状態を確認してみる。

1.正しく評価できない原因は?
tc@pCP:/opt$ sudo vi wlan0.sh 
tc@pCP:/opt$ cat wlan0.sh 
#!/bin/sh
# Maintained by piCorePlayer
echo "[ INFO ] Running $0..."
NWOK=1
until [ -d /sys/class/net/wlan0 ]
do
    if [ $((CNT++)) -gt 50 ]; then
        echo -n "${RED}No Ethernet Adapter [wlan0] Found!${NORMAL}"
        NWOK=0
        break
    else
        echo -n "."
        sleep 0.5
    fi
done

echo iwconfig wlan0

if [ $NWOK -eq 1 ]; then
    ifconfig wlan0 192.168.3.90 netmask 255.255.255.0 broadcast 192.168.3.255 up
    route add default gw 192.168.3.1
    sudo echo nameserver 192.168.3.1 > /etc/resolv.conf
    /etc/init.d/settime.sh &
fi

変更後は保存してリブート!
tc@pCP:/opt$ sudo filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz / 
Done.
tc@pCP:/opt$ sudo reboot

起動ログを確認してみる。

tc@pCP:~$ cat /var/log/pcp_boot.log
Starting piCorePlayer v8.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 WiFi on wlan0...
[ INFO ] Running /usr/local/etc/init.d/wifi...
wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
Starting WiFi... Done.
Loading piCorePlayer configuration file... Done.
Loading pcp-lms-functions... Done.
Waiting for sound card Headphones to populate......................................... Failed to find Headphones... Done (42).
Waiting for network. Done (1).
Starting Openssh server... Done.
Starting Squeezelite and/or Shairport-sync... Done.
Starting httpd web server... Done.
Starting to advertise pcp.local... Done.
Setting CPU scaling governor to ondemand... Done.
Creating static footer... Done.

Finished piCorePlayer v8.0.0 startup.

なんと、「TP-Link」が無い!!
「off/any」になってる。
この時点では自宅WiFiには接続されてないんだ。。。(T_T)

2.supplicant(認証用クライアント)の状態は?
WiFi接続する際のsupplicantで使用するコマンドはwpa_cliのようだ。
試してみる。

tc@pCP:/opt$ wpa_cli
wpa_cli v2.9
Copyright (c) 2004-2019, Jouni Malinen <j@w1.fi> and contributors

This software may be distributed under the terms of the BSD license.
See README for more details.


Selected interface 'wlan0'

Interactive mode

> stuatus
bssid=40:xx:xx:xx:xx:32
freq=2452
ssid=TP-Link_BC32
id=0
id_str=Home
mode=station
wifi_generation=4
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.3.90
address=88:xx:xx:xx:xx:5e
uuid=e92axxxx-xxxx-xxxx-xxxx-xxxxff278537
> q
tc@pCP:/opt$

という具合にオプションなしで起動するとインタラクティブモードになるようだ。
オプションを指定して実行するとコマンドとして処理できる。

tc@pCP:/opt$ wpa_cli -iwlan0 status
bssid=40:xx:xx:xx:xx:32
freq=2452
ssid=TP-Link_BC32
id=0
id_str=Home
mode=station
wifi_generation=4
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.3.90
address=88:xx:xx:xx:xx:5e
uuid=e92axxxx-xxxx-xxxx-xxxx-xxxxff278537

こんな感じで状態が確認できることが分かった。
早速wlan0.shに追記して調べてみる。

tc@pCP:/opt$ sudo vi wlan0.sh 
tc@pCP:/opt$ cat wlan0.sh 
#!/bin/sh
# Maintained by piCorePlayer
echo "[ INFO ] Running $0..."
NWOK=1
until [ -d /sys/class/net/wlan0 ]
do
    if [ $((CNT++)) -gt 50 ]; then
        echo -n "${RED}No Ethernet Adapter [wlan0] Found!${NORMAL}"
        NWOK=0
        break
    else
        echo -n "."
        sleep 0.5
    fi
done

wpa_cli -iwlan0 status
iwconfig wlan0

if [ $NWOK -eq 1 ]; then
    ifconfig wlan0 192.168.3.90 netmask 255.255.255.0 broadcast 192.168.3.255 up
    route add default gw 192.168.3.1
    sudo echo nameserver 192.168.3.1 > /etc/resolv.conf
    /etc/init.d/settime.sh &
fi

変更後は保存してリブート!
tc@pCP:/opt$ sudo filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz / 
Done.
tc@pCP:/opt$ sudo reboot

起動ログを確認してみる。

tc@pCP:~$ cat /var/log/pcp_boot.log 
Starting piCorePlayer v8.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 WiFi on wlan0...
[ INFO ] Running /usr/local/etc/init.d/wifi...
wpa_state=SCANNING
address=88:xx:xx:xx:xx:5e
uuid=e92axxxx-xxxx-xxxx-xxxx-xxxxff278537
wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          
Starting WiFi... Done.
Loading piCorePlayer configuration file... Done.
Loading pcp-lms-functions... Done.
Waiting for sound card Headphones to populate......................................... Failed to find Headphones... Done (42).
Waiting for network. Done (1).
Starting Openssh server... Done.
Starting Squeezelite and/or Shairport-sync... Done.
Starting httpd web server... Done.
Starting to advertise pcp.local... Done.
Setting CPU scaling governor to ondemand... Done.
Creating static footer... Done.

Finished piCorePlayer v8.0.0 startup.

なんと、「SCANNING」スキャン中だってさ。。。
原因は判明したが、さてどうするか、う~~ん。。。

2022年2月19日土曜日

pCP Mobile:自宅WiFiとスマホテザリングのIPアドレスを固定したい(失敗)

接続しているSSIDでIPアドレスを変更したい(wlan0.sh編)

ホスト名でアクセスできないことが分かったので色々考えてみた。
で、
piCorePlayerの設定をDHCPからStatic IPに変更して、
接続しているSSIDを識別してIPアドレスを設定すれば良いじゃん。
と思いついた!
早速、手元にある予備のRPiを使用して試してみる。

1.Static IPに変更
DHCPで振られたIPアドレス:192.168.3.188でpiCorePlayerにアクセスして、
Main Page>Beta tab>Static IPでDHCPからStatic IPに変更する。
192.168.3.97を指定してリブート

バッチリ変更したStatic IPに変更された。
192.168.3.97になった

で、ここからが問題。
piCorePlayerのシステム上のどこが変更になったのか?

2.設定状況の確認
piCorePlayerを初期設定するスクリプトは/optに置かれている。(ここ参照)
tc@pCP:~$
tc@pCP:~$ cd /opt
tc@pCP:/opt$ ls -a
./              .filetool.lst   bootlocal.sh    shutdown.sh     wlan0.sh
../             .xfiletool.lst  bootsync.sh     tcemirror
ブラウズしてみるとwlan0.shと分かる。

中身を確認してみる。
tc@pCP:/opt$ cat wlan0.sh 
#!/bin/sh
# Maintained by piCorePlayer
echo "[ INFO ] Running $0..."
NWOK=1
until [ -d /sys/class/net/wlan0 ]
do
    if [ $((CNT++)) -gt 50 ]; then
        echo -n "${RED}No Ethernet Adapter [wlan0] Found!${NORMAL}"
        NWOK=0
        break
    else
        echo -n "."
        sleep 0.5
    fi
done
if [ $NWOK -eq 1 ]; then
    ifconfig wlan0 192.168.3.97 netmask 255.255.255.0 broadcast 192.168.3.255 up
    route add default gw 192.168.3.1
    sudo echo nameserver 192.168.3.1 > /etc/resolv.conf
    /etc/init.d/settime.sh &
fi

設定したIPアドレスがありました。
このスクリプトを変更すれば良さそうです。

3.接続しているSSIDを取得する
WiFiの設定をするコマンドはiwconfigのようだ。
試してみる。

tc@pCP:~$ iwconfig 
lo        no wireless extensions.

wlan0     IEEE 802.11  ESSID:"TP-Link_BC32"  
          Mode:Managed  Frequency:2.452 GHz  Access Point: 40:xx:xx:xx:xx:32   
          Bit Rate=39 Mb/s   Tx-Power=20 dBm   
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=57/70  Signal level=-53 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:7  Invalid misc:9   Missed beacon:0

という具合にSSIDを含んだ表示がされる。
wlan0に絞るには
tc@pCP:~$ iwconfig wlan0 
とすれば良い。

4.SSIDを評価する
iwconfigの結果に"TP-Link"が含まれているかを調べる。
tc@pCP:~$ iwconfig wlan0 | grep TP-Link ; echo $?
wlan0     IEEE 802.11  ESSID:"TP-Link_BC32"
0
tc@pCP:~$ iwconfig wlan0 | grep TPLink ; echo $?
1
という具合に評価できる。

5.評価結果を使用して接続するIPアドレスを変更する
Static IPの評価に加えてSSIDの評価を追加してみた。
grepが無言で動くように-qオプションを付けるよ。

tc@pCP:/opt$ sudo vi wlan0.sh
tc@pCP:/opt$ cat wlan0.sh
#!/bin/sh
# Maintained by piCorePlayer
echo "[ INFO ] Running $0..."
NWOK=1
until [ -d /sys/class/net/wlan0 ]
do
    if [ $((CNT++)) -gt 50 ]; then
        echo -n "${RED}No Ethernet Adapter [wlan0] Found!${NORMAL}"
        NWOK=0
        break
    else
        echo -n "."
        sleep 0.5
    fi
done
if [ $NWOK -eq 1 ] && iwconfig wlan0 | grep -q TP-Link ; then
    ifconfig wlan0 192.168.3.96 netmask 255.255.255.0 broadcast 192.168.3.255 up
    route add default gw 192.168.3.1
    sudo echo nameserver 192.168.3.1 > /etc/resolv.conf
    /etc/init.d/settime.sh &
else
    ifconfig wlan0 192.168.132.231 netmask 255.255.255.0 broadcast 192.168.132.20
    route add default gw 192.168.132.148
    sudo echo nameserver 192.168.132.148 > /etc/resolv.conf
    /etc/init.d/settime.sh &
fi

設定を保存するための呪文
tc@pCP:/opt$ sudo filetool.sh -b
Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz / 
Done.

6.テスト!!
リブートしてみるよ。
tc@pCP:/opt$ sudo reboot

自宅WiFiには繋がらない。。。(T_T)
試しにテザリングしてみると繋がった。。。
テザリングができた

どうやらSSIDの評価ができてないようだ。。。
ダメだ(T_T)
どうしてなんだろう???

2022年2月8日火曜日

pCP Mobile:piCorePlayerをホスト名でアクセスしてみる(失敗)

ホスト名でPingしてみた。

pCPのIPアドレスはDHCPで取得することになっている。
大体が前回取得したIPアドレスが付与されるがたまに変更になる場合がある。
で、ホスト名pCPでアクセスできればOKじゃん!
ということでやってみた。

自宅WiFiに接続した状態でWindows 10のコマンドプロンプトから

・IPアドレスで試す
C:\Users\papa>ping 192.168.3.96
192.168.3.96 に ping を送信しています 32 バイトのデータ:
192.168.3.96 からの応答: バイト数 =32 時間 =54ms TTL=64
192.168.3.96 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.3.96 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.3.96 からの応答: バイト数 =32 時間 =9ms TTL=64
192.168.3.96 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 1ms、最大 = 54ms、平均 = 16ms

・ホスト名pCPで試す
C:\Users\papa>ping pCP
ping 要求ではホスト pCP が見つかりませんでした。ホスト名を確認してもう一度実行してください。

・ホスト名pCP + .localで試す
C:\Users\papa>ping pCP.local
ping 要求ではホスト pCP.local が見つかりませんでした。ホスト名を確認してもう一度実行してください。

ということであっさりNG。。。(T_T)

2022年2月7日月曜日

pCP Mobile:通勤時間で稼働確認(完成)

本当に動いた♪

できたのは良いが本当に稼働するのか?
初めて通勤電車で使ってみたよ。
起動には時間が掛かるもののちゃんと動いたよ(^^)/

起動操作は次の様になる。(2023/9/23:順序変更)

  • Raspberry Pi Zero WをONにする。
  • スマホのポータブルスポットをONにする。(起動後でも接続可能)
  • Bluetooth Receiver AdapterをONにする。(起動後でも接続可能)
  • ポタアンをONにする。
  • レジュームで音楽が流れる。
  • 必要に応じてSqueezerを起動して操作する。

RPiで動いてるって分かるかな~分かんねぇだろうな~♪

停止操作は次の様になる。(起動操作の逆になるだけ)

  • ポタアンをOFFにする。
  • Bluetooth Receiver AdapterをOFFにする。
  • スマホのポータブルスポットをOFFにする。
    • 自動停止にしていれば不要になる
  • Raspberry Pi Zero WをOFFにする。
    • シャットダウンが必要ないのがpiCorePlayerの良い点
ただ。。。
ポータブルスポットで割り当てられるIPアドレスが同じであればSqueezerを起動すればRPiに接続できるが、IPアドレスが変更になった場合はNetwork Utilityを使用してIPアドレスを調べる必要がある。この状態になると面倒だな。
IPアドレスでなくホスト名pCPで接続すればOKかな??

一旦、ここまでで完成としよう!!

2022年2月6日日曜日

pCP Mobile:結局カセットテープケースにRaspberry Pi Zero W を詰めたよ^^;

最後の課題は電源スイッチ。

電源スイッチ付きのモバイルバッテリーをGoogle先生に尋ねたけど、バッテリーにスイッチは不要なのか良い回答が無かった。またあったとしても選べるほどは無いな。ということでスイッチ付きのバッテリーは諦めて急速充電ができるタイプを購入したよ。


次に考えたのはスイッチ付きUSBケーブル。
Google先生に何度も尋ねたけど、スイッチが付いたケーブルは需要があるようで幾つか答えてくれたよ。でもごっついスイッチだったり、長かったり、欲しいと思うケーブルは無かったなぁ。

スイッチも自分で取り付けるのである程度の大きさが必要。
まずは良さげな1回路2接点のELPA HK-SLS01Hを購入したよ。
このスイッチを充電用のUSBケーブルの(+)側のケーブルに挟めばスマートなスイッチ付きUSBケーブルが作れる。
でも、この小さなスイッチでもFRISKケースには入らない。。。
で結局、FRISKケースは諦めてカセットテープケースで再作成することにした。

手元にあった充電用のUSBケーブルを切ってみた。
すっげー細い^^;

次に薄型タイプのカセットテープケースを探し出し実物合わせで位置決めしたよ。
USBケーブルのコネクタがあるのでネジ穴を大き目にしてちょっとズラせるようにした。
テープの回転止めの出っ張り位置がちょうど良い

バッテリー側は穴に通して結んで終わり^^;

スイッチの取り付けはケースの蓋側に取り付ける。
長方形に穴あけ加工しなくてはならないのでドリル穴を彫刻刀で現物合わせで削った。
固定する前に端子に予備はんだをしておきました。
ちょっと大きかった^^;
ネジが小さい。
※ワッシャを付けるとショートするようでスイッチ動作しなかった。
気づいて良かった~(^^)v

いよいよ、本日のメインイベント!細い撚り線のはんだ付け。
ケーブルストリッパーで剥く際に3回も切れちゃった^^;
剥いた電源ケーブル側にも予備ハンダをしておき。。。
震える手の止まる瞬間にチャッと付けたよ。
いや~、緊張の瞬間!

さて、通電確認です。
本来はテスターで確認するのですが、USB端子ですから。。。
バッチリ!!LEDが光ってるの分かる??

完成!!
手作り感満載でしょ!

さて、システム一式で動作確認してみます。
結構、大袈裟なシステムになってしまった

良い感じに鳴ってます♪

やっとできた~(^^)/
長かったなぁ。