2026年10月18日日曜日

FETヘッドホンバッファアンプ:Gemini Notebookの音声/動画解説が面白いぜぇ!

音声解説に感激!

Gemini Notebookの音声解説、動画解説が面白い!
このブログを全てPDFに印刷して読み込ませ、
あれやこれやと解説させてみたよ。

お任せにしたり、対象をプロンプトで絞ったり、ストーリーを指定したり、Geminiにプロンプトを作らせたり。。。^^;

で、次の手順でどうにかそれなりのが出来たよ!
  • 絞り込みは結局タグで絞って
  • それだけをPDF印刷し
  • 新たにソースに追加して
  • 解説対象をそのソースだけにして
  • プロンプトでザックリストーリーと
  • 伝えたいこと
  • 注意事項を与えた。

短いのより長い方が色々な解説が入ってなるほど!
って感じに纏めてくれる。
私は動画解説より音声解説が好みだよ♪
2人の掛け合いが良い。

FETヘッドホンバッファアンプをネタに作ってみた。
是非、見て聞いてみて(^o^)

FET タグがネタだよ

全て同じプロンプトで作成したよ。
ブラウザ版やスマホアプリ版(Android)、
そしてオプションの違いによってちょっと差異がある。
全てのオプションではないけど聞いてみてね。
まずは、【お薦め】からどうぞ(^^)

動画解説編

スマホアプリ版
動画解説短め【お薦め】
動画解説標準
何で先頭画面にならないの(T T)

ブラウザ版
説明動画短め
説明動画
これもだぁ。。。(T T)

音声解説編


音声解説はそのままではBloggerにもYouTubeにも
掲載出来ないのでClipchampで静止画+音声解説で動画にしてYouTubeに掲載したよ。

ブラウザ版
音声解説議論【お薦め】
音声解説議論短め
音声解説詳細短め 
音声解説詳細

スマホアプリ版
音声解説短め
音声解説標準
音声解説長め

どうでしたか?なかなか面白いでしょ(^^)
さて、次のネタは何にしようかな?
工作もせず、こんなんで遊んでてええんかいな。。。

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かな??

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