Raspberry Pi OS 64ビット版のEPGStation環境構築手順 令和5年(2023年)1月版

先日、USBストレージから、64ビット版Raspberry Pi OSを起動できるようにしました。

USB起動版Raspberry Pi OS 64ビットの初期設定 令和5年(2023年)1月版
令和4年(2022年)2月。旧名称Raspbianこと、Raspberry Pi OSの64ビット版が正式リリースされました。 ...

こちらの環境に、4番組同時録画が可能なチューナーを取り付けまして。

EPGStationによる視聴・録画環境を構築させて頂こうと思います。


視聴・録画に必要な機材

基本的に、以前に作成しましたこちらと同じ機材になります。

Raspberry Pi 4で地デジ4チャンネル同時録画するには
Raspberry Pi地デジ関連記事 ※22.12.25追記:Raspbrry Pi 4をお持ちの場合、令和5年(2023年)版最新...

フルセグ対応チューナー

実際にこちらのチューナーで、4チャンネル同時視聴・録画か可能であることを確認しました。こちらのチューナーは、コンセントが別途必要なのですが。

こちらの変換ケーブルでUSB電源から電源を取り、2年間ほど使用していました。私の環境では問題なく使用できました。他の環境で動作を保証するものではありませんが、ご参考まで。

ICカードリーダ

USB 2.0端子に、チューナーとこちらのICカードリーダーを取り付けました。

もちろん、カードも必要です。

以上が、実際に動作実績のある機材になります。

USBストレージ

microSDカードは不要です。USBストレージから起動し、そちらに録画します。

具体的なストレージの選択方法は、次の64ビット環境の構築手順の記事を御覧ください。

アーマーケース

サーバとしてご利用する場合、ケースは必ずアーマーケースを選択して下さい。64ビット環境の発熱は大きいですが、真夏のエアコンなし環境でも2年間フリーズせずに動作した実績が御座います。プラケースはお下げ下さい。


Raspberry Pi OS 64ビット版環境の構築

microSDカードは使用せずに。容量1TBのUSBストレージから、Raspberry Pi OSの64ビット版を起動しました。

構築手順はこちらの記事になります。

USB起動版Raspberry Pi OS 64ビットの初期設定 令和5年(2023年)1月版
令和4年(2022年)2月。旧名称Raspbianこと、Raspberry Pi OSの64ビット版が正式リリースされました。 ...

aarch64版、Debian 11 bullseyeベースのRaspberry Pi OSになります。

ディスプレイやキーボードを接続しない場合。こちらの手順で、SSH接続のターミナルで初期設定が可能です。

Raspberry Pi OS 64ビットのロケール設定  令和5年(2023年)1月版
先日、USBストレージから64ビット版のRaspberry Pi OSを起動できるようにしました。 イメージを書き込む前に、ホ...

私の環境は、サーバとして運用するために、スプラッシュスクリーンオフ、CUI、オートログイン無し、静的IPアドレスに設定しました。静的IPアドレスは次の記事になります。


静的IPアドレス設定

サーバとしての運用を想定して、こちらの内容の通り、あらかじめ静的IPアドレスを振りました。

Raspberry Pi OS 64ビットの静的IPアドレス設定  令和5年(2023年)1月版
最初、Debian 11系統に従って、/etc/network/interfacesファイルを編集したのですが。 どうもRaspber...

動的IPアドレスでは、ネットワークセグメントを超えられなかったり、Raspberry Piを再起動した場合にサーバとしての動作が不安定になる場合があるためです。

DHCP割り当て範囲と重ならないIPアドレスを割り当てておきましょう。


チューナー用ファームウェアのインストール

チューナーを取り付ける前に。Siano Rio DVBインタフェース用のファームウェアを/lib/firmwareにコピーしておきます。

curl -O http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
unzip PX-S1UD_driver_Ver.1.0.1.zip
sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/

ちなみに、Raspbrry Pi 4用のFedora 37では、既に/lib/firmwareにファイルが最初から存在していました。Linux標準ドライバになったそうですが、Raspberry Pi OS 64ビット版には同梱されていないようです。

チューナーを取り付けた後、すべてのチューナーが正しく認識されているか確認します。

ls -al /dev/dvb*

4つのチューナーのうち、実は2つしか認識されない事がありました。4つ正しく認識されるまで、USB端子を差し直したり、Raspberry Piを再起動したりしました。何か端子の相性のようなものがあるのかもしれません。

正しく認識されれば、以降は安定して動作すると思います。


OS更新

