Linux版EDCBのインストール

 LinuxでのTS抜き録画でもWindowsで実績のあるEDCB(EpgDataCap_Bon)が使えるようになったのでインストールしてDebianRaspberry Pi OSで動かしてみた。

 基本的にEDCB、B25Decoder、BonDriverとチューナーのドライバが必要なところはWindows版と同じだけど、GUI画面が無いのでWebブラウザからWebUIで操作することになる。Windows版のEpgTimerNW.exeから接続して操作することも出来る。
 CPUが第一世代のAtomやメモリが1GB以下の低スペックな環境でも動作し、そこそこのCPUパワーがあればHLS配信でのストリーミング視聴でテレビや録画番組を見たり、字幕を表示したり、データ放送の視聴も行える。

EDCB(EpgDataCap_Bon)のインストール

 EDCBは人柱版10.69を最後に更新されていないが、オリジナルのソースを元に開発を続けているxtne6f版EDCBLinuxでも動作する。
 EpgDataCap_Bon、EpgTimerSrv等は/usr/local/bin、EpgDataCap3、SendTSTCP等やB25Decoder、BonDriver等は/usr/local/lib/edcb、EpgTimerSrv.ini、Settingフォルダ等は/var/local/edcbに入る。
 インストールは公式のビルド手順の通り。HLS配信でのストリーミング視聴をする場合はtsreadex等が必要なのでmake extraとmake install_extraも行う。
 設定ファイル等を格納する/var/local/edcbは予め作成してEDCBを起動するユーザーの所有に変更した上でmake setup_iniで初期状態のファイルをインストールする。
 必要なパッケージはgitコマンドを使うのでgit、ビルドに使うのでmake、gcc、g++、liblua5.2-dev、make extraを行う際にcurlコマンドを使うのでcurl、その他に公式で必要と書かれているlua-zlib、HLS配信でのストリーミング視聴をする場合に必要になるffmpegを予めインストールしておく。

sudo apt install git make gcc g++ liblua5.2-dev lua-zlib curl ffmpeg -y
git clone https://github.com/xtne6f/EDCB
cd EDCB/Document/Unix
make
sudo make install
make extra
sudo make install_extra
sudo mkdir /var/local/edcb
sudo chown $USER /var/local/edcb
make setup_ini
cd ../../..

B25Decoderのインストール

 xtne6f版EDCBにはB25Decoderが含まれていないのでスクランブル解除したい場合はtsukumijima版Multi2Decに含まれるB25Decoderが必要になる。
 ビルドしたB25Decoder.soは/usr/local/lib/edcbに配置するだけで有効になる。
 必要なパッケージはgitコマンドを使うのでgit、ビルドに使うのでmake、g++、libpcsclite-dev、その他に公式で必要と書かれているpkg-config、動作に必要となるpcscd、pcsc_scanコマンドでB-CASカードの確認をしたい場合はpcsc-toolsもインストールしておく。

sudo apt install git make g++ libpcsclite-dev pkg-config pcscd pcsc-tools -y
git clone https://github.com/tsukumijima/Multi2Dec
cd Multi2Dec/B25Decoder
make
sudo cp B25Decoder.so /usr/local/lib/edcb/
cd ../..

EDCB Material WebUIのインストール

 Linux版EDCBはWindows版の操作画面のようなUIは無いので代わりにWebUIを使うことになるが、スマートフォン等でも見やすいEPGStationのようなMaterial UIのEDCB Material WebUIがあるのでインストールしておく。

git clone https://github.com/EMWUI/EDCB_Material_WebUI
cd EDCB_Material_WebUI
cp -r HttpPublic /var/local/edcb/
cp -r Setting /var/local/edcb/
cd ..

