ncos1のブログ

適当にメモ代わりに残しています、間違い・説明不足等はコメントしてただければ修正・追記します。

Tailscaleサブネットルーターを有効化してみる、KODIのDLNAサーバーが使えた?

Tailscaleサブネットルーター機能を有効化すれば、Tailscaleに参加できない機器もリモート接続可能らしいので有効化しておくことにした。

セキュリティも一応強化したので^^;

 

ncos1.hatenablog.com

 

RT2600ACにすればしっくりするが、パッケージセンターには無いので無理やりインストールしている人もいるっぽい。

github.com

 

junsun.net

 

常時稼働しているRaspberryPiに設定してみる。

qiita.com

アドレスは自宅のローカルネットワークに併せて変更

sudo tailscale set --advertise-routes=XXX.XXX.XXX.X/XX

 

実行

sudo tailscale up --advertise-routes=XXX.XXX.XXX.X/24
Warning: IPv6 forwarding is disabled.
Subnet routes and exit nodes may not work correctly.
See https://tailscale.com/s/ip-forwarding
Warning: UDP GRO forwarding is suboptimally configured on eth0, UDP forwarding throughput capability will increase with a configuration change.
See https://tailscale.com/s/ethtool-config-udp-gro

このままでは、IPv6がフォワーディングできない。

IPv6もフォワーディングできるようにする。

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

再度実行

sudo tailscale up --advertise-routes=XXX.XXX.XXX.X/24
Warning: UDP GRO forwarding is suboptimally configured on eth0, UDP forwarding throughput capability will increase with a configuration change.
See https://tailscale.com/s/ethtool-config-udp-gro

 

WarningはサブネットルーターやExit nodeとして使うとき、eth0のUDP GRO設定が最適でないため、UDP転送のスループットが少し低くなる可能性があるとの事。

 

管理画面でルートを承認
TailscaleのAdmin Consoleを開きます。
該当マシンの横にあるメニュー(三点リーダー)から [Edit route settings] を選択し、先ほどアドバタイズしたサブネットのチェックボックスをオンにして保存すれば完了です。

 

以前だめだった、スマホのfidataアプリKODIのDLNAサーバーが検出できている??

ncos1.hatenablog.com

問題なく再生も可能だが、KODI以外のDLNA機器(アンプやDIGA)は検出できていない。

暫くすると、fidataアプリから消えたがキューシート上の音楽ファイルの再生は可能。

当初SynologyのルーターのVPNを使っていたときも同じ様な状態だった記憶がある。

やはり、DLNAはのマルチキャストに対応していないからサーバーを認識しないがサブネットルーター指定しておくと音楽再生そのものはかろうじて可能と言うことだろう。

サーバーが消えたのは、単純にByeByeパケットを無効化しているので消えていなかっただけで時間経過で消えただけだろう。

VPNの切り替えを忘れても再生そのものに影響がでないので、まぁ少し改善したと思いたい。

この画面のように、DLNAサーバーの内部フォルダアクセス画面が残っていればそのまま操作可能。

DLNAサーバーが見えない状態でも、上部のショートカットが表示されていれば上の画面のようにフォルダアクセス可能だが表示されなければ追加等の操作は不可、再生は可能。

TailscaleのサブネットルーターをOFFにすると全く再生できない事を確認。

 

TailscaleはDLNAのマルチキャストに対応していないので効果は期待していなかったが、少し改善することが判明、予想外の収穫があってよかった。

 

 

ASUS の問題?ノートPCに実装のMediatek WiFiのドライバーに問題がありそう

ASUS ROG Flow でサスペンド(スリープ)は知らないうちにクラッシュ・再起動が必ず発生するので使っていない。

他に機種でも知らないうちにサスペンド解除される現象は体験しているので、休止(ハイバネーション)を使用してサスペンドは使わないようにしている。

ncos1.hatenablog.com

 

