CATV対応のチューナーT230Cを4本使用してISDB-Cを受信しているが、一部チャンネルの受信レベル低かったり突然応答しなくなったりしていたので対策を行った。

CATVブースターの導入

まず一部チャンネルの受信レベルが低いことへの対策。信号強度が傾斜しているのが原因なのでイコライザーで補正できるCATVブースターを導入した。T230系以外でも効果がある。Amazonや楽天市場で5000円程度のTCF30S。安価なCATV用イコライザーを導入するだけで良かったかもしれない。導入した結果、少しケーブル動かすだけで受信レベルが下がる状態からどれだけケーブルを動かしても十分な受信レベルが確保できるようになった。

T230C2の不調

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

しばらく様子を見てもエラーが発生することがなくなった。
カーネルモジュールを書き換えるのは面倒なので、簡単な対策で安定してよかった。
参考

[amazon_tags]


4月 30th, 2022

Posted In: ハードウェア

タグ: , ,

Leave a Comment

自宅でBSを受信できなくなったので、ISDB-Cで受信できないか検討してみた。J:COMが導入されている。
ISDB-CはDD Max M4で受信できるが、ISDB-C(DVB-C)だけなら安価な選択肢がある。
AliExpressのMYGICA Official StoreT230を購入した。価格は送料無料で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)も含まれている。

Mirakurunの設定

ケーブルテレビの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 -P 
  dvbDevicePath: /dev/dvb/adapter0/dvr0
  decoder: arib-b25-stream-test

チューニングできたチャンネルやチャンネルスキャンで見つかったチャンネルを登録する。

$ sudo mirakurun config channels

チューニングに時間がかかるチャンネルや見当たらないチャンネルがあるものの、とりあえずは受信できる。

追記:
地上波同様に1/7MHz(142857Hz)大きくなっている周波数のオフセットをなくすと、安定してチューニングできるようになった。
XXX142857 -> XXX000000

参考

[amazon_tags]


12月 3rd, 2019

Posted In: ハードウェア

タグ: , , ,

Leave a Comment

Chinachu (γ) on Ubuntu 16.04 LTS (2017夏)の焼き直しでLinuxでPX-W3U4を使う(2019年1月版)の続き。

現行のLinuxで使えるチューナー(国内販売)

USB2.0のチューナーしかない。CentOSはカーネルが古いので、PX-S1UDを使えない。

Node.jsのインストール

$ sudo apt install -y curl
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt install -y nodejs

Mirakurunのインストール

$ sudo npm install pm2 -g
$ sudo npm install mirakurun -g --unsafe-perm --production

arib-b25-stream-testのインストール

$ sudo apt install -y pkg-config
$ sudo npm install arib-b25-stream-test -g --unsafe

Mirakurunの設定

チューナーの設定

$ 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

Chinachuのインストール

インストール

$ 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? &gt; 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

[amazon_tags]


1月 28th, 2019

Posted In: ソフトウェア, ハードウェア

タグ: , , , , ,

Leave a Comment

今回はカーネルの縛りがない非公式ドライバを使用する。現行で一番サポートが長い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

recpt1を導入

パッケージのインストール

$ 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月版)

[amazon_tags]


1月 23rd, 2019

Posted In: ソフトウェア, ハードウェア

タグ: , , , ,

2 Comments

PX-W3U4のBS再編への対応がバイナリの編集で面倒だなと思っていたら新しいLinux向けドライバが公開された。それぞれで今まで通り導入できるか再検証してみる。
今回公開されたドライバはCentOS 7、Ubuntu 18.04 LTS、Debian 9が対象、すべてx64。最新の安定版ディストリビューションが使えるのは有り難い。
やり方はPX-Q3U4, PX-W3PE4, PX-Q3PE4もおそらく共通。
非公式ドライバ向け記事

EPELリポジトリを追加(CentOS)

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

ドライバのダウンロード(CentOS)

$ 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/

ドライバのダウンロード(Ubuntu)

$ 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/

ドライバのダウンロード(Debian)

