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

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

EDCB(EpgDataCap_Bon)のインストール
EDCBは人柱版10.69を最後に更新されていないが、オリジナルのソースを元に開発を続けているxtne6f版EDCBがLinuxでも動作する。
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、gcc、linux-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