MediatekのWiFiのドライバー(チップそのもの?)に問題が有るのではとの情報。

gigazine.net

 

クラッシュする現象とは違うようだが、制御が適正にできていないみたいなのでデバイスマネージャからチップを確認。

記事と同じ MediaTek Wi-Fi 6E MT7922 だったので同じく PowerSaving をOFF]にする。

 

はっきりと原因が掴めていない通信によるトラブルを防止・抑止できるかもしれない。

多少消費電力が上がっても、トラブルによるストレスや工数の抑止を優先したい。

 

Tailscaleのセキュリティ強化のため、Tailnet Lock有効化・無効化手順メモ

Tailscaleに脆弱性が有るらしくTailnet Lockをしておくことにした。

新たに端末を登録する際に、他の信用できる端末(既存のTailscale参加端末)から認証が必要になる設定。

詳しく確認してないが、新たに未認証で追加できてしまう脆弱性なのだろう^^;

脆弱性とは無関係にセキュリティ上は設定しておいたほうが良さそうな設定する。

 

Tailscaleのwebから

Enabl Talenet Lock をクリック

信用承認する端末を追加する、現在参加中の端末がプルダウンで選択可能。(当然認識外の端末が有ればTailscaleから削除する)

Don't Sendの方にチェック(Tailscaleに解除用の暗号キーを送らない、送るともしもの時に解除の手続きをしてもらえるらしいが自分で暗号キーを管理する場合は不要)

Run commandの内容をPowershellやLinuxのターミナルで実行する。

実行するまで、Waiting setup command で待機している。

解除用の暗号キーが10個作成されるので、必ずバックアップしておく。

Windows11のPowershellで実行すると画面が変わる。。

 

追加する機器がとりあえずないので、この先は未検証。

解除できないと面倒なことになるかもしれないので、解除方法も確認しておく。

 

解除したい場合、Disableを選択。

控えた10個のどれでも良いが、

”disablement-secret:” も含む必要が有るので注意。

一旦解除できることを確認、再度有効化して暗号鍵再バックアップして検証終了。

 

 

SONY製nasneアップサイクル・同時録画検証

同時録画は完了しているみたい。

 

ncos1.hatenablog.com

 

PCから確認できる様にRaspberryPiを設定。

sudo apt update
sudo apt install samba

 

設定

sudo nano /etc/samba/smb.conf

[recorded]
 path = 保存先のフォルダパス
   browsable = yes
   writable = yes
   read only = no
   guest ok = no
   create mask = 0644
   directory mask = 0755

 

Samba 用ユーザーの登録、下記コマンドでPCからアクセスする際のパスワードを設定する。

sudo smbpasswd -a 現在のログインユーザー

プロンプトが表示されたら、PCからアクセスする際に入力するパスワードを設定。

 

サービスを再起動して設定を反映。

sudo systemctl restart smbd
Windowsのエクスプローラーのアドレスバー等から以下を入力し、設定したユーザー名とパスワードで接続できるか確認。

\\<Raspberry PiのIPアドレス>\recorded

確認OKならば、ネットワークドライブに設定してアクセス可能にしておくと良い。

 

録画ファイルを確認、VPN経由なので止まりがちで正常に録画できているか目視では判定できない^^;

とりあえずは、同時録画そのものはできていると思われる。

Aを録画中にBを録画開始、Aが途中で停止・Bが録画できない等の現象はなさそう。

 