$ 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をインストール(CentOS)

ドライバ周りの操作を自動化するためにDKMSを使用する。これでカーネルのアップデートがあった場合も自動的に適応できる。

$ sudo yum install -y dkms kernel-headers kernel-devel

DKMSをインストール(Ubuntu, Debian)

$ 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

udevのルールを作成

アップデートに備えてモジュールを強制ロードできるようにする(効果は未検証)。チューナーの接続時に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

libarib25を導入(CentOS)

内蔵のカードリーダーは使えないので別途用意する。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

libarib25を導入(Ubuntu, Debian)

$ 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のドライバをダウンロード(CentOS)

CentOS 6のドライバに付属しているrecpt1を使う。

$ cd ~/src/
$ curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip
$ unzip Linux_Driver.zip

CentOS 6のドライバをダウンロード(Ubuntu,Debian)

CentOS 6のドライバに付属しているrecpt1を使う。

$ cd ~/src/
$ wget http://plex-net.co.jp/download/linux/Linux_Driver.zip
$ unzip Linux_Driver.zip

recpt1を導入

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

[amazon_tags]


6月 29th, 2018

Posted In: ソフトウェア, ハードウェア

タグ: , , , , ,

One Comment

CentOS 7、Ubuntu 16.04 LTS、Debian 8でPX-W3U4の設定をしたみたのでまとめる。
PX-Q3U4, PX-W3PE4, PX-Q3PE4でも同じ手順でセットアップできる。
追記: 4月、5月のBS周波数再編の影響で一部チャンネルが受信できなくなっている。(最新版ドライバで修正済み)
最新版ドライバ向け記事

EPELリポジトリを追加(CentOS)

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

カーネルをアップデート(Ubuntu+Linux4.13.0-19)

配布されているモジュールに合わせたカーネルをインストールする。カーネルのアップデートはできない。

$ 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

カーネルをアップデート(Ubuntu+HWEカーネル)

モジュール書き換えることでHWEカーネルでも使用できる。
少し手間はかかるが、Ubuntu 18.04がリリースされるまでは対応したカーネルのアップデートがある。

$ sudo apt-get install linux-generic-hwe-16.04
$ sudo reboot
$ uname -r
4.13.0-26-generic

ドライバのダウンロード(CentOS)

$ 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/

ドライバのダウンロード(Ubuntu)

$ 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/

ドライバのダウンロード(Debian)

$ 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をインストール(CentOS)

ドライバ周りの操作を自動化するためにDKMSを使用する。これでカーネルのアップデートがあった場合も自動的に適応できる。

$ sudo yum install -y dkms kernel-headers kernel-devel

DKMSをインストール(Ubuntu, Debian)

$ sudo apt-get install -y dkms

ドライバをインストール(CentOS, Ubuntu+Linux4.13.0-19, Debian)

モジュールをコピーするだけの設定を作る。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カーネル)

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

udevのルールを作成(CentOS, Debian)

アップデートに備えてモジュールを強制ロードできるようにする。チューナーの接続時に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

udevのルールを作成(Ubuntu)

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

libarib25を導入(CentOS)

内蔵のカードリーダーは使えないので別途用意する。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

libarib25を導入(Ubuntu, Debian)

$ 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

recpt1を導入

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

[amazon_tags]


1月 29th, 2018

Posted In: ハードウェア

タグ: , , , , , , ,

7 Comments

CentOS 6だけに対応していたときの覚書。今は他のディストリビューションにも対応しているので古い情報。
追記: 新しい情報はこちら

PX-W3U4のセットアップ

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にリネームしておく

Mirakurunを導入

内蔵カードリーダーは使えないのでカードリーダーを別途用意する。

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

[amazon_tags]


1月 7th, 2018

Posted In: ソフトウェア, ハードウェア

タグ: , , , , ,

Leave a Comment

環境を構築し直したので、まとめてみる。今回はUbuntu 16.04 LTSを使った。気が向いたらDebian 9(Stretch)でやる予定。

