TVServer on Linux (ubuntu-24/etc) with BonCasProxy and Chinachu (2026/3/5作成)
以前から使用していた、録画用 TVServerがクラッシュしたのをキッカケにOSをUbuntu-24.04.5にアップデートしましたが、以前の環境に戻すのは困難を極め、やっと非Dockerでのインストールにて、BonCasProxy実装したChinachuでの録画サーバーの構築方法を見つけることが出来たので、ここに詳細をUpしました。ここではRaspberyPi(Debian64bit)でも同様の方法でインストール出来たので併記しています。
1. 関連する以前の投稿
以前の投稿 1. BonCasServer for mac と 2. TvServer on Raspberry Piがこのサーバー内にあります。
2. 今回の検討理由
以前の録画環境はubuntu-18にBonCasProxyを入れて、chinachuからSambaでフィイル転送で10年間再起動することなく、安定して稼働していました。今回のクラッシュはMB内のボタン電池の寿命と停電が重なってしまった事が原因でBIOSの設定が飛び追加カーネルの設定も壊れてしまいました。やむなくOSをubuntu-24に上げ再インストールを試みました。Ubuntsu-24の録画サーバー構築方法はDocker
バージョンで出回っていますが、BーCAS一体となった、EPGStationのもので、これではBonCasProxyも実装できず。安定したchinachuも使用出来ない為今回の検討となったわけです。
3.サーバーと録画カード
前回はPX-Q3PE4をPCIexpressのあるマシンに刺していたのですが、今回はPLEX社の全製品に対応すべく検討してみました。
1.PLEX製品にはUSB接続の単体製品、2.USB接続のあるPCIexpress用カード製品と3.接続をPCIexpressのBusから取るタイプのカードがありますが、3のタイプではPCIexpressスロットを持ったマシンでなければなりません。1に関しては小型PC(RaspberyPIを含む)に接続して使用する事が出来ます。2に関してはPCIexpressのスロットに刺して使用出来ますが、Busからは3.3Vの電源を取っているだけなので、外付BOXに取り付けて小型PCやRaspberyPIでも使用するとが可能です。
サーバーについては小型PC, RaspberyPI, ATX--PCが使えますが、中古のDesktop PCが安いので買い得です。私はHP600G2の中古を購入してみました。Fujitsuのものが中古で大量に出ていますがexpressではないPCIスロットなので、使い道がありません。RaspberyPIに関してはPI4,PI5が使えます。PI-zeroでは性能不足です。
4. 前準備 - OSとソフトフェアのインストール
4.1 OSのインストール
サーバーへのOSのインストール方法につてはここでは詳しく述べませんが、UbuntuやRaspberyPI用のUSB、SDcardでインストールする事になります。ただこの頃ではSecurityBootが有効になっている為に変な所で苦労することがあります。インストール時にはSecurityBootを無効にする必要があります。インストール後も無効にしておかないとドライバーのインストールが出来ないなど原因がわからず、苦労することになります。
BIOS画面の表示は”esc", "f1", "f2", "f9", "f9", "f10"キーを押しながら電源ONですが、Windowsの立ち上げ状態では”Shift"キーを押しながら”再起動”、Linuxでは"$ sudo systemctl reboot --firmware-set"でBIOS画面に移行できます。どうしても立ち上げできない場合は起動ディスクを外して、ubuntsuのインストールUSBを挿してTryモートで立ち上げてから、前記コマンドを実行すると良いでしょう。
PCではubuntu-22またはubuntu-24をインストールして下さい。ubuntu-22ではchinachuがそのままインストールできるので手間が少なく済みます。RaspberyPIの場合はせっかくなので、64bitの最新鈑をインストールします。
4.2 VNCの設定
設定にはディスプレー、キーボード、マウスなどを占有してしまうので、まずはVNCを設定して作業するのが良いでしょう。
まず立ち上げたら、ディスプレーの解像度設定、ディスプレーのタイムアウトなし(Power設定でディスプレーのタイムアウトなし)、V4接続でIPアドレス等の設定を行います。またubuntuでは設定画面のPrivacy and Securityのdevice securityでSecurity bootが無効になっていることを確認しておきます。
RaspberyPIの場合はメニューからVNCをアクティブにするだけですが、ubuntuの場合は下記方法でX11vncをインストールします。
systemdへ登録して起動します
ここまで済んだらシステムを再起動し、VNCクライアントのPCから接続し、ログインします。これで、本体からディスプレーとキーボードを取り外すことができますが、今後の再起動の際に不安定にならないため、本体のディスプレー端子にはHDMIダミープラグを接続しておきます。
4.3 録画ファイル用のSSDのフォーマットとマウント
起動Diskに余裕がある場合(500GB以上)の場合この作業は不用なので、読み飛ばして下さい。ただ録画用に別のSSDを実装している場合、下記ののコマンドでディスクの状態を確認します。
この時、起動ディスクを含めた多くの情報が表示されますが、SATAやUSBディスクの場合 sdaxx/sdbxx/...、M2nvmeの場合 nvme0xx/nvme1xx/...として表示されていますので、どれがどのディスクかを認識する必要があります。
ここでディスクをフォーマットしますが、ubuntuの場合GUIのユーティリティである、"disks"を使用して、パーティションがあれば解除し、"ext4"でフォーマットします。時間がかかりますが覚悟して作業を進めます。RaspberyPIの場合はコマンドで、"sudo mkfs -t ext4 /dev/
フォーマット後ディスクを/mnt下にマウントします。以下の例は追加ディスクが”
でマウント状態を見ます。すでに他の場所にマウントされていれば"sudo umount /dev/
うまく行ったらfstabに追記して、次のブート時に自動マウントされる様にします。
ここでRebootしますが、上記fstabの内容が間違っていると再起動が立ち上がらなくなりVNCも接続されないので、ディスプレー、キーボードを接続し直して、やり直さなければならにので、注意深く作業を進めて下さい。
4.4 録画ディレクトリーの作成と公開
録画ディレクトリの作成をします。/mnt以下にマウントされているSDDを使用する場合(例"tsfiles"という名前で)
ディスクが一つしかなく/mnt下にマウントされていない場合には/home/"ユーザーネーム"下に”tsfiles”を配置します。
ネットワーク上の他のPCに公開するためにSambaを導入します。
上記[tsfiles]のpathは追加ディスクの有無で適宜変更して下さい。書き込み後
これでtsfileディレクトリーが他のPC(WindowsやMacMac)から読み書きできる様になるので、確認して下さい。
4.5 その他の有用なソフトウェアのインストール
時間管理の為にchronyを導入します。
ubuntu付いているファイルブラウザnautilusは使い勝手がいいのですが、sudo権限でのアクセスが出来ないので、nautilus-adminを導入します。 debian(RaspberyPI)では別のファイルブラウザがインストールされていますが、ネットワークアクセス出来ないのでこれを追加導入しても損はないと思います。
sunap-shot backupの為にtimeshiftを導入します。これは今後インストールを続け上で各段階での状態を保存することが出来非常に便利です。
私の設定のお勧め、Dailyでのバックアップを外しscheduleを無効にし、/home, /rootもバックアップに含める事です。
5. 録画サーバーソフトのインストール
前置きが大分長くなってしまいましたが、ここからが本番です。
5.1 チューナードライバーのインストール
Plexのチューナーのインターフェイスには2種類あってカードタイプに使用されるPX4ドライバーとドングルタイプ用のPX-S1UDがあります。
まず、ホームが乱雑にならない為に~/下にplexというディレクトリーを作ってそこで作業を進めます。
必要なソフトのインストール
PX4タイプのドライバーインストール
px4video0...が表示されれば成功です。
ドングルタイプPX-S1UD, PX-Q1UDドライバーインストールは
adaptor0...が表示されれば成功です。(OSによってはすでにこのdvbドライバーが組み込まれている様ですが、二重に行っても問題はありません。)
ちなみに[BS/CS-2ch、地デジ-2ch]のPX-W4xxタイプでの割り当ては
px4vido0 BS/CS px4video1 BS/CS pxv4video2 地デジ px4video3 地デジ
[BS/CS-4ch、地デジ-4ch]のPX-Q4xxタイプでの割り当ては
px4vido0 BS/CS px4video1 BS/CS pxv4video2 地デジ px4video3 地デジ
px4vido4 BS/CS px4video5 BS/CS pxv4video6 地デジ px4video7 地デジ
5.2 カードリーダーとarib25(BoncasProxy含む)のインストール
カードリーダーのインストールを行います。
カードリーダーが繋がっていてBCASカードが挿してあればBCASカードの内容が表示されます。カードリーダーが繋がっていなければ探している様子が表示されます。とりあえず^Cで終了します。内臓BCASでデコードするにはこれらが接続されている必要がありますが、BonCasProxyにするにはこれらは不用になります。下記コマンドでlibaribをインストールします。
BonCasProxyを使用するには、./aribb25にあるb_cas_card.cを改造する必要があります。
改造方法は、TvServer on Raspberry Piの3.1項に述べています。b_cas_card.cも古いものから変わっていますが、改造方法については全く同じ方法が使えます。このファイルを置き換えた後下記を実行します。
b_cas_card.cを置き換えず動作させ後にBonCasProxyにしたい場合は/usr/local/bin/にあるb25とarib-b25-stream-testを削除してから上記コマンド群を実行させるのが、良いでしょう。
5.3 受信ソフト(recpt1/recdvb)のインストール
ここでは2種類のチューナーを対象にしており、割り付けられるデバイスも2種類あるので、それぞれの受信ソフトも2種類になります。
px4videoを受信するソフトはrecpt1になりす。
/dev/dvb/下のataptorxを受信するソフトはrecdvbになりす。recdvbも色々あって、最近のものではarib25のBCAS readerが組み込まれているため、BonCasProxyの改造が無効になってしまいます。下記のgithubのものは、recdvbのplalaバージョンが廃止になってしまった今、貴重なものです。
これら2種のハード・ソフトは併用が可能で2枚挿しなどで後で増設することも可能です。
5.4 node制御とMirakurunのインストール
mirakurunのインストールを行いますが、最新版はDocker用のため、mirakurun@3.9.0-rc.4をインストールする事とします。このバージョンではnode-v16を要求しているためこのversionのJSを用意します。
nodeの制御プログラムは下記の方法でインストールします。
mirakurunをインストールします。
mirakurunでは東京地域の地上波の設定とBS,CSのチャンネル情報が含まれている。住んでいる地域によって、チャンネルスキャンが必要である。チャンネルスキャンとServiceIDの取得は地デジのチャンネルのみとなる。BS,CSについては全国共通であり、ServiceIDについてはchannels.ymlに記載されているので、視聴クライアントの構築に支障はない。
ここでlog fileがシステムを圧迫しない様にlogrotateを組み込む。
5.5 chinachuのインストール
さてここで、最大の難関である、chinachuのインストールに挑戦します。
従ってraspberyPIにインストールするにはgcc, g++のバージョンを下げる必要があります。(ubuntuの場合は不要)
ここから全システム共通で、python3のversion downとchinachuのインストールまで、一気に行います。理由はchinachuのインストールプログラムがPython3.10(以下?)で書いてある為で、インストール後はpythonのバージョンは関係なくなるためほんの一時的に変更するだけです。
インストール完了のcommand promptが出るまで、ubuntuでは30分程度だと思いましたが、RaspberyPI(ARM64)ではJSインタプリタのコンパイルがあるので、6時間以上かかっていたようです。
インストールが完了すれば、terminal windowを閉じてもOKです。(次にterminalを起動すればpython versionは元に戻っているはずです。)続いてchinachuの設定に移ります。
processes.jsonが起動出来ない場合はインストールが完全でない可能性があります。インストール部分を見直して下さい。
続いてchinachuもlogrotationに組み込みます。
これで、chinachuのインストールは終了です。あとは本体のポート:20772にアクセスして、好みの設定を行います。
6. 結論
どうしてここまでするのか、すでにお気づきだと思いますが、最大の目的は
ただRaspberyPIのlegacy32bitOSは古すぎて他のプログラムもついていけないところもあるので、64bit最新にしたのは仕方ありませんが、ubuntuに関してはubuntsu24にする意味はありません。この手のサーバーは他の目的に使用することがないため、ubuntsu-22にインストールする方が楽といえます。さらにいえば今回のプログラムは一旦組み込んでしまえは、アップデートがあっても、動作できなくことはなく、22から24へのライブUpgradeでも動作し続けます。
今回の記事が同じような悩みを持った人々への助けになればと願っています。