Raspberry Pi OSを最新の状態に更新しておきます。

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

何か不要なパッケージのメッセージが毎回出るため、autoremoveで整理しておきました。


Dockerのインストール

録画環境はMirakurunとEPGStationを使用させて頂く予定です。

開発の主体がDockerに移っているとのお話から、Docker版を使用させて頂こうと思います。

実行環境であるNode.jsは、本体のバージョンや、各種モジュールの依存関係で問題が出やすいのかと思います。

そのような中、Docker版を維持されている、その大変さに思いを馳せながら、ありがたく使用させて頂こうと思います。

Docker本体ですが、Raspberry Pi OS標準のパッケージをインストールしました。

sudo apt install -y docker docker-compose

令和4年 2022年12月現在。

Docker version 20.10.5+dfsg1、docker-compose version 1.25.0がインストールされました。

インストールが完了しましたら、サービスを有効にします。

sudo systemctl enable docker.service --now
sudo systemctl enable docker.socket --now
# 起動してないのでOSを再起動
sudo reboot
# 再起動後確認
systemctl status docker.service
systemctl status docker.socket

あら?何かエラーが発生してサービスが正しく起動していません。

いちどOSを再起動してから、状態を確認してみました。今度は正しくサービスが起動しています。

コンテナ、イメージ、ボリューム等、リストが正しく表示できるようになりました。

これで、Dockerによるコンテナ実行環境が整いました。


docker-mirakurun-epgstationコンテナ実行

EPGStationの実行環境ですが。

こちらのdocker-mirakurun-epgstationを使用させて頂きました。

公式の手順に従い、docker-composeでMirakurunとEPGStationのコンテナを起動する流れになります。


チューナーとICカードの取り付け

インストール前に、チューナーとICカードを取り付けておきます。

コンテナ起動前に、ICカードは忘れずに!


実行環境のインストール

Raspberry Pi OSで実行するにあたり、インストールコマンドにsudoを追加しました。

curl -sf https://raw.githubusercontent.com/l3tnun/docker-mirakurun-epgstation/v2/setup.sh | sudo sh -s

イメージのダウンロードが開始されます。

また途中でICカードを認識するようです。

このようなメッセージが表示されて、インストールが完了しました。


docker-compose.yamlファイルの確認

cd docker-mirakurun-epgstation
vi docker-compose.yml

docker-compose.yamlファイルを確認しました。

mysqlコンテナは、mariadbのイメージを使用しているようです。このあたりの使用するイメージの調整や、リスタート設定、ユーザ名パスワード等、必要に応じて変更する感じでしょうか。

私は特に編集せず、そのまま使用させて頂きました。


コンテナ起動

docker-composeコマンドでコンテナを起動します。

sudo docker-compose up -d

イメージのダウンロードや、各種ライブラリのコンパイルが開始されます。

ロードアベレージは4で、全力でコンパイルしている感じです。

コンテナイメージのビルドは、10分以上かかりました。コンテナが作成されて、起動しました。

確かに3つのコンテナが起動しています。

この時点で、Webブラウザから、EPGStationとMirakurunの管理画面にアクセスできるようです。

pitv.localの部分はご使用のホスト名に合わせて変更して下さい
http://pitv.local:8888/
http://pitv.local:40772/

EPGStationの管理画面は、問題なく表示されましたが。

Mirakurunの管理画面は、ブランク表示でした。録画・視聴の機能上、特に問題は無いのですが、未だにブランク表示のままですが。

次の手順に参りましょう。


チャンネル設定

Mirakurunのチャンネル設定は、APIを使用して行わせて頂きました。

curl -X PUT "http://localhost:40772/api/config/channels/scan"

設定完了後、設定ファイルを確認しました。

sudo vi mirakurun/conf/channels.yml

設定ファイルを確認しますと、チャンネルが重複していましたので、少し調整しました。

重複の削除は、こちらの資料を拝見させて頂きました。

https://www.maspro.co.jp/contact/channel.pdf

コンテナの再起動

設定を調整しましたら、コンテナを再起動して設定を反映します。

sudo docker-compose restart

EPGStationの画面を確認すると、少しずつ番組表のデータがダウンロードされていることがわかります。すべてのチャンネルの番組表が表示されない場合、コンテナを再起動すると、表示される場合がありました。

まあ、もしかすると、のんびり待ったほうが良いのかもしれません。

以上で基本的な録画・視聴環境の構築が完了しました!


ログの表示等

各コンテナのログの表示コマンドなど。

