CATV対応のチューナーT230Cを4本使用してISDB-Cを受信しているが、一部チャンネルの受信レベル低かったり突然応答しなくなったりしていたので対策を行った。
まず一部チャンネルの受信レベルが低いことへの対策。信号強度が傾斜しているのが原因なのでイコライザーで補正できるCATVブースターを導入した。T230系以外でも効果がある。Amazonや楽天市場で5000円程度のTCF30S。安価なCATV用イコライザーを導入するだけで良かったかもしれない。導入した結果、少しケーブル動かすだけで受信レベルが下がる状態からどれだけケーブルを動かしても十分な受信レベルが確保できるようになった。
T230Cとして購入したT230C2を導入してから次のようなエラーが出て動作しなくなることが多発した。
dvb_usb_v2: usb_bulk_msg() failed=-110
赤外線の処理でエラーが発生しているという情報を見つけたので、とりあえずモジュールのオプションで赤外線を無効化してみた。赤外線は一切使っていないので問題ない。
$ sudo vi /etc/modprobe.d/dvb.conf options dvb_usb_dvbsky disable_rc=1 options dvb_usb_v2 disable_rc_polling=1 $ sudo reboot
しばらく様子を見てもエラーが発生することがなくなった。
カーネルモジュールを書き換えるのは面倒なので、簡単な対策で安定してよかった。
参考
takaaki 4月 30th, 2022
Posted In: ハードウェア
自宅でBSを受信できなくなったので、ISDB-Cで受信できないか検討してみた。J:COMが導入されている。
ISDB-CはDD Max M4で受信できるが、ISDB-C(DVB-C)だけなら安価な選択肢がある。
AliExpressのMYGICA Official StoreでT230を購入した。価格は送料無料で2000円強、チューナーが届くまで1~2週間かかった。
$ git clone https://github.com/OpenELEC/dvb-firmware.git $ sudo cp dvb-firmware/firmware/{dvb-demod-si2168-b40-01.fw,dvb-tuner-si2158-a20-01.fw} /lib/firmware/
$ lsusb | grep T230 Bus 002 Device 079: ID 0572:c688 Conexant Systems (Rockwell), Inc. Geniatech T230 DVB-T2 TV Stick $ ls /dev/dvb/ adapter0
挿すだけで認識している。
$ dvb-fe-tool -a0 Device Silicon Labs Si2168 (/dev/dvb/adapter0/frontend0) capabilities: CAN_2G_MODULATION CAN_FEC_1_2 CAN_FEC_2_3 CAN_FEC_3_4 CAN_FEC_5_6 CAN_FEC_7_8 CAN_FEC_AUTO CAN_GUARD_INTERVAL_AUTO CAN_HIERARCHY_AUTO CAN_INVERSION_AUTO CAN_MULTISTREAM CAN_MUTE_TS CAN_QAM_16 CAN_QAM_32 CAN_QAM_64 CAN_QAM_128 CAN_QAM_256 CAN_QAM_AUTO CAN_QPSK CAN_TRANSMISSION_MODE_AUTO DVB API Version 5.10, Current v5 delivery system: DVBC/ANNEX_A Supported delivery systems: DVBT DVBT2 [DVBC/ANNEX_A]
ISDBCもDVBC/ANNEX_Cもないので、DVBC/ANNEX_Aを指定。
$ dvb-fe-tool -a0 -d DVBC/ANNEX_A
channels.confの作成
$ sudo mkdir -p /usr/local/etc/dvbconf/ $ sudo vi /usr/local/etc/dvbconf/dvbv5_channels_t230_dvbc.conf
チューニング
$ dvbv5-zap -C JP -a 0 -c /usr/local/etc/dvbconf/dvbv5_channels_t230_dvbc.conf <channel>
チャンネルスキャン
$ dvbv5-scan -C JP -a 0 -N /usr/local/etc/dvbconf/dvbv5_channels_t230_dvbc.conf
チャンネルスキャンは文字化けする。BSだけでなく、区域外を含む地上波の放送やデコードできない放送(C-CAS)も含まれている。
ケーブルテレビのtypeはないので、SKYで設定した。
$ sudo mirakurun config tuners - name: T230 types: - SKY command: dvbv5-zap -C JP -a 0 -c /usr/local/etc/dvbconf/dvbv5_channels_t230_dvbc.conf -r -PdvbDevicePath: /dev/dvb/adapter0/dvr0 decoder: arib-b25-stream-test
チューニングできたチャンネルやチャンネルスキャンで見つかったチャンネルを登録する。
$ sudo mirakurun config channels
チューニングに時間がかかるチャンネルや見当たらないチャンネルがあるものの、とりあえずは受信できる。
追記:
地上波同様に1/7MHz(142857Hz)大きくなっている周波数のオフセットをなくすと、安定してチューニングできるようになった。
XXX142857 -> XXX000000
takaaki 12月 3rd, 2019
Posted In: ハードウェア
Chinachu (γ) on Ubuntu 16.04 LTS (2017夏)の焼き直しでLinuxでPX-W3U4を使う(2019年1月版)の続き。
USB2.0のチューナーしかない。CentOSはカーネルが古いので、PX-S1UDを使えない。
$ sudo apt install -y curl
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt install -y nodejs
$ sudo npm install pm2 -g
$ sudo npm install mirakurun -g --unsafe-perm --production
$ sudo apt install -y pkg-config
$ sudo npm install arib-b25-stream-test -g --unsafe
チューナーの設定
$ sudo mirakurun config tuners
チャンネルの設定
$ sudo mirakurun config channels
地上波はチャンネルスキャンで設定するので、BS/CSのチャンネルだけで十分。普通はserviceIdなしで問題ない。
設定を反映
$ sudo mirakurun restart
チャンネルスキャン
$ curl -X PUT "http://localhost:40772/api/config/channels/scan"
チャンネル設定を反映
$ sudo mirakurun restart
インストール
$ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
$ cd ~/chinachu/
$ ./chinachu installer
Chinachu Installer Menu:
[!] These are installed under all /home/user/chinachu/...
[!] Recommend the Auto installation.
1) Auto (full) 3) Node.js Environment 5) ffmpeg
2) submodule 4) Node.js Modules
what do you install? > 1
selected: Auto (full)
設定
$ tr -d \\r < config.sample.json > config.json
$ vi config.json
"uid": "user",
Chinachuを動作させるユーザーを設定
空の予約ルールを作成
$ echo [] > rules.json
動作チェック
$ ./chinachu service wui execute
^C
$ ./chinachu update
サービスを登録
$ sudo pm2 start processes.json
$ sudo pm2 save
takaaki 1月 28th, 2019
今回はカーネルの縛りがない非公式ドライバを使用する。現行で一番サポートが長いUbuntu 18.04 LTSに導入した。PX-W3PE4、PX-Q3U4、PX-Q3PE4でも手順は共通。
READMEの通りにやればできる。カーネルのアップデートに追従するためDKMSを使用した。
パッケージのインストール
$ sudo apt install -y git build-essential dkms
ドライバのダウンロード
$ mkdir -p ~/src/ $ cd ~/src/ $ git clone https://github.com/nns779/px4_drv.git
ファームウェアのインストール
$ cd ~/src/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/
ドライバを更新するときは一度削除する
$ sudo dkms remove px4_drv/0.1.0 --all $ sudo rm -rf /usr/src/px4_drv-0.1.0
ドライバのインストール
$ cd ~/src/px4_drv/ $ sudo cp -av ./ /usr/src/px4_drv-0.1.0 $ sudo dkms add px4_drv/0.1.0 $ sudo dkms install px4_drv/0.1.0 $ sudo modprobe px4_drv $ ls /dev/px4video* /dev/px4video0 /dev/px4video1 /dev/px4video2 /dev/px4video3
パッケージのインストール
$ sudo apt install -y cmake libpcsclite1 libpcsclite-dev pcscd pcsc-tools
libarib25をインストール
$ cd ~/src/ $ git clone https://github.com/stz2012/libarib25.git $ cd libarib25/ $ cmake . $ make $ sudo make install
カードリーダーの動作確認
$ pcsc_scan | grep B-CAS Japanese Chijou Digital B-CAS Card (pay TV) ^C
パッケージのインストール
$ sudo apt install -y autoconf automake
recpt1をインストール
$ cd ~/src/ $ git clone https://github.com/stz2012/recpt1.git $ cd recpt1/recpt1/ $ ./autogen.sh $ ./configure --enable-b25 $ make $ sudo make install
実際に録画してみる。0,1が衛星波、2,3が地上波。チューナーが増えた場合も衛星波2、地上波2の順で繰り返される。
$ cd ~ $ recpt1 --device /dev/px4video0 --lnb 15 --b25 --strip BS15_0 10 bs0.m2ts $ recpt1 --device /dev/px4video1 --lnb 15 --b25 --strip BS01_2 10 bs1.m2ts $ recpt1 --device /dev/px4video2 --b25 --strip 27 10 gr0.m2ts $ recpt1 --device /dev/px4video3 --b25 --strip 27 10 gr1.m2ts
Chinachu on Ubuntu 18.04 LTS (2019年1月版)
takaaki 1月 23rd, 2019
Chinachuのメモリ周りを調整してみたのでメモ。(検証中)
2019/1/28追記: メモリを4GBから16GBに増設したこともあって、録画が中断されることはなくなった。
TSFilterがバッファオーバーフローを起こして録画が中断されることがある。
サーバー設定のhighWaterMarkでバッファを設定できる。推奨されていないので程々に数倍程度。
デフォルトは25165824(24MB)
$ sudo mirakurun config server
#highWaterMark: 25165824 # integer (bytes) #highWaterMark: 67108864 # 64MB highWaterMark: 134217728 # 128MB #highWaterMark: 268435456 # 256MB
使い切って録画を出力できなくなる時もこれで解決する。Mirakurunのアップデートのたびに実行する必要がある。
追記: mirakurun@2.8.0以降は–unsafe-permをつけずにアップデートすれば再設定する必要はない。
メモリの搭載量と相談して程々に。highWaterMarkを増やすときは一緒に増やす。
デフォルトでは256(MB)(追記: mirakurun@2.8.0以降は512)
sudo pm2 start mirakurun-server --node-args --max_old_space_size=1024
takaaki 12月 31st, 2018
Posted In: ソフトウェア
PX-W3U4のBS再編への対応がバイナリの編集で面倒だなと思っていたら新しいLinux向けドライバが公開された。それぞれで今まで通り導入できるか再検証してみる。
今回公開されたドライバはCentOS 7、Ubuntu 18.04 LTS、Debian 9が対象、すべてx64。最新の安定版ディストリビューションが使えるのは有り難い。
やり方はPX-Q3U4, PX-W3PE4, PX-Q3PE4もおそらく共通。
非公式ドライバ向け記事
CentOSはEPRLのパッケージが必要なので追加する。
$ curl -LO http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm
$ mkdir -p ~/src/ $ cd ~/src/ $ sudo yum install -y unzip $ curl -LO http://plex-net.co.jp/plex/linux/CentOS7-1804_64bit_kernel3.10.0-862.zip $ unzip CentOS7-1804_64bit_kernel3.10.0-862.zip $ cd CentOS7-1804_64bit_kernel3.10.0-862/
$ mkdir -p ~/src/ $ cd ~/src/ $ wget http://plex-net.co.jp/plex/linux/Ubuntu18.04_64bit_kernel4.15.0-23.zip $ unzip Ubuntu18.04_64bit_kernel4.15.0-23.zip $ cd Ubuntu18.04_64bit_kernel4.15.0-23/
$ mkdir -p ~/src/ $ cd ~/src/ $ sudo apt install -y unzip $ wget http://plex-net.co.jp/plex/linux/Debian9.4_64bit_kernel4.9.0-6.zip $ unzip Debian9.4_64bit_kernel4.9.0-6.zip $ cd Debian9.4_64bit_kernel4.9.0-6/
ドライバ周りの操作を自動化するためにDKMSを使用する。これでカーネルのアップデートがあった場合も自動的に適応できる。
$ sudo yum install -y dkms kernel-headers kernel-devel
$ sudo apt install -y dkms
モジュールをコピーするだけの設定を作る。
$ sudo mkdir -p /usr/src/px4-1806/ $ sudo cp -v *.ko /usr/src/px4-1806/ $ sudo vi /usr/src/px4-1806/dkms.conf
$ sudo dkms install -m px4 -v 1806
アップデートに備えてモジュールを強制ロードできるようにする(効果は未検証)。チューナーの接続時にmodprobeを–forceオプションを付きで実行させる。デバイスファイルのパーミッションも設定する。
$ sudo vi /etc/udev/rules.d/99-px4.rules ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0511", ATTR{product}=="*[QW]3*4", RUN+="/sbin/modprobe -f usb-px4" KERNEL=="px4-DTV*", GROUP="video", MODE="0666" $ sudo reboot $ ls /dev/px4-DTV* /dev/px4-DTV0 /dev/px4-DTV1 /dev/px4-DTV2 /dev/px4-DTV3
内蔵のカードリーダーは使えないので別途用意する。CentOSは/usr/local/libへのパスを通す。
$ cd ~/src/ $ sudo yum install -y git cmake gcc-c++ pcsc-lite pcsc-lite-devel pcsc-tools $ git clone https://github.com/stz2012/libarib25.git $ cd libarib25/ $ cmake . $ make $ sudo make install $ sudo sh -c "echo /usr/local/lib >> /etc/ld.so.conf.d/libc.conf" $ sudo ldconfig
$ cd ~/src/ $ sudo apt install -y git build-essential cmake libpcsclite1 libpcsclite-dev pcscd pcsc-tools $ git clone https://github.com/stz2012/libarib25.git $ cd libarib25/ $ cmake . $ make $ sudo make install
$ pcsc_scan | grep B-CAS Japanese Chijou Digital B-CAS Card (pay TV) ^C
ここで何も出ない時は再起動するとうまくいく場合がある。
CentOS 6のドライバに付属しているrecpt1を使う。
$ cd ~/src/ $ curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip $ unzip Linux_Driver.zip
CentOS 6のドライバに付属しているrecpt1を使う。
$ cd ~/src/ $ wget http://plex-net.co.jp/download/linux/Linux_Driver.zip $ unzip Linux_Driver.zip
B25を有効にするためリビルド。通常のrecpt1と区別するためリネームした。今回もchecksignalは動作しない。
–helpで表示されるチャンネルを修正するにはrecpt1core.cの286行目以降を書き換える。
$ cd ~/src/Linux_Driver/MyRecpt1/MyRecpt1/recpt1/ $ make clean $ vi recpt1core.c
$ sh configure --enable-b25 $ make $ sudo install -m 755 recpt1 /usr/local/bin/recpx4 $ sudo install -m 755 recpt1ctl /usr/local/bin/recpx4ctl
実際に録画してみる。0,1が衛星波、2,3が地上波。チューナーが増えた場合も衛星波2、地上波2の順で繰り返される。
$ cd ~ $ recpx4 --device /dev/px4-DTV0 --lnb 15 --b25 --strip BS15_0 10 bs0.m2ts $ recpx4 --device /dev/px4-DTV1 --lnb 15 --b25 --strip BS01_2 10 bs1.m2ts $ recpx4 --device /dev/px4-DTV2 --b25 --strip 27 10 gr0.m2ts $ recpx4 --device /dev/px4-DTV3 --b25 --strip 27 10 gr1.m2ts
takaaki 6月 29th, 2018
CentOS 7、Ubuntu 16.04 LTS、Debian 8でPX-W3U4の設定をしたみたのでまとめる。
PX-Q3U4, PX-W3PE4, PX-Q3PE4でも同じ手順でセットアップできる。
追記: 4月、5月のBS周波数再編の影響で一部チャンネルが受信できなくなっている。(最新版ドライバで修正済み)
最新版ドライバ向け記事
CentOSはEPRLのパッケージが必要なので追加する。
$ curl -LO http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm
配布されているモジュールに合わせたカーネルをインストールする。カーネルのアップデートはできない。
$ sudo apt-get install linux-image-4.13.0-19-generic linux-headers-4.13.0-19-generic $ sudo reboot $ uname -r 4.13.0-19-generic
モジュール書き換えることでHWEカーネルでも使用できる。
少し手間はかかるが、Ubuntu 18.04がリリースされるまでは対応したカーネルのアップデートがある。
$ sudo apt-get install linux-generic-hwe-16.04 $ sudo reboot $ uname -r 4.13.0-26-generic
$ mkdir -p ~/src/ $ cd ~/src/ $ sudo yum install -y unzip $ curl -LO http://plex-net.co.jp/plex/linux/CentOS7-1708_64bit_kernel3.10.0-693.zip $ unzip CentOS7-1708_64bit_kernel3.10.0-693.zip $ cd CentOS7-1708_64bit_kernel3.10.0-693/
$ mkdir -p ~/src/ $ cd ~/src/ $ wget http://plex-net.co.jp/plex/linux/Ubuntu17.10_64bit_Kernel4.13.0-19.zip $ unzip Ubuntu17.10_64bit_Kernel4.13.0-19.zip $ cd Ubuntu17.10_64bit_Kernel4.13.0-19/
$ mkdir -p ~/src/ $ cd ~/src/ $ wget http://plex-net.co.jp/plex/linux/Debian8.0.0_64bit_kernel3.16.0-4.zip $ unzip Debian8.0.0_64bit_kernel3.16.0-4.zip $ cd Debian8.0.0_64bit_kernel3.16.0-4/
ドライバ周りの操作を自動化するためにDKMSを使用する。これでカーネルのアップデートがあった場合も自動的に適応できる。
$ sudo yum install -y dkms kernel-headers kernel-devel
$ sudo apt-get install -y dkms
モジュールをコピーするだけの設定を作る。Ubuntu+HWEカーネル以外は同じ。
$ sudo mkdir -p /usr/src/px4-1712/ $ sudo cp -v *.ko /usr/src/px4-1712/ $ sudo vi /usr/src/px4-1712/dkms.conf
$ sudo dkms install -m px4 -v 1712
UbuntuとHWEカーネルを使う場合はモジュールのvermagicを書き換える必要がある。
$ sudo mkdir -p /usr/src/px4-1712/src/ $ sudo cp -v *.ko /usr/src/px4-1712/src/ $ sudo vi /usr/src/px4-1712/dkms.conf
$ sudo dkms install -m px4 -v 1712
アップデートに備えてモジュールを強制ロードできるようにする。チューナーの接続時にmodprobeを–forceオプションを付きで実行させる。デバイスファイルのパーミッションも設定する。
$ sudo vi /etc/udev/rules.d/99-px4.rules ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0511", ATTR{product}=="*[QW]3*4", RUN+="/sbin/modprobe -f usb-px4" KERNEL=="px4-DTV*", GROUP="video", MODE="0666" $ sudo reboot $ ls /dev/px4-DTV* /dev/px4-DTV0 /dev/px4-DTV1 /dev/px4-DTV2 /dev/px4-DTV3
Ubuntuの場合は強制ロードは必要ないので、パーミッションだけ設定する。
$ sudo vi /etc/udev/rules.d/99-px4.rules KERNEL=="px4-DTV*", GROUP="video", MODE="0666" $ sudo reboot $ ls /dev/px4-DTV* /dev/px4-DTV0 /dev/px4-DTV1 /dev/px4-DTV2 /dev/px4-DTV3
内蔵のカードリーダーは使えないので別途用意する。CentOSは/usr/local/libへのパスを通す。
$ cd ~/src/ $ sudo yum install -y git cmake gcc-c++ pcsc-lite pcsc-lite-devel pcsc-tools $ git clone https://github.com/stz2012/libarib25.git $ cd libarib25/ $ cmake . $ make $ sudo make install $ sudo sh -c "echo /usr/local/lib >> /etc/ld.so.conf.d/libc.conf" $ sudo ldconfig
$ cd ~/src/ $ sudo apt-get install -y git build-essential cmake libpcsclite1 libpcsclite-dev pcscd pcsc-tools $ git clone https://github.com/stz2012/libarib25.git $ cd libarib25/ $ cmake . $ make $ sudo make install
$ pcsc_scan | grep B-CAS Japanese Chijou Digital B-CAS Card (pay TV) ^C
CentOS 6のドライバに付属しているrecpt1を使う。B25を有効にするためリビルド。通常のrecpt1と区別するためリネームした。checksignalはうまく動作しない。
$ cd ~/src/ $ curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip $ unzip Linux_Driver.zip $ cd Linux_Driver/MyRecpt1/MyRecpt1/recpt1/ $ sh configure --enable-b25 $ make $ sudo install -m 755 recpt1 /usr/local/bin/recpx4 $ sudo install -m 755 recpt1ctl /usr/local/bin/recpx4ctl
実際に録画してみる。0,1が衛星波、2,3が地上波。チューナーが増えた場合も衛星波2、地上波2の順で繰り返される。
$ cd ~ $ recpx4 --device /dev/px4-DTV0 --lnb 15 --b25 --strip BS15_0 10 bs0.m2ts $ recpx4 --device /dev/px4-DTV1 --lnb 15 --b25 --strip BS15_0 10 bs1.m2ts $ recpx4 --device /dev/px4-DTV2 --b25 --strip 27 10 gr0.m2ts $ recpx4 --device /dev/px4-DTV3 --b25 --strip 27 10 gr1.m2ts
takaaki 1月 29th, 2018
Posted In: ハードウェア
CentOS 6だけに対応していたときの覚書。今は他のディストリビューションにも対応しているので古い情報。
追記: 新しい情報はこちら
unzipのインストール
# yum install unzip -y
ドライバをダウンロード
# curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip
ドライバモジュールをロード
# unzip Linux_Driver.zip # cd Linux_Driver/Linux_Driver/ # insmod tty_Virtual.ko # insmod usb-px4.ko
認識されているか確認
# ls /dev/px4-DTV? /dev/px4-DTV0 /dev/px4-DTV1 /dev/px4-DTV2 /dev/px4-DTV3
再起動すると元に戻るので自動的にロードさせる
ドライバをコピー
# cp -v tty_Virtual.ko usb-px4.ko /usr/local/lib64/ `tty_Virtual.ko' -> `/usr/local/lib/tty_Virtual.ko' `usb-px4.ko' -> `/usr/local/lib/usb-px4.ko'
設定を追加
# vi /etc/sysconfig/modules/usb-px4.modules
#!/bin/sh /sbin/insmod /usr/local/lib64/tty_Virtual.ko /sbin/insmod /usr/local/lib64/usb-px4.ko
実行権限を追加
# chmod +x /etc/sysconfig/modules/usb-px4.modules
recpt1をインストール
# cd ../MyRecpt1/MyRecpt1/recpt1 # install -m 755 recpt1 /usr/local/bin/recpx4 # install -m 755 recpt1ctl /usr/local/bin/recpx4ctl
ビルドは必要ない。PT1/2/3用とややこしいのでrecpx4にリネームしておく
内蔵カードリーダーは使えないのでカードリーダーを別途用意する。
NodeJSをインストール
# curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - # yum install -y nodejs
arib-b25-stream-testをセットアップ(EPELの導入が必要)
# curl -LO http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -ivh epel-release-6-8.noarch.rpm # yum install gcc-c++ pcsc-lite pcsc-lite-devel pcsc-tools # npm install arib-b25-stream-test -g --unsafe
そのままではサービスがうまく起動しないので再起動する
# reboot
カードリーダーの動作確認
$ pcsc_scan | grep B-CAS Japanese Chijou Digital B-CAS Card (pay TV) ^C
PM2のインストール
# npm install pm2 -g # pm2 startup
Mirakurunのインストール
# npm install mirakurun -g --unsafe --production
Mirakurunのチューナー設定
# mirakurun config tuners
0,1が衛星波、2,3が地上波になる
Mirakurunのチャンネル設定
# mirakurun config channels
BS/CSのチャンネルだけ登録する
チャンネルスキャンで地上波のチャンネルを設定する
# mirakurun restart $ curl -X PUT "http://localhost:40772/api/config/channels/scan" # mirakurun restart
別のマシンからアクセスできるようにファイアウォールを設定する
# iptables -I INPUT -p tcp -m tcp --dport 40772 -j ACCEPT # service iptables save
takaaki 1月 7th, 2018
環境を構築し直したので、まとめてみる。今回はUbuntu 16.04 LTSを使った。気が向いたらDebian 9(Stretch)でやる予定。
PT3、PX-S1UD V2.0、PX-BCUD、KTV-FSMINIの4つをセットアップした。PT3はDVBドライバを使う。
カーネルにドライバが組み込まれているので、特に設定しなくても認識される。偶数がBS/CS、奇数が地上波と交互になる。
$ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3
アンテナに電源供給が必要な場合、chardev版ドライバを導入した方がいい。今回は取り上げない。
何もしなくても認識されるが、ファームウェアを入れないと動作しない。
$ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3 adapter4
ファームウェアをダウンロードして、インストールする。モジュールをロードし直すと有効になる。
$ wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip $ unzip PX-S1UD_driver_Ver.1.0.1.zip $ sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/ $ sudo modprobe -r smsusb $ sudo modprobe smsusb
adapterの番号を変更するには次のようにする。複数ある場合は「,」で区切る。認識できるadapterの数は8つまでなので、0~7の番号が指定できる(Linux 4.10以降は16個なので0~15)。
$ sudo modprobe -r smsdvb $ sudo modprobe smsdvb adapter_nr=4
他のDVBデバイスと区別するため、起動時に番号を固定する。他にDVBデバイスがない場合は必要ない。
$ sudo sh -c 'echo "options smsdvb adapter_nr=4" > /etc/modprobe.d/smsdvb.conf'
LinuxカーネルにPX-BCUDのドライバが組み込まれるのは4.7以上で、標準のカーネル(4.4)ではドライバが組み込まれていない。HWEカーネルを導入する。
$ uname -r 4.4.0-83-generic $ sudo apt install linux-generic-hwe-16.04 $ sudo reboot $ uname -r 4.8.0-58-generic $ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3 adapter4 adapter5
adapter番号の指定
$ sudo modprobe -r em28xx-dvb $ sudo modprobe em28xx-dvb adapter_nr=5 $ sudo sh -c 'echo "options em28xx-dvb adapter_nr=5" > /etc/modprobe.d/em28xx_dvb.conf'
KTV-FSMINIはドライバではなくコマンドを利用する。KTVWikiにあるrecfsusb2iをダウンロードして、ビルドする。
$ sudo apt install p7zip-full $ 7z x recfsusb2i-20160220.7z -orecfsusb2i $ cd recfsusb2i/src/ $ make $ sudo install recfsusb2i /usr/local/bin/
DVBデバイスをチューニングするにはdvbv5-zapが必要になる。dvbv5-zapはdvb-toolsに含まれている。
$ sudo apt install dvb-tools
チューニングに必要な設定をダウンロード
$ sudo apt install git $ cd /usr/local $ sudo git clone https://github.com/Chinachu/dvbconf-for-isdb.git
パッケージのインストール
$ sudo apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools
動作確認
$ pcsc_scan | grep B-CAS Japanese Chijou Digital B-CAS Card (pay TV) ^C
最後に現在も販売されているチューナーを挙げておく。
Chinachuの実行ユーザー作成(既存のユーザーにする場合は不要)
$ sudo adduser chinachu
Chinachuの実行ユーザーをsudoグループに所属させる
$ sudo adduser chinachu sudo
Chinachuの実行ユーザーに切り替え
$ sudo -i -u chinachu
Node.jsをインストール
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - $ sudo apt install -y nodejs $ sudo npm -g i npm@latest # NPMを更新する
PM2とMirakurunをインストール
$ sudo npm install pm2 -g $ sudo npm install mirakurun -g --unsafe --production
arib-b25-stream-testをインストール
$ sudo npm install arib-b25-stream-test -g --unsafe
Mirakurunの設定
$ sudo mirakurun config server
Mirakurunのチューナー設定
$ sudo mirakurun config tuners
設定ファイルやadapterの番号を間違えないように気を付けて編集する
Mirakurunのチャンネル設定
$ sudo mirakurun config channels
BS/CSのチャンネルだけ登録する
チャンネルスキャンで地上波のチャンネルを設定する
$ sudo mirakurun restart $ curl -X PUT "http://localhost:40772/api/config/channels/scan" $ sudo mirakurun restart
Chinachuのダウンロードとインストール
$ sudo apt install git $ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu $ cd ~/chinachu/ u$ ./chinachu installer Chinachu Installer Menu: [!] These are installed under all /home/chinachu/chinachu/... [!] Recommend the Auto installation. 1) Auto (full) 3) Node.js Environment 5) ffmpeg 2) submodule 4) Node.js Modules what do you install? > 1
設定
$ cp config.sample.json config.json $ vi config.json
実行ユーザーを指定する
"uid": "chinachu",
別のマシンからアクセスされるIPアドレスを指定する
"wuiOpenHost": "192.168.60.10",
空の予約ルールを作成
$ echo [] > rules.json
動作チェック
$ ./chinachu service wui execute ^C $ ./chinachu update
サービスを登録
$ sudo pm2 start processes.json $ sudo pm2 save
以上でインストールは完了。
ドライバはなるべく標準ドライバで対応して手間を省いた。チャンネル設定はBS/CSの設定が決まっていて、地上波はチャンネルスキャンできるので手間取らなかった。以前に比べて簡単になったものの、まだ手間がかかるように思う。
takaaki 7月 19th, 2017
Posted In: ハードウェア
速度が満足に出ない光回線でも、IPv6接続とv6プラスを使えば、十分な速度が出るという。ただ、この方式ではサーバー公開ができない。そのため導入を見送っていたが、PPPoEと同時に使用できるとわかり、導入に踏み切った。幸い、契約しているビッグローブ光は追加料金無しで利用できる。対応しているルーターを準備して、申込みを済ませるだけでいい。
ひかり電話ルーターはないので、市販のルーターを使う。プロバイダのページに書かれているv6プラス対応のルーターはBuffaloとIO DATAの機種。他にはASUSやヤマハのルーターが対応しているらしい。ASUS製は色々出来るが、安定性は疑問。IO DATAは安いものの、最近出たばかりで落ち着いていない。ヤマハは高いので除外。値段が手頃で対応機種の多いBuffaloにした。
BuffaloでもWXRで始まる機種だけが対応している。サポートの長い現行機を選ぶ。WXR-2533DHP2、WXR-1900SHP3、WXR-1750DHP2の3機種。無線の性能は重視しないのでWXR-1750DHP2でいいが、価格差があまりないのでデュアルコアのWXR-1900DHP3を購入した。
開通の案内にあるお客様IDが必要になる。v6プラスを申し込みたいところだが、申し込む必要があるのは「フレッツ光 IPv6接続」。先にフレッツ光 IPv6接続を申し込む必要がある。IPv6接続の設定完了メールが来たら、v6プラスが使えるようになる。v6プラスを申し込む。特に連絡もなく使えるようになるしばらくので、先にルーターの設置を進める。v6プラスに申し込めるようになるが、申し込むとv6プラスが無効になるので注意が必要。
本体裏側をスイッチをAUTOからMANUALに切り替える。切り替えないと自分でv6プラスを選べない上に、ルーターの配下に繋ぐとアクセスポイントとして動作してしまう。新しいルーターは既存のネットワークに追加して使った。既設のルーターのIPv6ブリッジの設定を有効にしておく。VDSLモデム(またはONU)-ルーター(PPPoE)-ルーター(v6プラス)-PCの構成にした。PPPoEとv6プラスのルーターは逆でも問題ない。
設置したらルーターの管理画面をブラウザで開く。ログインしたら詳細設定を選ぶ。Internetの設定で「v6プラス接続を使用する」にチェックを入れ設定。IPv6の設定はIPパススルーは危険なのでNDプロキシを選択。無線やLANなどの設定をする。ポート変換は設定しない。
設定が完了してしばらくすると前面のLEDが全て点灯する。これで新しく設置したWXR-1900DHP3に繋いだ端末はv6プラスで通信できるようになった。ただ、現状では既存のPPPoEルーター配下のネットワークとの通信はできない。今回は同じセグメントに置くとうまくいかなかったので分けた状態で設定した。ここからサーバーを通じて相互に通信できるようにする。
参考
takaaki 7月 18th, 2017
Posted In: ネットワーク