チューナーのセットアップ

PT3、PX-S1UD V2.0、PX-BCUD、KTV-FSMINIの4つをセットアップした。PT3はDVBドライバを使う。

PT3/PT2/PT1

カーネルにドライバが組み込まれているので、特に設定しなくても認識される。偶数がBS/CS、奇数が地上波と交互になる。

$ ls /dev/dvb/
adapter0  adapter1  adapter2  adapter3

アンテナに電源供給が必要な場合、chardev版ドライバを導入した方がいい。今回は取り上げない。

PX-S1UD (V2.0)

何もしなくても認識されるが、ファームウェアを入れないと動作しない。

$ 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'

PX-BCUD

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(KTV-FSUSB2/V3)

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-toolsをインストール

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

ICカードリーダーをセットアップ

パッケージのインストール

$ sudo apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools

動作確認

$ pcsc_scan | grep B-CAS
        Japanese Chijou Digital B-CAS Card (pay TV)
^C

現行のLinuxで使えるチューナー

最後に現在も販売されているチューナーを挙げておく。

Chinachuのセットアップ

実行ユーザーの作成

Chinachuの実行ユーザー作成(既存のユーザーにする場合は不要)

$ sudo adduser chinachu

Chinachuの実行ユーザーをsudoグループに所属させる

$ sudo adduser chinachu sudo

Chinachuの実行ユーザーに切り替え

$ sudo -i -u chinachu

Mirakurunのインストール

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のインストール

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の設定が決まっていて、地上波はチャンネルスキャンできるので手間取らなかった。以前に比べて簡単になったものの、まだ手間がかかるように思う。

参考

[amazon_tags]


7月 19th, 2017

Posted In: ハードウェア

タグ: , , , , , , ,

2 Comments

JKCommentGetterを使えば、ニコニコ実況のコメントを簡単に取得できる。これをLinuxで使ってみる。

JKCommentGetterの導入

ソースを取得する

git clone https://github.com/ACUVE/JKCommentGetter.git

実行してみる

$ cd JKCommentGetter
$ ruby JKCommentGetter.rb
JKCommentGetter.rb.orig:82: invalid multibyte char (US-ASCII)
JKCommentGetter.rb.orig:81: syntax error, unexpected $end, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END

エラーが出て動かない

文字コードを指定すると動く

$ ruby -Ku JKCommentGetter.rb
** 引数が足りません **

Usage: ruby JKCommentGetter.rb チャンネル 取得時間範囲のはじめ 取得時間範囲のおわり [option...]
Options:
  -m sec  --margin sec                取得時間範囲の前後を指定秒だけ広げます
  -s sec  --start-margin sec          取得時間範囲のはじめを指定秒だけ早くします
  -e sec  --end-margin sec            取得時間範囲のおわりを指定秒だけ遅くします
  -f [filename]  --file [filename]    出力するファイル名を指定します
  -x  --xml                           出力フォーマットをXMLにします
  -j  --jkl                           出力フォーマットをJikkyoRec互換っぽくします
  -t  --time-header                   NicoJKフォーマットの一番初めに時刻ヘッダを追加します
  -o comment  --comment commment      ファイルの頭の辺りに指定したコメントを追加します
  -b path  --base-path path           ファイル出力のフォルダを指定します
  -d  --directory                     チャンネルと同じ名前のフォルダの中にファイルを出力します
  -c  --check-file                    取得時間範囲がよく似たファイルが存在する場合ダウンロードしなくなります
  -a sec  --check-range sec           よく似たファイルと判定する時間範囲を設定します
  -r num  --retry num                 取得エラーが発生した際に再取得へ行く回数
  -i cookie  --cookie cookie          Cookieとして利用する文字列を与えます
  -p  --perfect                       完全なコメントが取得できたと保証できない時にエラーで落ちるようにします
  -w  --working-directory             カレントディレクトリをスクリプトがあるフォルダにします
  -h  --help                          このヘルプを表示し終了します

    詳細は README.md をご覧ください

