SKY TvServer on Linux

SKY(スカパー!プレミアム) on Mirakurun/Chinachu with TBS tunner (2026/6/1公開)

現在地上波、BS,CSに関しては、Plex社のカードを使用してMirakurun/Chinachu環境で録画サーバーを構築しています。しかし日本で見ることのできる、放送は他にスカーパー・プレミアムと4 K BS放送があります。これらについては、専用の一体型チューナーを購入し、録画したものをHDMIキャプチャーして、ファイルを編集保存しています。しかしこの方法は前記録画サーバーの作業に比べて、格段に手間がかかります。そこで今回はスカパー用のTBS機材(DVB-S/S2対応)の機材を購入し、現在のMirakurun/Chinachu環境に組み込むことに挑戦しました。

しかしWeb上にも資料やプログラムは少なくソースコードからの修正や作成を余儀なくされ、だいぶ長い時間をかけてしまいましたが、公開できる程度の完成を見たのでここに公開しました。


1. 関連する以前の投稿

以前の投稿 1. BonCasServer for mac2. TvServer on Raspberry Pi3. 2026 TvServer on Linuxがこのサーバー内にあります。


2. SKY(スカパー!プレミアム)の詳細

今回の検討の為にはスカパー!プレミアムの仕様など詳細を理解する必要があります。概要については WiKiスカパー!プレミアムサービス が役に立ちます。その他に私がWebで検索して得た 衛星放送の現状BS-IF_CS-IF_frequencyがあります。
要約すると下記のになります。

   1) スカパー!プレミアムサービスは128°にあるJCSAT3Aと、124°にあるJCSAT4Bを使って12-13GHzで放送されている。
   2) 電波の形式はGR、BS、CSの(isdb)とは異なり、DVB-S/S2であり、チャンネルにより水平・垂直と偏波面が異なる。
   3) 現在市販されているスカパー用アンテナは110°BS、CSと128・124のスカパーを受信できる様になっており、スカパー用に
      2つのLNBを実装しておりそれぞれのLNBは供給電圧とトーンにより、サテライトと水平・垂直の偏波面の切り替え
      ができる。この切り替え機構の為一つのLNB出力を分配して、2つのチューナーを動作させることはできない。
      LNBは二つ実装されているので、一つのアンテナで最大2つのチューナを独立して動作させることができる。
   4) このアンテナは12GHz帯の電波を受信するが、LNB内のLO(局発)11.2GHzと混合され1-1.5GHz帯のIF(中間周波数)に
      変換されてLNB出力される。衛星ごとに16のトランスポンダ(周波数)があるが、其々の1周波数で
      10局程度の放送が送信されている。休止中のチャンネルもあるが、通常100チャンネル以上の放送を同時送信してる。


3. 必要な機材

    

3.1 Linux Server

ハードウェア・機種は問いませんが、OSはubuntu-22(kernel 6.8)を推奨します。私の場合この環境にPlexカードを実装し、recpt1/Mirakurun/Chinachuを非Dockerでインストールした物を現在使用していますので、これにSKYを追加インストールして使用することとします。

3.2 アンテナ

現在スカパー!プレミアムを受信できるアンテナとして一般用に市販されている物は"4K・8K対応スカパー!マルチアンテナ"一択となります。このアンテナは110/124/128°の3波対応であり、110°BS/CSについては、右旋・左旋の両対応で、分配器で分割することにより、チューナーに何台でも接続可能です。

3.3 一体型チューナーとBーCASカード

これまで、スカパー!チューナーとしてPanasonic TZ-HR400Pを使っていましたが、新構成では不要になります。しかし購入時に付属していたスカパー!専用BーCASカードがスクランプル解除の為に必要です。また契約を変更した時にはこの機械で設定する必要があるので、廃毀することはできません。

3.4 DVB-S/S2チューナーカード又はBOX

本題のDVB-S/S2チューナーですが、TBS社のDVB-S/S2対応のカード、BOXが使えます。私の場合最安値のTBS 5930 Lite(写真右)をAmazonで購入しました。出荷はU.S.A.となっていましたが、製品はmade in Chinaの様です。

  