sudo docker-compose logs -f mirakurun
sudo docker-compose logs -f mysql
sudo docker-compose logs -f epgstation

ログを確認しますと。特に問題なくコンテナが動作していることがわかりました。


4チャンネル同時視聴・録画中の負荷

Raspberry Pi 4で、USBストレージからRaspberry Pi OS 64ビット版を起動しました。

その場合の、4チャンネル同時視聴・録画中の負荷はどれくらいでしょうか?

実際に4チャンネル同時にストリーミングしてみますと、全く問題なく視聴することが可能です。

録画時のロードアベレージは1.3程度です。

画像を見ますと、視聴と録画のため、arib-b25-streamプロセスが8本走っていることがわかります。

以前、Ubuntu 20.04をUSBストレージから起動した場合の負荷と比較しますと。

Raspberry Pi 4で64ビットEPGStation録画環境を作ってみました
Raspberry Pi地デジ関連記事 ※22.12.25追記:Raspbrry Pi 4をお持ちの場合、令和5年(2023年)版最新...

Ubuntuの場合、USBストレージから起動すると、なぜかいつも1.0程度の負荷が掛かっており、録画時は2.0~3.0の負荷が掛かっていました。

よって、Raspberry Pi OS 64ビット版を使用したほうが、負荷が低い事がわかりました。


EPGStationの自動起動設定

※22.12.27追記

Raspberry Piを再起動した時。docker-composeが自動起動するように、systemdの設定を行おうと思います。

「docker-mirakurun-epgstation.service」サービスの設定ファイルを作成します。

sudo vi /etc/systemd/system/docker-mirakurun-epgstation.service

次の内容になります。

9行目、/home/hideの部分は、必ずdocker-mirakurun-epgstationの配置場所に変更して下さい。

[Unit]
Description=docker-mirakurun-epgstation service with docker compose
PartOf=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=true
WorkingDirectory=/home/hide/docker-mirakurun-epgstation
ExecStart=/usr/bin/docker-compose up -d
ExecStop=/usr/bin/docker-compose down

[Install]
WantedBy=multi-user.target

作成した設定を有効にします。

sudo systemctl enable docker-mirakurun-epgstation.service --now

systemctlコマンドで、サービスとしてdockerコンテナの起動・停止が可能になりました。

念のため再起動して、docker-mirakurun-epgstation.serviceが起動するかどうか確認しました。

Raspberry Pi再起動後、数分すると、問題なくEPGStationが起動しました。

これでサーバとして本格的に使用できそうですね。


Sambaサーバによる録画共有フォルダ設定

録画データをPCから直接視聴・削除できるように、Sambaをインストールしてみました。

こちらの記事になります。

Rasbperry Pi OS 64ビット版のsambaサーバ設定例 令和5年(2023年)1月版
先日、Raspberry Pi OS 64ビット版に、EPGStation環境を、構築させて頂きました。 録画データの...

以前構築しました、Ubuntu 20.04 64ビット版の視聴・録画環境と比較しまして。

Raspberry Pi OS 64ビット版の環境のレスポンスは、同等かなと思います。少しストリーミングの開始が遅れる場合がある感じもしましたが、気の所為のレベルです。

ロードアベレージを計測しましたが、Raspberry Pi OSのほうが、定常状態の負荷が低いことがわかりました。

とりあえず。

年末年始の番組の視聴・録画に向けて。新しい環境を整える事ができそうです。

残課題が御座います→2点追記致しました。

  1. Raspberry Pi再起動時のコンテナの自動起動。 →追記済
  2. 録画フォルダのSMB共有・またはメディアサーバ構築 →追記済
  3. エンコード環境の確認 →ハードウェアエンコーダーは使用できていません
    • docker版は、ハードウェアエンコーダは使用されていないように思えます。※22.12.29現在。

複数チャンネルの同時視聴・録画は、いちど使うと、必須になりますね。もう1チャンネルのみのチューナーには戻れなくなってしまいました。

64ビット環境はとても快適です。Raspberry Pi 4をお持ちでしたら、ぜひ64ビット環境+複数チャンネルの世界へ移行してみて下さい!

スポンサーリンク

コメント

  1. 颯爽 より:

    sianoデバイスのファームウェアはDebianのaptリポジトリにて提供されています。但しnon-freeですが。
    https://packages.debian.org/ja/bullseye/firmware-siano
    apt install firmware-siano -y
    又、systemdで管理してるようですが、docker-compose.ymlには既に「reatart:always」が書かれてるので、systemdに登録などしなくてもdockerdによる自動起動が為される筈です。