スクリプトを直接実行するにはJKCommentGetter.rbとJKComment.rbの先頭に次の二行を追加する。

#! ruby -EUTF-8
# -*- mode:ruby; coding:utf-8 -*-
$ vi JKComment.rb
$ vi JKCommentGetter.rb #追記
$ chmod +x JKComment.rb JKCommentGetter.rb
$ ./JKCommentGetter.rb

そのままではログインにCookieが必要なので、自動取得できるようにする。JKCommentGetter.rbのgetCookieを書き換えてcurlでCookieを取得させる。

diff

emailとpasswordはそれぞれ書き換える。

次のように使う

$ ruby -Ku JKCommentGetter.rb jk1 `date -d "4:00" +%s` 30m -x -f output.xml

この場合、NHK総合の4時から30分後までのログをXML形式でoutput.xmlに保存される。日付はUNIX時間かYYYYMMDDhhmmss形式で指定する。終わりの時間は経過時間を数字にs,m,h,dなどの単位をつけても指定できる。詳しい使い方は配布元に書いてある。

簡易スクリプト

対話形式でチャンネルと時間を指定するシェルスクリプトを書いてみた。

$ sh jkget.sh -x -f /path/to/output.xml
jk1   NHK 総合    jk101  NHKBS-1            jk231  放送大学
jk2   Eテレ       jk103  NHK BSプレミアム   jk234  BSグリーンチャンネル
jk4   日本テレビ  jk141  BS 日テレ          jk236  BSアニマックス
jk5   テレビ朝日  jk151  BS 朝日            jk238  FOX bs 238
jk6   TBS テレビ  jk161  BS-TBS             jk241  BSスカパー!
jk7   テレビ東京  jk171  BSジャパン         jk242  J Sports 1
jk8   フジテレビ  jk181  BSフジ             jk243  J Sports 2
jk9   TOKYO MX    jk191  WOWOWプライム      jk244  J Sports 3
jk10  テレ玉      jk192  WOWOWライブ        jk245  J Sports 4
jk11  tvk         jk193  WOWOWシネマ        jk251  BS釣りビジョン
jk12  チバテレビ  jk200  スターチャンネル1  jk252  IMAGICA BS
                  jk201  スターチャンネル2  jk255  BS日本映画専門チャンネル
                  jk202  スターチャンネル3  jk256  ディズニー・チャンネル
                  jk211  BSイレブン         jk258  Dlife
                  jk222  TwellV             jk910  SOLiVE24
Channel>1
jk1
Date>4:00
2015年  2月 22日 日曜日 04:00:00 JST
Length(min)>30
/path/to/JKCommentGetter.rb jk1 1424545200 30 -x -f /path/to/output.xml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    57    0     0  100    57      0     49  0:00:01  0:00:01 --:--:--    51
log: jk1 を 2015-02-22 04:00:00 +0900 から 2015-02-22 04:30:00 +0900まで取得します
log: スレッド1424545201から読み込み開始: start_time=2015-02-22 04:00:01 +0900, end_time=2015-02-22 16:20:03 +0900
log: スレッド1424545201から629コメント読み込んだ: 2015-02-22 04:00:09 +0900
log: スレッド1424545201から読み取り完了: size=629
log: スレッド1424458801から読み込み開始: start_time=2015-02-21 04:00:01 +0900, end_time=2015-02-22 04:00:15 +0900
log: スレッド1424458801から1000コメント読み込んだ: 2015-02-22 01:06:28 +0900
log: スレッド1424458801から読み取り完了: size=6
log: /path/to/output.xml へ出力します
OFFSET: 0

OFFSETには開始時間を再生時間0秒に合わせるための秒数が表示される。こめたんぷれいやのシフトなどに指定する。

ソース

再生ソフト(Windows)

Linuxのソフトは不明。Androidにはエンコードが必要だがNicoLがある。

