Linux版EDCBのインストール

 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

日々

 朝6時に起こされて起床。6時半に出発。両親を乗せて北神戸線から新神戸トンネルで脇浜のマクドへ。母親がモバイルオーダーのクーポンでソーセージエッグマフィンセットをファンタグレープで注文してくれたので朝食。

 食べ終わってから両親を市役所近くの東公園前まで送ってから出社。

 昼食はコープの袋ラーメン。

 Raspberry PiでのLinux版EDCBの動作は問題なさげってことで確認終了、シャットダウンして取り外し、元通りにThinkCentre+PX-Q3U4を取り付けておいた。あと電源タップを増設してGroovyの3.5'HDDケースに入れた8TBも接続しておいた。

日々

 久々にRaspberry Pi 3 Model B+とPX-S1UDを引っ張り出してきてRaspberry Pi OSをクリーンインストール。EpgDataCap_Bon+BonDriver_DVBを入れてみた。問題なく動作している模様。

 Linux版EDCBはここまで色々なパターンで動作確認した結果、常用できると判断して、epgrecUNAを永らく動作させていたITX-250/300W+D52Sにも入れてみたがmakeでエラー。原因を調べもせずにDebian 10やパッケージが古すぎるからだろうとapt update&upgradeを実行した後、せっかくなのでDebian自身もアップデートを仕掛けたところ、途中で失敗(滝汗)

 何故かsudoコマンドも使えず、新たにsshでログインすることも出来なくなったので、とりあえずログイン済みのsshセッションを切らずに何とかバックアップだけでもと思い、rsyncでNASへと逃がす。

 定時後、ITX-250/300W+D52Sを引っ張り下ろす。開けると3.5'HDD 2TBだけでなく、2.5'HDD 320GBが入ってた。どうやらシステムが入ってるっぽいので、これを余らせてた2.5'SSD 128GBと入れ替えてDebian 12 64bitをインストール。自作のradikoタイムフリー録音スクリプトを入れたので、これで一応従来の最低限の環境は出来た。前提パッケージをすっかり忘れてた(汗)あとはEpgDataCap_Bon入れたりとか。

 TAKEが降りてきて晩御飯に一緒に行くことになったので、チャンネルスキャンの途中で出発。最寄りのジョリーパスタへ。残念ながら鉄板メニューは既に無くなってたので、感動のカルボナーラをフェットチーネ変更で。あとTAKEが気付いたけど小さいピザとドリンクバーが500円で付けれると知ったのでベーコンピザのセットにした。

 食べ終わってからTAKE宅に帰還。チャンネルスキャンは終わってたのでEDCBの設定ファイル作って起動してEPG取得だけ開始したところで本日は終了。ガスが残り少なかったので、いつもの白川方面の出光でレギュラー満タン給油。高くなったと聞いてたがリッター167円。まだまだ十分に安い。その後、下道で帰宅。

 リモートで今日セットアップした録画PCの作業の続き。EPG取得出来てた。キーワード予約も入ってたので不要な予約を無効化したりとか。Raspberry Piの方もリモート作業できるように色々と追加で作業。

 明日は早起きしなきゃいけないので早めに風呂入ってから就寝。

日々

 定時後、最寄りの郵便局で会社の郵便物をポストに投函しつつ第二神明で帰宅。晩御飯はハムエッグカレー。

 転送用サーバPCは昨晩電源が落ちてるのを確認して入れたものの繋がらないので一度引っ張り出して確認せねば。それはそれとして東京録画PCからの転送が止まったままでは困るので、日中にThinkCentre M75q-1 Tinyを暫定的に転送用サーバPCにすべく予め仕込んでおいたバッチファイルで転送を開始しておいた。このまま常用することなりそうならタスク登録しとかなあかんかもなー。

 夜9時にお茶入れてもらって一服。今日は柿の種ピーナッツ無しとカフェオレ。そういえば、水漏れがよく発生してた赤いコーヒーサーバーが先日とうとうヒビが入ったらしく、前々から予備として保管されていた新しい黒いコーヒーサーバーに変わってた。

 NAS容量が危険水域だったので、そろそろ終わった秋番組の重複整理。

一人未読

  1. 21:39~22:04 グリザイア:ファントムトリガー #2「マザーズクレイドル #2」(BS日テレ 2025/01/08(水) 24:00)

日々

 録画PCからNASへの移動整理をしてたら東京録画PCからの転送が行われていないことに気付いた。どうやら転送用サーバPCが死んでるっぽい。帰宅したら再起動せねば(汗)

 先日届いたものの充電できなかったSL-C860のバッテリーは返品処理を行ったところ、返送用ラベルが用意されて、返金処理も行われたが、返送用ラベルを印刷しようとしたら出品者からのメッセージに返品する前に連絡してくれと書いてあったのでAmazon経由でメッセージを送ってみた。考えてみれば海外からの発送だったので返品する方がコストがかかるのかも。

 はがきケースに入れたPX-MLT5PEの基板後部の隙間を埋めたいので大きさを測ってみた。隙間は21mmあるので、ケース内寸の幅111mmと厚み34mmで111×34×21mmのゴムブロック等があれば良さげ。

 NUC7PJYH(2台目)で動かしているLinux版EDCBで何故かQSVエンコードが出来ないので原因を調べてみたら単純にユーザーがrenderグループに所属してないだけだった(汗)無事動くようになったもののQSV使わない360pエンコードとQSV使った720pエンコードはエンコード速度もCPU負荷にも大差がないっぽい。高解像度での視聴じゃなくてもいいなら別にQSVにこだわらんでええような気がする。

 あと、EDCBのDLNAサーバ機能も試してみたが上手く動作しない。仕様を見るにこちらで想定してるような使い方が難しそうなので、素直にminiDLNAあたりを入れてお茶を濁しておけばええか(汗)

 定時後、第二神明で帰宅。晩御飯はメンチカツカレー。

 夜9時にお茶入れてもらって一服。今日はサラダせんべいチーズ味と柿の種ピーナッツなしとバウムクーヘンひと切れ。

一人未読

  1. 19:51~20:16 爆上戦隊ブンブンジャー #44「届け屋が届かない」(ABCテレビ 2025/01/12(日) 09:30)
  2. 20:17~20:42 魔法つかいプリキュア!! ~MIRAI DAYS~ #1「再会はミラクルでマジカル!」新番組(ABCテレビ 2025/01/11(土) 26:00)
  3. 22:06~22:34 想星のアクエリオン Myth of Emotions #1「彼女の語る」新番組(BS朝日 2025/01/10(金) 23:30)
  4. 22:35~23:01 グリザイア:ファントムトリガー #1「マザーズクレイドル #1」新番組(BS日テレ 2025/01/01(水) 25:00)来週からは24時

 爆上戦隊ブンブンジャー、スピンドーがついにTHIS IS IT状態に(汗)魔法つかいプリキュア!! ~MIRAI DAYS~、OPが当時のアレンジ新バージョンってのが良い。想星のアクエリオン、初代アクエリオンOPだけど福山の声がする。しかし、パワーパフガールズみたいなキャラデザ慣れないな…。