pt3
OpenMediaVault
recpt1
EpgrecUNA

OpenMediaVault 3 beta で EpgrecUNA を実行

More than 1 year has passed since last update.

前提

前回掲載した記事を参考に、OpenMediaVault 3 beta で Nginx と PHP を実行できるようにしておいてください。

Webコンテンツを置いている共有フォルダに録画用のtsファイルを置きますので、それなりの容量を確保しておいてください。
基本、SSHでログインしての作業になります。
右のSSHメニューから、SSHサーバの設定を有効にしておいてください。
また、録画には正確な時間が必要となりますので、日付&時刻メニューからNTPを有効にしておいてください。

以下の機器も必要となります。

  • PT3
  • カードリーダ(SCR3310-NTTComを使用しています)

参考

ほぼ手順のみ記載しますので、詳しいことは下記サイトを参考にしてください。

EpgrecUNAの取得について

適当な何かの別館から、必要なファイルをダウンロードしておいてください。
ダウンロード用のパスワードとかは、サイト内に記載してありますので探してください。
(ここで質問されても答えれません)

  • epgrecUNA_151114.tar.gz
  • epgrecUNA151114Fix1.tar.gz
  • epgrecUNA151114Fix2.tar.gz
  • epgdumpUNA160127.tar.gz
  • pt1-c8688d7d6382.tar.bz2
  • recpt1-http-rev4.tar.gz

MySQL Pluginのインストール

プラグインメニューの「セッション:Network」の「openmediavault-mysql 3.x.x」のチェックボックスにチェックを入れて、上段にあるインストールボタンでインストールしてください。

右のMySQLメニューを選択し、「General settings」の有効化にチェックを入れてください。

これで、OMV3でMySQLが使用できるようになりました。

必要なツールのインストール

ここから先は、SSHでの作業となります。
(基本的に、OMVではrootで作業しますのでsusudoを使用していません)

apt-get installコマンドを使用して、EpgrecUNAで使用するツールをインストールしてしまいます。
(一つのコマンドが長くなっています。漏れなくコマンドを登録してください)

apt-get -y install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools git git-core  build-essential autoconf automake unzip pkg-config curl dkms libboost-all-dev libssl-dev libtool linux-headers-`uname -r` yasm at

www-dateユーザでatコマンドを実行できるように細工します。

sed -i 's/www-data//g' /etc/at.deny

カードリーダにB-CASカードを刺して以下のコマンドを実行してください。

pcsc_scan | grep "Japanese Chijou Digital"

すると、以下のような表示が出力されますのでCtrl+Cで止めてください。

    Japanese Chijou Digital B-CAS Card (pay TV)

PT3ドライバのインストール

以下のコマンドを順に実行し、PT3ドライバをインストールしてください。

cd /tmp
git clone https://github.com/m-tsudo/pt3.git
cd pt3/
make
make install
${SHELL} ./dkms.install

インストール後、OMVをリブートさせてください。

reboot

ドライバの確認

ls -la /dev/pt*video*

正常にインストールできていれば以下のような感じで出力されます。

crw-rw-rw- 1 root video 250, 0 11月  6 20:21 /dev/pt3video0
crw-rw-rw- 1 root video 250, 1 11月  6 20:21 /dev/pt3video1
crw-rw-rw- 1 root video 250, 2 11月  6 20:21 /dev/pt3video2
crw-rw-rw- 1 root video 250, 3 11月  6 20:21 /dev/pt3video3

epgdumpのインストール

scp等で「epgdumpUNA160127.tar.gz」を/tmpにコピーしてください。
以下のコマンドを順次実行し、epgdumpをインストールします。

cd /tmp
tar -xvf epgdumpUNA160127.tar.gz
cd epgdump
make
make install

recpt1のインストール

以下のコマンドを順に実行し、arib25ライブラリとrecpt1をインストールします。

arib25ライブラリのインストール

cd /tmp
wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
unzip c44e16dbb0e2.zip
cd pt1-c44e16dbb0e2/arib25
make clean
make
make install

