4.11 EPG録画予約 epgrec-UNA の設定

2018年4月24日

 PT2/PT3 を使用した EPGのテレビ録画システムを構築します。当然のことながらWANからのアクセスは出来ない所に構築します。
 現在(2017/06/25)の環境は以下の通りです。PT2/3はどちらか1枚の前提です。
 ・FreeBSD 11.0-RELEASE-p10 amd64
 ・apache 2.4.26
 ・MySQL 5.7
 ・PHP 7.1

1.準備編
 まずは、それぞれ必要となる元ファイルを下記の各サイト様からダウンロードさせていただきます。

1)「適当な何かの別館」/「epgrec UNA
 (1)epgrecUNA 人柱版 (2015/11/14) 
 (2)epgrecUNA 151114版用 fix1
 (3)epgrecUNA 151114版用 fix2
 (4)epgrec UNA用epgdump 160127版
 (5)recpt1 httpサーバ機能追加パッチ 新本家[c8688d7d6382]以降対応版

2)新本家 recpt1 / PT1 Linux ドライバ(pt1-c8688d7d6382.tar.bz2)

3)recpt1-http-rev4 FreeBSD 対応パッチ
 本パッチは、「FreeBSDで地デジビデオサーバ」で公開されている「recpt1.diff」をベースにさせて頂いています。

4)epgrecUNA FreeBSD 対応パッチ
 基本はphpのパス変更とコマンドオプションの変更です。ps コマンドのオプション設定方法訂正、一部番組検索からキーワード登録へ移る際、DB操作でエラーとなる部分の修正(したつもり)とPHP Noticesエラーの修正(したつもり)です。(2017/07/31:パッチ再作成)

5)PT3 FreeBSD ドライバ パッチ (2017/07/31 追加)
 そのままだと、epgrec-UNA の同時epg更新(shepherd.php)での警告がでます。また、地デジ、BSで合わせて同時2チャンネル録画出来ない様なので、本パッチを当てます。
(2017/10/3)
 本ドライバパッチは、本体に取り込んで頂きましたので、パッチ不要です。

2.PT2/PT3ドライバ・スマートカードドライバのインストール
(1)PT2 ドライバ

 昔は PT1/2 用の FreeBSD ドライバを入れるのは結構しんどかったですが、今は pkg/ports のお陰で楽ちんです。

 # pkg install ptx-kmod-0.0.20111212_1

(2)PT3 ドライバ
 こちらで公開されているドライバをありがたく頂きます。git なり zip で取得・展開し、上記5)のパッチを当てます。パッチを /tmp に展開して、例えば zip ファイルで落とした物なら

 # cd fbsdpt3-master
 # patch -p1 < /tmp/fbsdpt3-master.diff
 # make install
 # make clean

 するだけです。 

(3)USB カードリーダドライバ

   # pkg install pcsc-lite-1.8.20,2

 インストール後のメッセージに従って以下の内容を /etc/devd.conf へ追記します。

 この他、libccid が必要となりますが、次の arib25 ライブラリを ports から入れると依存ライブラリで自動ではいります。/etc/rc.conf へ起動設定します。

3.arib25ライブラリの作成
 
ソースからmakeしても良いのですが、ここでは、ports を使用します。ただし、そのままだと recpt1 作成に必要な一部ヘッダとオブジェクトが入らないので、パッチを当てます。準備編で
の recpt1-http-rev4 FreeBSD 対応パッチを /tmp 等に展開します。 ports の /usr/ports/multimedia/ab25 へ行きパッチを当てて make します。
 (以下、パッチは全て /tmp にあるものと仮定します)

 ソースから make したものとは、ヘッダのインクルード先、ライブラリ名称が異なっています(arib25 -> ab25)。導入済みのライブラリを使用、または、ソースから作成される場合は、recpt1(Makefile, ソース, config)の修正が必要です。

4.recpt1-http-rev4-FreeBSD の作成
 準備編の 新本家 recpt1 / PT1 Linux ドライバとrecpt1 httpサーバ機能追加パッチ 新本家[c8688d7d6382]以降対応版を展開します。展開して出来た pt1-c8688d7d6382/recpt1 へ行き、FreeBSD 用のパッチと共にあて、make します。

 問題なく出来上がったら録画出来るか確認します。コマンド形式は 
 recpt1 –b25 –strip –sid hd <ch> <sec> <out_file>

5.epgdump の作成
 epgrecUNA 用の epgdump を作成します。準備編で落とした epgrec UNA用epgdump 160127版を展開し、以下の様にMakefile に追加して make するだけです。

6.epgrec UNA のインストールと設定
 やっと真打ち登場です!準備編のepgrecUNA 人柱版 (2015/11/14) を http サーバが参照出来る所に展開します(例:/usr/local/www)。

epgrecUNA 151114版用 fix1 と epgrecUNA 151114版用 fix2 を順に上書きし、epgrecUNA FreeBSD 対応パッチを当てます。

epgrecUNA同梱のreadmeを読み config.php のチャンネル設定を合わせます。

(1)DB とユーザの作成、権限付与
 epgrec UNA が使用するDBとDBアクセスユーザを作成します。今回 DB は MySQL 5.7 を使っています。

(2)httpサーバ実行ユーザの設定追加
 今回 httpサーバは apache 2.4 を使っています。起動ユーザとグループは、標準だとwww:www となります。
 www ユーザにシェルを割り当てします。

 次に atコマンドの使用を許可する為、at.allow に追加または作成します。

 http サーバから実行出来るように epgrec のディレクトリ設定や php モジュールの設定を必要に応じて httpd.conf へ追加し、apache を再起動します。
http://<epgrecのホストIP>/epgrec 等として epgrec の設定画面が出ればOKです。後は、画面の指示に従って設定し、初回の epg 受信(10分位)を実行します。

(3)cron 設定
 予約コマンドは at で時刻起動されますが、FreeBSDの時刻起動は5分単位の為、1分単位の起動へ変更します。合わせて定期的に epg を取得する様に追加します。
 /etc/crontab を以下の様に変更追加します。

【余談】
 php のインストールで必要なモジュールを調べるのが大変だったので、メモしておきます。余分なものもまだ入っていると思いますが、取り敢えず不足はないみたい。

 


2017/10/03 改定:PT3 ドライバパッチの本体反映に伴いパッチ不要の旨、記載変更。
2017/07/31 改定:PT3 ドライバパッチ追加、epgrec-UNA 内での ps コマンドオプション訂正
2017/06/25 改定:現動作環境、PT3ドライバ分追記。PHPモジュールを7.1版に変更

2017/02/12 初版


FreeBSDへ  サイトTOPへ

Posted by null-a