3.5 電圧変換器

DVB-S/S2では偏波面の切り替えにLNBへの供給電圧で行うことになっていますが、スカパーでは11V/15Vとなっていますが、一般的な海外仕様では13V/17Vの様です。この為そのまま接続すると垂直偏波のチャンネルが受信できない場合があります。そこでダイオードの電圧降下を利用して3本で全体的に2V下げます。100pFのコンデンサはなくとも良いと思いますが、アンテナ側からの信号の低下とチューナーからの40KHzの信号の減衰を抑える為に気休めとして入れてあります。

3.6 B-CASカードリーダー

スカパー!専用のBーCASカードを使用するためのカードリーダーが必要です。GR/BS/CS併用の場合はこの為のデコーダーとは別に専用デコーダーを設定しなければなりません。私の場合、GR/BS/CS用にArib25デコーダーをBonCasProxy化しているため、本体にリーダーは実装されていません。新規のリーダーを接続し、専用BーCASを差し込んでいます。


4. ドライバーとソフトフェアのインストール

以下の記事は、Ubuntu-22(kernel6.8)にすでにGR/BS/CS用recpt1でMirakurun/Chinachuが稼働中であることを前提に記載しています。(参考3. 2026 TvServer on Linux

4.1 ドライバーソフトのインストール

TBSドライバーはTBS Linux Driverを辿ってインストールする事ができます。このドライバーは多くのTBSカードをサポートしており、デバイスを接続状態にしておけば自動的に機種を判別してインストールしてくれます。

ところが、指定どおりのインストールを試みるとコンパイルエラーを起こしてインストールできない状態に陥った。エラーの場所はわかるので、それを修正しても改善されない。インストールプログラムを解析し、パッチプログラムに問題があることがわかり、修正してインストールする事が出来だ。わざとエラーを起こすようなパッチを仕掛けるというのは、バグというより罠である。どうしてもLinux上でプログラムを動作させたくないという事なのか。

下記の方法でインストール作業を行います。今後の作業はHomeディレクトリーの下にtbsディレクトリーを作って作業を行うことにしています。

$ mkdir ~/tbs
$ cd ~/tbs

$ git clone https://github.com/tbsdtv/media_build.git
$ git clone --depth=1 https://github.com/tbsdtv/linux_media.git -b latest ./media

---- 不具合の修正(kernel 6.8の場合)
$ cd media_build/backports
$ nano backports.txt
[6.8.1023] の下にある
add v6.8-ccs.patch の行を削除
---- 修正終了

$ sudo apt install patchutils
$ sudo apt install libproc-processtable-perl

$ cd ~/tbs/media_build
$ make dir DIR=../media
$ make allyesconfig
$ sed -i -r 's/(^CONFIG.*_RC.*=)./\1n/g' v4l/.config
$ sed -i -r 's/(^CONFIG.*_IR.*=)./\1n/g' v4l/.config
$ make -j4
$ sudo make install

$ cd ~/tbs
$ wget http://www.tbsdtv.com/download/document/linux/tbs-tuner-firmwares_v1.0.tar.bz2
$ sudo tar jxvf tbs-tuner-firmwares_v1.0.tar.bz2 -C /lib/firmware/

$ sudo reboot

$ sudo dmesg | grep frontend
$ ls -l /dev/dvb


reboot後、上記コマンドで適正なコメントが表示されれば、ドライバーソフトのインストールは成功です。うまくいかない場合はシステムのsecyre bootが無効になっているか確認、あるいはTBS5930のUSB・電源の抜き差し等を行い再インストールを試みて下さい。

4.2 チャンネルスキャンソフトのインストール

 

放送を録画・再生・番組表のGETには各チャンネルの周波数・service_id等の情報を記載した、チャンネルファイルを作成する必要があります。このソフトとしてw_scan2があります。

 

しかし、このプログラムも多くのバグを含み、日本語に対応していない為、文字化けを起こします。これもプログラムを修正しています。

下記の方法でインストール作業を行います。tbsディレクトリー内で作業を進めています。

$ cd ~/tbs
$ git clone https://github.com/stefantalpalaru/w_scan2

---- プログラムの追加・修正
$ cd ~/tbs/w_scan2
$ wget http://mun2.s308.xrea.com/assets/w_scan2/124E
$ wget http://mun2.s308.xrea.com/assets/w_scan2/128E
$ cd src
$ mv scan.c scan_org.c
$ mv char-coding.c char-coding_org.c
$ wget http://mun2.s308.xrea.com/assets/w_scan2/scan.c
$ wget http://mun2.s308.xrea.com/assets/w_scan2/char-coding.c
---- 修正終了

$ cd ~/tbs/w_scan2
$ ./configure

$ make
$ sudo make install

 


インストールが完了したら、2つの衛星用に2つのチャンネルファイルを作成します。

 

$ w_scan2 -f s -X zap -D 2c -D 2u -I 128E -l 11200,11200,20000 -c JP -C JP 1> channels1.conf
$ w_scan2 -f s -X zap -D 2c -D 2u -I 124E -l 11200,11200,10000 -c JP -C JP 1> channels2.conf

(行の最後に2> a.logや2> b.logを追加すると過程がstdoutではなくログファイルに出力されます。)

 


ここで上記でできたchannels1.confとchannels2.confを結合してchannels.confを作ります。(例:私の場合channels.confで、このファイルのchar codingはutf-8なので、web browserでは文字化けして見えるかもしれませんが、Linux上やUTF-8対応のEditorなどでは正常に見えるはずです。)

結合されたchannels.confを次のreceive programの為に/usr/local/etc/にコピーします。

4.3 Receive Programのインストール

このソフトとしてszap-s2jがあります。

しかし、このソフトも完全ではなく、Mirakurunとのインターフェイスもありません。recdvbのソースコードと組み合わせて、自開発のszap-skyを作成してみました。

以下の方法でインストールします。

$ cd ~/tbs

---- プログラムのダウンロード
$ wget http://mun2.s308.xrea.com/assets/szap-sky.zip
$ unzip szap-sky.zip
---- ダウンロードの完了


$ cd szap-sky
$ make
$ sudo make install

---- to test: セレクトショッピング(スクランブルなし)channelを10秒間a.tsに録画します。
$ szap-sky -l JCSAT3A セレクトショッピング 10 a.ts


ここまでうまくいけば上記で作成したa.tsをvlc media playerなどで再生できると思います。
channels1.confの128Eの分はJCSAT3Aで、channels2.confの124Eの分はJCSAT4Bとして指定します。

szap-skyにB-CASデコードの機能は組み込ませていませんが、Mirakurunでデコードを行う様に次の項で述べます。


5. Mirakurunの設定とB-CASデコード

5.1 Mirakurun設置ファイルの編集

Mirakurunに設定するには/usr/local/etc/mirakurun/の下にあるtuners.ymlとchannels.ymlを編集します。

$ cd /usr/local/etc/mirakurun

$ sudo nano tuners.yml

---- 以下を追加します。
- name: TBS5930 Lite
  types:
   - SKY
  command: szap-sky -l <satellite> <channel> - -
  decoder: arib-b1-stream-test
  isDisabled: false


$ sudo nano channels.yml

----以下を追加(例)satelliteとserviceIdはchannels.confを参照します。
- name: セレクトショッピング
  type: SKY
  channel: セレクトショッピング
  serviceId: 33296
  satellite: JCSAT3A
  isDisabled: false
- name: ディズニージュニア
  type: SKY
  channel: ディズニージュニア
  serviceId: 33440
  satellite: JCSAT4B
  isDisabled: false
- name: V☆パラダイス
  type: SKY
  channel: V☆パラダイス
  serviceId: 33403
  satellite: JCSAT3A
  isDisabled: false


上記channelの設定はあくまで例で自分の設定を行って下さい。ymlファイルを手動で入力する時は行先頭のスペースの数を間違えないように!間違えるとmirakurunが読み込めずにクラッシュします。

設定後MirakurunをRestartさせChinachuの番組表でSKYのチェックを入れれば、このページの始めにあるように番組表に追加されるはずです。番組表に関してはデコーダーを通さないのでスクランプルの有無、契約の有無に関わらず表示することが可能です。ただ100チャンネル以上もあるので、必要なもののみ設定するのが良いでしょう。

ちなみに蛇足ではありますが、この設定はMirakurunのConfig画面から行うことも可能です。

5.2 B-CASデコーダー

番組表にある番組をChinachuから録画するにはスクランブルのかかっていないチャンネルではこのまま可能ですが、契約された番組を録画するには上記設定Decoder:として設定したarib-b1-stream-testのプログラムファイルが必要です。

実はこのarib-b1-stream-testはGR/BS/CS用のrecpt1用にインストールしたaribb25のプログラムですでにインストールされています。ただ私の場合BonCasProxy様にb_cas_card.c改造しているので、本体に接続されたB-CASを読みにいくことはありません。

ここで今回はGR/BS/CSは脇に置いてもう一度aribb25を改造なしてインストールすることとします。

$ sudo apt install pcscd pcsc-tools libpcsclite-dev
$ pcsc_scan

$ cd ~/tbs
$ git clone https://github.com/tsukumijima/libaribb25
$ cd libaribb25
$ sudo apt install cmake

$ cd ~/tbs/libaribb25
$ cmake -B build
$ cd build
$ make
$ sudo make install


これで、カードリーダーにスカパー専用のB-CASカードを挿入すれば契約チャンネルのデコードが可能になり、Chinachuからの予約・録画が可能になります。


ただこの状態ではGR/BS/CS用のarib-b25-stream-testもこのB-CASカードを読みに行くためGR/BS/CSのデコードがうまく動作しません。私の場合~/plex/libaribb25/build/ディレクトリーにBonCasProxy用に改造したバイナリーファイルb25とarib-b25-streamtestが残っているので、これらを/usr/local/bin/に手動でコピーしています。これにより、GR/BS/CSとSKYのデコードがそれぞれ可能になります。

6. まだ試していない事


これまでの説明で初期の目的は達成できたので検討を終了しますが、環境によってはさらなる検討・修正が必要となるかもしれません。以下にあげますが、詳細は割愛させていただきます。

6.1 チューナーが複数の場合

ここでは単チャンネルのTBS5930 Liteを使用しましたが、DVB-S/S2対応の2チューナのカードなども発売されています。これらも使用可能ですが、szap-skyのオプション項目 -a -f -d (デフォルトで0)になっているところをMirakurunの2チューナー目では追加すれば良いと思います。szap-skyのREADME参照

6.2 GR/BS/CSにBonCasProxyを使用しない場合

ここでは、GR/BS/CSのデコードにBonCasProxyを使用しましたが、本体のB-CASを使用する場合はスカパー用のカードリーダーとは別にもう一台のカードリーダーを接続しなければなりません。カードリーダーの使い分けについてはaribb25のインストール方法について工夫が必要かもしれません。

6.3 recdvbとの併用

Plexのドングル型のチューナーPX-S1UDやPX-Q1UDなどではdvbにドライバーが/dev/dvb/adapternという形でインストールされる物があります。今回のドライバーと重複するので、ドライバーのインストールがうまくいかないかもしれません。RaspberyPiでちょっと試してみましたが、/devの別の場所にcharacter型でインストールされている様でssap-skyのさらなる変更が必要と思われます。ドライバーの組み込み順番を変える等他の方法も色々試してみるのも良いと思います。



7. 結論


今回の検討は、少ない資料の中で多くの困難を強いられました。何度も時間をかけ試行錯誤を繰り返しながらやっとのことでここまで来れたのが現状です。検討の過程でMirakurunやChinachuの素晴らしさを改めて知ることもできました。前人達の努力に感謝です。今回のプログラム開発で、前人のひとりになれたならと思うところです。




CGI Powered

MUN2 HOME PAGE

(c)mun2jp