recpt1のインストール

scp等で「pt1-c8688d7d6382.tar.bz2」と「recpt1-http-rev4.tar.gz」を/tmpにコピーしてください。
その後、以下のコマンドを順次実行します。

cd /tmp
tar xvjf pt1-c8688d7d6382.tar.bz2
tar xvzf recpt1-http-rev4.tar.gz
patch -p2 -d pt1-c8688d7d6382/recpt1/ < recpt1-http-rev4/recpt1-http.diff
cd pt1-c8688d7d6382/recpt1/
sed -i".org" 's/pt1video/pt3video/g' pt1_dev.h
./autogen.sh
./configure --enable-b25
make
make install

インストール後の確認

以下のコマンドを実行し、手動で録画と番組表の取得をしてみます。

cd /tmp
recpt1 -version
recpt1 --b25 --strip 27 20 test.ts
epgdump  27 test.ts test.xml -xml
head -n 20 test.xml

こんな感じで、番組表がXML形式で出力されます。
(内容は気にしないでください。XMLファイルが出力されていることだけ確認してください)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">

<tv generator-info-name="tsEPG2xml" generator-info-url="http://localhost/">
  <channel id="27_47144">
    <display-name lang="ja_JP">テレビ新広島1</display-name>
    <id ts="32021" on="32021" sv="47144" st="1"/>
  </channel>
  <channel id="27_47145">
    <display-name lang="ja_JP">テレビ新広島2</display-name>
    <id ts="32021" on="32021" sv="47145" st="1"/>
  </channel>
  <programme_pf start="2016-11-06 21:00:00" stop="2016-11-06 21:54:00" channel="27_47144" eid="53490">
    <title>キャリア〜掟破りの警察署長〜#5[字][デ]</title>
    <desc>金志郎(玉木宏)は、1日警察署長に人気ドラマの主演俳優・小松平健介(新納慎也)を迎える。しかし、小松平が命を狙われていることが、判明し署内は大混乱に!</desc>
    <genres>4:0:0:16:0:16</genres>
    <video_audio>179:3:0</video_audio>
    <status>0</status>
    <sch_pnt>0</sch_pnt>
  </programme_pf>

fstabの修正

Webコンテンツを置くHDDのマウント設定を変更する必要があります。
vi /etc/fstab等で編集してください。

/etc/fstab
# >>> [openmediavault]
UUID=49f6479a-ef38-479a-9605-586213b80145 /media/49f6479a-ef38-479a-9605-586213b80145 ext4 defaults,nofail,user_xattr,noexec,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl 0 2
# <<< [openmediavault]

:warning: "49f6479a-ef38-479a-9605-586213b80145"の部分は環境によって違います。
noexecexecに変更してください。
この設定をしないと、番組表の取得ができませんのでお忘れなく。

MySQLの設定

以下のコマンドを実行し、MySQLのクライアントツールでローカルのMySQLに接続します。

mysql -uroot -p

次に、以下のコマンドを実行し、epgrecデータベースを作成します。

create database epgrec;
grant all on epgrec.* to epgrec@"%" identified by 'epgrec' with grant option;
flush privileges;
quit

:warning: 今回は"epgrec"データベースの"epgrec"ユーザで、パスワードは"epgrec"で作成しています。

EpgrecUNAのインストール

Nginxメニューのサーバタブに一覧で表示されているルートのパスをメモしておいてください。

scp等で「epgrecUNA_151114.tar.gz」と「epgrecUNA151114Fix1.tar.gz」と「epgrecUNA151114Fix2.tar.gz」を/tmpにコピーしてください。
その後、以下のコマンドを順次実行します。