TVTestTvTPlayプラグインとNicoJKプラグインを利用する。
導入に手間はかかるがTSファイルの時間に合わせてログが再生される。この場合はrecpt1などにsidオプションを指定するとTOTが削られ使用できなくなる。TSファイル専用。
こめたんぷれいや
コメント設定でシフトを設定する必要はあるが、TSファイル以外の動画にも対応する。TSファイルの再生にはLavFiltersが必要。

[amazon_tags]


2月 22nd, 2015

Posted In: ソフトウェア

タグ: , , , ,

Leave a Comment

先月にDVB版PT3ドライバがLinuxカーネルに取り込まれた。PX-S1UDも今年取り込まれている。PX-S1UDのドライバは3.15以降で、PT3のDVB版ドライバは3.18以降で使えるようになる。

両方のドライバをDebianで使えるようにしてみた。

DebianでPX-S1UDを使う

PX-S1UDには3.15以降のカーネルで対応するので、Debianのカーネルをアップグレードすればいい。

PX-S1UDの接続確認

$ lsusb | grep VidzMedia
Bus 001 Device 002: ID 3275:0080 VidzMedia Pte Ltd

バックポートリポジトリの追加

$ sudo sh -c "echo 'deb http://http.debian.net/debian wheezy-backports main' > /etc/apt/sources.list.d/backports.list"
$ sudo aptitude update

カーネルのインストール

$ sudo aptitude -t wheezy-backports install linux-image-3.16-0.bpo.2-amd64

unzipのインストール

$ sudo aptitude install unzip

Windows用ドライバからファームウェアを導入

$ cd /usr/local/src/
$ 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 reboot

ドライバを確認

$ lsmod | grep smsusb
smsusb                 17036  0
smsmdtv                47106  2 smsdvb,smsusb
usbcore               199395  5 uhci_hcd,ehci_hcd,ehci_pci,smsusb,usbhid
$ ls /dev/dvb/
adapter0

DebianでDVB版PT3ドライバを使う

Linux3.18で対応するが、Wheezyではまだ使えないのでV4L-DVBドライバをインストールする。ビルドには3.8以降のカーネルが必要になる。カーネルのアップグレードまではPX-S1UDと共通。

PT3の確認

$ lspci | grep Multimedia
03:00.0 Multimedia controller: Altera Corporation Device 4c15 (rev 01)

バックポートリポジトリの追加

$ sudo sh -c "echo 'deb http://http.debian.net/debian wheezy-backports main' > /etc/apt/sources.list.d/backports.list"
$ sudo aptitude update

カーネルのインストール

$ sudo aptitude -t wheezy-backports install linux-image-3.16-0.bpo.2-amd64

再起動して確認

$ sudo reboot
$ uname -r
3.16-0.bpo.2-amd64

必要なパッケージのインストール

$ sudo aptitude install git build-essential patchutils libproc-processtable-perl linux-headers-3.16-0.bpo.2-amd64

ビルド

$ cd /usr/local/src/
$ git clone --depth=1 git://linuxtv.org/media_build.git
$ cd media_build
$ ./build

インストール

$ sudo make install

ドライバモジュールのロード

$ sudo modprobe earth-pt3

ドライバの確認

$ lsmod |grep earth_pt3
earth_pt3              21751  0
dvb_core              110088  1 earth_pt3
i2c_core               50108  4 drm,i2c_piix4,drm_kms_helper,earth_pt3
$ ls /dev/dvb/
adapter0  adapter1  adapter2  adapter3

chardev版PT3ドライバを使い続ける際の注意点

Linux3.18以降を使う場合、DVB版ドライバをブラックリストに追加しておかないとDVB版ドライバが使われてしまう。PT3はearth-pt1ではなくearth-pt3を/etc/modprobe.d/blacklist.confに追加する。PT1/2を使っていない場合、earth-pt1を追加しても何の効果もない。

$ sudo sh -c "echo 'blacklist earth-pt3' >> /etc/modprobe.d/blacklist.conf

[amazon_tags]


10月 26th, 2014

Posted In: ハードウェア

タグ: , , , , , , ,

2 Comments

次ページへ »