BonDriverについて

 最後にBonDriverを用意する。BonDriverはPLEX系チューナー用ドライバのpx4_drv、PT1/PT2用ドライバのpt1_drv、PT3用ドライバのpt3_drvで使えるBonDriver_LinuxPTX、PX-S1UD等のDVBデバイスとして認識するチューナーで使えるBonDriver_DVB(u-n-k-n-o-w-n版BonDriverProxy_Linuxに含まれている)、US-3POUT(さんぱくん外出)で使えるBonDriver_3POUT、Mirakurunやmirakcで使えるBonDriver_LinuxMirakcがある。
 WindowsのSpinelや、LinuxのMirakurun等のようなチューナーの共有はBonDriverProxy_Linuxのサーバとクライアントを使うことで同様な環境を組むことが出来る。

px4_drvのインストール

 今回はPLEX PX-W3U4を使うのでドライバのpx4_drvをインストールする。ファームウェアの抽出と配置、ドライバのインストールを行う。インストール後、既にチューナーを接続している場合はsudo rebootで一旦再起動する。
 必要なパッケージはgitコマンドを使うのでgit、ビルドに使うのでmake、gcclinux-headers-…、ファームウェアのダウンロードと展開に使うのでwget、unzipをインストールしておく。

sudo apt install git make gcc wget unzip linux-headers-`uname -r` -y
git clone https://github.com/tsukumijima/px4_drv
cd px4_drv/fwtool
make
wget http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip -O pxw3u4_BDA_ver1x64.zip
unzip -oj pxw3u4_BDA_ver1x64.zip pxw3u4_BDA_ver1x64/PXW3U4.sys
./fwtool PXW3U4.sys it930x-firmware.bin
sudo mkdir -p /lib/firmware
sudo cp it930x-firmware.bin /lib/firmware/
cd ../driver
make
sudo make install
cd ../..

BonDriver_LinuxPTXのインストール

 px4_drvに対応したBonDriver_LinuxPTXをビルドして、BonDriver_LinuxPTX.soとBonDriver_LinuxPTX.iniをチューナーの数だけ名前を変えてコピーした後、BonDriver_LinuxPTX.iniのデバイス名、デバイスファイル名、地デジとBS/CSの対応を書き換える。

sudo apt install git make g++ -y
git clone https://github.com/nns779/BonDriver_LinuxPTX
cd BonDriver_LinuxPTX
make
sudo cp BonDriver_LinuxPTX.so /usr/local/lib/edcb/BonDriver_LinuxPTX-0.so
sudo cp BonDriver_LinuxPTX.so /usr/local/lib/edcb/BonDriver_LinuxPTX-1.so
sudo cp BonDriver_LinuxPTX.so /usr/local/lib/edcb/BonDriver_LinuxPTX-2.so
sudo cp BonDriver_LinuxPTX.so /usr/local/lib/edcb/BonDriver_LinuxPTX-3.so
sudo cp BonDriver_LinuxPTX.ini /usr/local/lib/edcb/BonDriver_LinuxPTX-0.ini
sudo cp BonDriver_LinuxPTX.ini /usr/local/lib/edcb/BonDriver_LinuxPTX-1.ini
sudo cp BonDriver_LinuxPTX.ini /usr/local/lib/edcb/BonDriver_LinuxPTX-2.ini
sudo cp BonDriver_LinuxPTX.ini /usr/local/lib/edcb/BonDriver_LinuxPTX-3.ini
sudo sed -i -e 's/^Name=".*/Name="LinuxPTX-0"/;s/^Device=.*/Device=\/dev\/px4video0/;s/^Space=.*/Space=BS,CS110/' /usr/local/lib/edcb/BonDriver_LinuxPTX-0.ini
sudo sed -i -e 's/^Name=".*/Name="LinuxPTX-1"/;s/^Device=.*/Device=\/dev\/px4video1/;s/^Space=.*/Space=BS,CS110/' /usr/local/lib/edcb/BonDriver_LinuxPTX-1.ini
sudo sed -i -e 's/^Name=".*/Name="LinuxPTX-2"/;s/^Device=.*/Device=\/dev\/px4video2/;s/^Space=.*/Space=UHF,CATV/' /usr/local/lib/edcb/BonDriver_LinuxPTX-0.ini
sudo sed -i -e 's/^Name=".*/Name="LinuxPTX-3"/;s/^Device=.*/Device=\/dev\/px4video3/;s/^Space=.*/Space=UHF,CATV/' /usr/local/lib/edcb/BonDriver_LinuxPTX-1.ini
cd ..