cd /tmp
tar -zxvf epgrecUNA_151114.tar.gz
tar -zxvf epgrecUNA151114Fix1.tar.gz
tar -zxvf epgrecUNA151114Fix2.tar.gz
mv epgrec [メモしたパス]/
cd /var/www/html/
ln -s [メモしたパス]/epgrec epgrec
chown -R www-data:www-data [メモしたパス]/epgrec
chown -R www-data:www-data /var/www/html/epgrec
cd /var/www/html/epgrec
cp -p do-record.sh.sample do-record.sh
chmod 777 cache templates_c video thumbs settings
chmod 666 thumbs/index.html video/index.html
chmod 755 do-record.sh
chown www-data:www-data do-record.sh

EpgrecUNAの設定

viコマンドで/var/www/html/epgrec/config.phpを編集します。
(別のテキストエディタでも問題ありません)
おそらく、デフォルトでは地上波チェンネルの情報が以下のようになっているはずです。

/var/www/html/epgrec/config.php
$GR_CHANNEL_MAP = array(
        'GR27' => '27',         // NHK
        'GR26' => '26',         // 教育
        'GR25' => '25',         // 日テレ
        'GR22' => '22',         // 東京
        'GR21' => '21',         // フジ
        'GR24' => '24',         // テレ朝
        'GR23' => '23',         // テレ東
//      'GR16' => '16',         // MX TV(スカイツリー)
//      'GR20' => '20',         // MX TV(東京タワー)
//      'GR18' => '18',         // テレ神
        'GR30' => '30',         // 千葉
//      'GR32' => '32',         // テレ玉
        'GR28' => '28',         // 大学
);

コレを各地域ごとの情報に書き換えてください。
マスプロのサイトに有るチャンネル一覧表あたりが参考になると思います。

広島市内だとこんな感じ(チャンネル数少ないですね)

/var/www/html/epgrec/config.php
// 広島地区デジタルチャンネルマップ(参考)
$GR_CHANNEL_MAP = array(
        'GR15' => '15', // NHK
        'GR14' => '14', // 教育
        'GR18' => '18', // 中国放送
        'GR19' => '19', // 広島テレビ
        'GR22' => '22', // 広島ホームテレビ
        'GR23' => '23', // テレビ新広島
);

同じように、epgrec/config.phpファイルに存在している以下の部分をチューナの数によって変更してください。

define( "TUNER_UNIT1", 0 );

0 → 2に変更。PT3が2枚なら4。

ここまでの設定が完了したら、いよいよEpgrecのWeb画面にアクセスです。

http:// OMVのIPアドレス /epgrec/

設定が出来ていれば以下のような表示がされているはずです。
(「地上デジタルチャンネルの設定確認」は設定によりまちまちです)

PHPのインストール状態をチェックします

epgrecのインストール状態をチェックします

ディレクトリのパーミッションチェック(777)

/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/templates_c...777...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/video...777...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/thumbs...777...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/settings...777...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/cache...777...ok
ファイルのパーミッションチェック(755)

/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/recomplete.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/shepherd.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/sheepdog.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/collie.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/airwavesSheep.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/trans_manager.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/scoutEpg.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/repairEpg.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/showEXmem.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/resetEXmem.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/epgwakealarm.php...755...ok
/media/49f6479a-ef38-479a-9605-586213b80145/wwwroot01/epgrec/gen-thumbnail.sh...755...ok
地上デジタルチャンネルの設定確認

現在、config.phpでは以下のチャンネルの受信が設定されています。受信不可能なチャンネルが混ざっていると番組表が表示できません。
物理チャンネル15
物理チャンネル14
物理チャンネル18
物理チャンネル19
物理チャンネル22
物理チャンネル23
以上を確認し次の設定に進む

「以上を確認し次の設定に進む」リンクを押してください。

各設定を以下の情報を参考に設定してください。

MySQLデータベース設定

設定 備考
MySQLホスト名 localhost デフォルト
MySQL接続ユーザー名 epgrec
MySQL接続パスワード epgrec
使用データベース名 epgrec
テーブル接頭辞 Recorder_ デフォルト

インストール関連設定