ライブ視聴でも色々検証していたら、地デジ・衛星ほとんど視聴できなくなった(・・?

gitのIssue見ていたら、さらに改善されていたのでpullして再ビルド等を再実施。

 

NG?状況変わらずチューナーがずっとBusyで何もできない🤔

RaspberryPiのDockerを再起動した記憶はあるがしてないかも?

mirakurun・EPGStationのDockerを停止

nasneを再起動

mirakurun・EPGStationのDockerを再起動

復旧した、Docker起動したままだったのが一番の要因と思われる。

何処かが原因で、チューナーにアクセスするループが発生して個々の対応ではループが解除されていなかったと思われる。

 

原因が特定できない場合は、両方の機器を一旦OFFにしよう^^;

 

Issueを確認すると、今回の修正でかなり安定しそうなので検証を続けようとしたが1チャンネルでも録画できない状態に戻ってしまった?

録画しないのでnasne再起動したら録画できたがmirakurunの問題なのかnasneの問題なのか不明🤔

 

USBのts抜き可能っぽいチューナー有るからRaspberryPiに接続したらさらにチャンネル増やせる?

nasne触り始めてからなので、mirakurunがよくわからない🤔

 

Geminiに相談

chinachu/mirakurun は長年メンテナンスが停止しているため、現在も活発に更新・メンテナンスされている l3tnun/mirakurunに変更してみては?との事なので検証。

???chinachu???

mirakurunとEPGStationのつもりだったがあまり理解せず進んでたから混乱^^;

そもそもmirakurun・chinachu・EPGStation等の関係性をイマイチ把握できていない、一つのソフトウェアに統一できないものか🤔

現在

version: '3'
services:
  mirakurun:
    image: chinachu/mirakurun
    container_name: mirakurun
    restart: unless-stopped
    ports:
      - "40772:40772"
    environment:
      - DOCKER=true
    volumes:
      - ./config:/app-config
      - ./mirakurun-data:/app-data

  epgstation:
    image: l3tnun/epgstation:latest
    container_name: epgstation
    restart: unless-stopped
    ports:
      - "8888:8888"
    volumes:
      - ./epgstation/data:/app/data
      - ./epgstation/config:/app/config
      - ./epgstation/logs:/app/logs
      - ./recorded:/app/recorded
    environment:
      - TZ=Asia/Tokyo
    depends_on:
      - mirakurun

修正案

version: '3'
services:
  mirakurun:
    image: l3tnun/mirakurun:latest
    container_name: mirakurun
    restart: unless-stopped
    ports:
      - "40772:40772"
    environment:
      - DOCKER=true
      - TZ=Asia/Tokyo
    volumes:
      - ./config:/app-config
      - ./mirakurun-data:/app-data

  epgstation:
    image: l3tnun/epgstation:latest
    container_name: epgstation
    restart: unless-stopped
    ports:
      - "8888:8888"
    volumes:
      - ./epgstation/data:/app/data
      - ./epgstation/config:/app/config
      - ./epgstation/logs:/app/logs
      - ./recorded:/app/recorded
    environment:
      - TZ=Asia/Tokyo
    depends_on:
      - mirakurun

適用

# 1. 既存のコンテナを停止・削除
docker compose down

# 2. 新しいイメージ(l3tnun/mirakurun)をダウンロード
docker compose pull

# 3. コンテナをバックグラウンドで起動
docker compose up -d

 

戻す場合

# 1. docker-compose.yml の image を元の記述に戻す
#   image: chinachu/mirakurun

# 2. コンテナを停止・削除
docker compose down

# 3. 再起動
docker compose up -d

 

改善したが、録画後にまたBusyで使えなくなった🤔

./config/tuners.ymlを修正する、現在。

- name: nasne-gr
  types:
    - GR
command: node -e "require('http').get('http://:8301/tuner/', res => res.pipe(process.stdout))"
  isDisabled: false
- name: nasne-sat
  types:
    - BS
    - CS
command: node -e "require('http').get('http://:8301/tuner/', res => res.pipe(process.stdout))"
  isDisabled: false

 

修正

- name: nasne-gr
  types:
    - GR
command: curl -s --noproxy '*' http://:8301/tuner/
  isDisabled: false
- name: nasne-sat
  types:
    - BS
    - CS
command: curl -s --noproxy '*' http://:8301/tuner/
  isDisabled: false

Docker再起動

docker compose down
docker compose up -d

Busy解除されないので、nasneもリブートする。

NG、全く録画されない。

が、両方のチューナーがBUSYにはなっていないので原因はmirakurun側の要因っぽい。

再度修正、衛星側は少しウェイト

- name: nasne-gr
  types:
    - GR
command: node -e "const http=require('http'); const req=http.get('http://:8301/tuner/', res => { res.pipe(process.stdout); }); process.on('SIGTERM', () => { req.destroy(); process.exit(0); });"
  isDisabled: false
- name: nasne-sat
  types:
    - BS
    - CS
command: node -e "const http=require('http'); const req=http.get('http://:8301/tuner/', res => { res.pipe(process.stdout); }); process.on('SIGTERM', () => { setTimeout(() => { req.destroy(); process.exit(0); }, 3000); });"
  isDisabled: false

再起動

docker compose restart mirakurun

録画可能、同時録画等で検証を続ける事にしようと思ったが衛星側がBusyから解放されない現象が発生し改善しない(・・?

検証はEPGPLayerのライブ視聴をメインで行っていたが、録画そのものは修正した現行設定で良好かも検証してみよう。

 

Busyと録画・ライブ視聴等とコマンドでのBusyの関連も整理する必要がありそう🤔

 

 

SONY製nasneアップサイクル・地デジ・衛星放送の同時録画検証

SONY製nasneで、VLCから地デジ・衛星の同時ライブ視聴はできたので、録画の検証をする。

 

ncos1.hatenablog.com

 

手順はgitのとうり

github.com

OracleVirtualBoxで実行
python3 scripts/nasne_mirakurun_conf.py <nasne> --scan --dual -o <設定ディレクトリ> で、tuners.yml が地デジ用(nasne-gr)と衛星用(nasne-sat)の2つのチューナーになります。2つの番組を同時に視聴/録画して、両方が止まらないかを確認。

 

作成されたtuners.ymlを現在のtuners.yml と置き換える。

- name: nasne-gr
  types:
    - GR
  command: node -e "require('http').get('http://:8301/tuner/', res => res.pipe(process.stdout))"
  isDisabled: false
- name: nasne-sat
  types:
    - BS
    - CS
command: node -e "require('http').get('http://:8301/tuner/', res => res.pipe(process.stdout))"
  isDisabled: false

 

できない、弾かれるのでnasneとmirakurun・EPGStationのRaspberryPiを再起動。

 

結果、EPGPLayerやEPGStationのWebUIから弾かれることなく予約は可能だが、同時録画はできなかった。

ログ取って確認してもらうのが良さそう。

 

curl 'http://:8301/status?detail'

結果


StatusCode        : 200
StatusDescription : OK
Content           : terrestrial=busy satellite=busy

RawContent        : HTTP/1.0 200 OK
                    Connection: close
                    Content-Type: text/plain; charset=utf-8

                    terrestrial=busy satellite=busy

Forms             : {}
Headers           : {[Connection, close], [Content-Type, text/plain; charset=utf-8]}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : mshtml.HTMLDocumentClass
RawContentLength  : 32

 

Issueを確認すると、git更新していたのでpullして再確認。

OracleVirtualBox作業ディレクトリで実施

git pull

remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 14 (delta 12), reused 8 (delta 6), pack-reused 0 (from 0)
Unpacking objects: 100% (14/14), 5.71 KiB | 188.00 KiB/s, done.
From https://github.com/mar1mo-41414/SonyNasne-debian
   6ee4619..9c8e8d5  main       -> origin/main
Updating 6ee4619..9c8e8d5
Fast-forward
 docs/11_tv_streaming.md      |  6 +++++-
 scripts/tools/nasne_recpt1.c | 43 +++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 46 insertions(+), 3 deletions(-)

 

nasne_recpt1.cが更新されているので入れ替えるとの事、要はデュアルチューナー化の最初の手順を再実行で良さそう。

 

git pull
sh scripts/build_tools.sh build_tools_out
scp build_tools_out/nasne-recpt1 root@<nasne>:/usr/local/sbin/nasne-recpt1.new
scp scripts/watchdog/nasne-recpt1-server root@<nasne>:/etc/init.d/nasne-recpt1-server.new
ssh root@<nasne> 'cd /usr/local/sbin && cp nasne-recpt1 nasne-recpt1.bak && mv nasne-recpt1.new nasne-recpt1 \
  && cd /etc/init.d && cp nasne-recpt1-server nasne-recpt1-server.bak && mv nasne-recpt1-server.new nasne-recpt1-server && chmod +x nasne-recpt1-server'
ssh root@<nasne> 'echo NASNE_RECPT1_DUAL=1 > /etc/default/nasne-recpt1; /etc/init.d/nasne-recpt1-server restart'
curl 'http://:8301/status?detail'    

 

# terrestrial=idle satellite=idle のように出れば有効

 

nasne・RaspberryPiを再起動して検証。

 

PCのブラウザからBSを録画指示して録画中を確認、地デジをブラウザで視聴できた。

同時録画を検証したが、NGどちらか1チャンネルしか録画されない。

直前の録画時の視聴も本当に成功したのか、その後はNGなのでたまたまそう見えただけ?録画が停止など重要な問題が発生していたかも。(録画ファイル直ぐに消してしまった。)

どうも、mirakurunがチャンネルを掴んで離さない?気がするがログからもっときちんと調べないといけないのだが^^;

 

ライブ視聴の動作も直前の検証と違って失敗するので、nasen側(mirakurun?)でチャンネルを掴んでいるっぽいのでnasenを再起動。(どちらが要因でも一旦チャンネル解放することを期待。)

 

EPGStationのWebUIで、同時録画初めて成功した画面になった。

今までは、1チャンネルしか録画中にならなかった。

しばらく録画してファイルを確認してみよう。

 

 

SONY製nasneアップサイクル、地デジ・BSの同時視聴できた。mirakurunで録画検証もしたい

Debian化したnasneで地デジとBS/CSチューナーが同時に使用可能かもしれないらしいので、検証。

 

 

確認したが、NGだったのでpullして再ビルドしたファームでも確認したがNG。

報告したら、gitのIssueに手順が有るとのことなので実施。

地デジとBS/CSチューナーは独立しているので同時使用可能なはずだが、ソフトウェア的(ファームウェア)に同時使用しないようにしているらしい。

その制限をDebian側(カスタムファームウェア)でも継承していたが、解除したみたい。

github.com

ビルド作業しているOracleVirtualBoxから手順を実施

git pull
sh scripts/build_tools.sh build_tools_out
scp build_tools_out/nasne-recpt1 root@<nasne>:/usr/local/sbin/nasne-recpt1.new
scp scripts/watchdog/nasne-recpt1-server root@<nasne>:/etc/init.d/nasne-recpt1-server.new
ssh root@<nasne> 'cd /usr/local/sbin && cp nasne-recpt1 nasne-recpt1.bak && mv nasne-recpt1.new nasne-recpt1 \
  && cd /etc/init.d && cp nasne-recpt1-server nasne-recpt1-server.bak && mv nasne-recpt1-server.new nasne-recpt1-server && chmod +x nasne-recpt1-server'
# 有効にする(消せば元に戻ります)
ssh root@<nasne> 'echo NASNE_RECPT1_DUAL=1 > /etc/default/nasne-recpt1; /etc/init.d/nasne-recpt1-server restart'
curl 'http://:8301/status?detail'     # terrestrial=idle satellite=idle のように出れば有効

 

この時点でVLCから確認してみる。

 

地デジ

http://:8301/tuner/28

CS(契約ないので、ショップチャンネル)

http://:8301/tuner/CS8_1

PCのVLCからストリーミングで同時視聴できた。

EPGStationの録画中にも可能か確認したが、NGEPGStation?mirakurun側で拒否されている(・・?

検証内容

iPhoneのEPGPLayerから録画指示・iPhoneのEPGPLayerで再生でNG。

iPhoneのEPGPLayerから録画指示・PCのVLCで再生NG?だったが、Docker再起動でOKとなった、不安定?nasneの改変後に再起動してなかったかも?

 

録画しながらライブ視聴を再検証してみる、NGやはり見ることはできなかった。

 

mirakurun・EPGStationが地デジとBS/CSチューナーが独立して操作可能と認識するように設定すれば同時録画や視聴ができる?

 

Issueを読み勧めると、mirakurunの設定も書いてあったので検証してみよう。

 

安定性やドロップの発生など懸念事項が有るが、サービス終了で使い道が限定されてしまうSONY製nasneが大活躍してしまう^^;

 

 

Pi5で、SONY製nasneと連携Mirakurun & EPGStation 構築続き・Pi3に変更してパーティション拡張

続き、チューナー未設定なので設定しなければいけない。

ncos1.hatenablog.com

 

既存の設定からコピペしてみる。

node -e "require('http').get('http://:8301/tuner/', res => res.pipe(process.stdout))"

チャンネルスキャン実施、進んでいる☺️

EPGStationに

番組表が表示されない。

Dockerリスタートで表示されたのでチューナー追加等の更新時にはEPGStationの再起動が必要になるかも。

 

EPGPLayerからライブ視聴・録画済みも視聴不可(・・?

 

原因はEPGPLayer側のEPGStationアドレスをIPアドレスではなくホスト名にしていたためだった^^;

番組表等が表示されているので問題ないかと思っていたが、IPアドレスでないと動画のストリーミングはできない仕様みたい(・・?

ドキュメントかWebUIの説明にあった気がするが、番組表が表示されているから大丈夫かと思っていた。

ブラウザの問題かと思っていた、mirakurunからの視聴テストもIPアドレスでのWebUIからは視聴できた。(エラーになる場合も有るので、何か問題が有る?)

 

iPhoneはEPGPLayer以外に使えそうなアプリを見つけられなかったが、使い勝手も悪くないので現状維持。

androidも探したが、めぼしいものが見当たらないのだが(・・?

録画したファイルはnas等のアクセスしやすいストレージに保管すれば良いのだが、他の人はどうしてるのか何か良いアプリを引き続き探そう。

 

FireTVには、FireTV・androidTVで使えるクライアントアプリ

 "EPGStation の録画を見る"  が良さそう。github.com

 

録画中の追っかけ再生も可能なので、自宅では重宝しそうだが手持ちのandroidスマホにはインストールすらできなかった。(公開停止なので、apkファイルからインストール)

第三者(日本国内で放送されている内容に利害関係がある団体)からの Amazon アプリストアのコンテンツポリシー違反の指摘により Amazon アプリストアから削除された後にGooglePlayストアも公開停止にしたとの事。

ストア公開できる状況になれば、スマホからの視聴にも対応してほしい。

 

Pi5では問題ないが、無変換での録画・再生のみであればPi3でもできそうなのでPi3に変更。(といってもUSB-SSDを差し替えただけ。)

容量が足りなくなるので、gpartedでパーティション拡張。

sudo apt install gparted -y

konalinuxPi4.0をインストールしたまま、なのでこの状態。

リサイズ

目一杯広げる。

編集から、変更を実行する。

無事完了。

EPGStationのWebUIからも容量が増えた事が確認できた。

これで、そこそこ録画できるようになった(^^)

 

正直、手間もかかるしPCでの作業が好きでなければ途中で止めてたかも。

torneが同一LAN内だけでも、録画再生・せめてライブ視聴だけでも残してくれるのなら何もしなかったかも^^;

とは言え、後戻りして公式ファームに戻せるはずなのでしばらく楽しみながら検証してみよう。