尚、設定ファイルのBonDriver_LinuxPTX.iniはBS再編前の内容になっているので、必要に応じて書き換えないと一部のBSチャンネルが受信できないので注意。

EDCBのチャンネルスキャン

 EpgDataCap_Bonコマンドでチャンネルスキャンを行う。Windows版と違い、オプションでBonDriverの指定とチャンネルスキャンの実行を指定する。

EpgDataCap_Bon -d BonDriver_LinuxPTX-0.so -chscan
EpgDataCap_Bon -d BonDriver_LinuxPTX-1.so -chscan
EpgDataCap_Bon -d BonDriver_LinuxPTX-2.so -chscan
EpgDataCap_Bon -d BonDriver_LinuxPTX-3.so -chscan

EDCBの初期設定

 初期状態ではWebUIからの設定変更が行えないので、/var/local/edcb/HttpPublic/legacy/util.luaのALLOW_SETTING=falseをALLOW_SETTING=trueに書き換えて、設定が変更できるようにする。

sed -i -e 's/^ALLOW_SETTING=.*/ALLOW_SETTING=true/' /var/local/edcb/HttpPublic/legacy/util.lua

 初期状態ではWebUIを開くたびにログファイルが増え続けるのでログを無効化、同一LAN内からアクセスできないので許可、録画後動作がLinux版ではサポートされていない休止になっているので何もしないに変更、WebUIでデータ放送が視聴できるのでデータ放送の録画を許可、Windows等のEpgTimerNWからの接続を許可する設定に書き換えた/var/local/edcb/EpgTimerSrv.iniを作成する。

tee /var/local/edcb/EpgTimerSrv.ini << 'EOT'
[SET]
EnableHttpSrv=1
HttpAccessControlList=+127.0.0.1,+192.168.0.0/16
RecEndMode=0
Data=1
EnableTCPSrv=1
EOT

 初期状態ではWebUIのライブラリから録画番組が見えないので、録画保存フォルダを/var/local/edcb/HttpPublic/videoに変更する。

mkdir /var/local/edcb/HttpPublic/video
tee /var/local/edcb/Common.ini << 'EOT'
[SET]
RecFolderPath0=/var/local/edcb/HttpPublic/video
RecFolderNum=1
EOT

EDCBの起動と設定

 EpgTimerSrvをシステム起動時に自動的に起動させるためにサービスとして登録して有効化する。

sudo tee /etc/systemd/system/edcb.service << EOT
[Unit]
Description=EpgTimerSrv
After=network-online.target

[Service]
ExecStart=/usr/local/bin/EpgTimerSrv
Restart=always
StandardError=journal
StandardOutput=null
TimeoutStopSec=50
Type=simple
User=$USER

[Install]
WantedBy=default.target
EOT
sudo systemctl enable edcb

 これでEDCB(EpgTimerSrv)を起動して、Webブラウザからhttp://xxxxx:5510(xxxxxはEDCBを起動しているPCのIPアドレスもしくはホスト名)を開く。EMWUI/でEDCB Material WebUIが、Legacy/でEDCB Legacy WebUIが開ける。

sudo systemctl start edcb


 最低限、WebUI(EDCB Legacy WebUI)の設定メニューから、BonDriverで各BonDriverごとのチューナー数(BonDriver_LinuxPTXの場合は1)を設定した後、EDCBを再起動してから、WebUI(EDCB Legacy WebUI)からEPG取得を行えば、番組表の表示や録画予約が可能になる。

sudo systemctl restart edcb

HLS配信でのストリーミング視聴

 WebUI(EDCB Legacy WebUI)の設定メニューから、ネットワーク設定でTCP送信先TCPをSrvPipeに変更して、追加すれば、ライブラリから録画番組のストリーミング視聴が可能になる。
 さらにWebUI(EDCB Legacy WebUI)の設定メニューから、視聴に使用するBonDriverを追加しておけば、リスト番組表からリアルタイムのテレビ視聴も可能になる。