設定 備考
インストールURL http:// OMVのIPアドレス /epgrec
録画保存ディレクトリ /video tsファイルを格納するディレクトリを指定してください
サムネールの使用 使用しない デフォルト
サムネール保存ディレクトリ /thumbs デフォルト
EPG取得用テンポラリファイルの設定(録画データ) /tmp/__temp.ts デフォルト
EPG取得用テンポラリファイルの設定(XMLファイル) /tmp/__temp.xml デフォルト

使用コマンドのパス設定

設定 備考
epgdump /usr/local/bin/epgdump デフォルト
at /usr/bin/at デフォルト
atrm /usr/bin/atrm デフォルト
sleep /bin/sleep デフォルト
FFmpeg /usr/bin/ffmpeg デフォルト

省電力の設定

設定 備考
省電力の設定 設定しない デフォルト

ここまで設定したら「設定を保存する」ボタンを押してください。
画面が遷移し、次の設定も引き続き設定してください。

デジタルチューナー設定

設定 備考
地デジチューナーの台数 2 PT3の数×2です
BSチューナーの台数 2 PT3の数×2です
CS録画の有無 行う CS放送を受信する場合は「行う」を設定してください

録画関連設定

全てデフォルトで問題ありません。

録画ファイル名の形式

ここもデフォルトで問題ありません。
私は以下のように設定しています。

%ST%-%TITLE%

番組表表示設定

設定 備考
ページに表示する番組表の長さ 24
1局あたりの幅 150 デフォルト
1時間あたりの高さ 120 デフォルト

ここまで設定したら「設定を保存する」ボタンを押してください。

初期設定が完了しました。
下のリンクをクリックするとEPGの初回受信が始まります。初回受信が終了するまで番組表は表示できません。

EPG受信後、/etc/cron.d/以下にcronによる定期EPG受信の自動実行を設定する必要があります。
Debian/Ubuntu用の設定ファイルは/media/XXXX/wwwroot01/epgrec/cron.d/shepherdです。
Debian/Ubuntuをお使いの方は
$ sudo cp /media/XXXX/wwwroot01/epgrec/cron.d/shepherd /etc/cron.d/ [Enter]

という具合にコピーするだけで動作するでしょう。ただしhttpdのドキュメントルートが/var/www/以外の場合は、それに合わせた修正が必要です。
それ以外のディストリビューションをお使いの方はDebian/Ubuntu用の設定ファイルを参考に、適切にcronの設定を行ってください。
なお、設定ミスや受信データの異常によってEPGの初回受信に失敗すると番組表の表示はできません。
設定ミスが疑われる場合、インストール設定を実行し直してください。
また、手動でEPGの受信を試みるのもひとつの方法です。コンソール上で、
$ sudo /media/XXXX/wwwroot01/epgrec/shepherd.php [Enter]

と実行してください。

EPGの受信には9分程度かかります。

このリンクをクリックするとEPGの初回受信を開始します。

一番下のリンクを押すと、番組表の取得を開始します。
動いているか気になる人は、sshで以下のコマンドを実行してrecpt1が動いているか確認してみてください。

ps ax | grep recpt1

Web画面の「epgrecのトップページ」を押してEpgrecの画面に遷移してください。
番組表が正しく表示されれば成功です。

番組表 自動更新の設定

OMV3の管理画面に移り、「スケジュールされたジョブ」メニューから自動実行するジョブの登録を行います。
追加ボタンを押して「スケジュールされたジョブの編集」ダイアログを開きます。
続いて、以下の設定でジョブを設定し、保存ボタンを押します。

設定 備考
有効 チェック
実行時刻 特定の日時 デフォルト
29
毎N分 チェックしない
2
毎N時 チェック
月の日 * デフォルト
毎月N日 チェックしない デフォルト
* デフォルト
曜日 * デフォルト
ユーザ www-data
コマンド php /var/www/html/epgrec/shepherd.php
電子メールの送信 チェックしない

最後に

以上でEpgrecUNAの設定は終わりです。
心ゆくまで録画ライフを満喫してください。

ちなみに、ウチではBS放送の番組表の取得ができません。
CSは取得できるのになぁ…。