見出し画像

UbuntuとPX-Q3PE4で録画リグ構築。(MirakurunxEPGStation+SoftCas)

注意

録画データの著作権などは自己責任で。
SoftCasも闇なので自己責任ですよ。
*リクエストに応えて掲載。未検証です。

用意するもの

1. 適当なPC
2. PX-Q3PE4
3. その他 (Wi-Fiドングル、USBメモリ、アンテナケーブル、分配器、電源供給器、BS/CS アンテナとか...。)

Asia、Tokyoに時間をセット

# rootで。
$ timedatectl set-timezone Asia/Tokyo

リポジトリを追加

# 初期状態を確認
$ cat /etc/apt/sources.list | sed -e "/^#/d" -e "/^$/d"

# ミラーを追加
$ sudo sed -i.bak -e 's%http://[^ ]\+%mirror://mirrors.ubuntu.com/mirrors.txt%g' /etc/apt/sources.list

# Webminのリポジトリを追加
$ add-apt-repository 'deb http://download.webmin.com/download/repository sarge contrib'

# 実行結果を確認
$ cat /etc/apt/sources.list | sed -e "/^#/d" -e "/^$/d"

# Webminのキーを追加
$ wget -qO - http://www.webmin.com/jcameron-key.asc | sudo apt-key add -
$ sudo apt update ; sudo apt -y upgrade

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

# 必要に応じて追加してください。
$ sudo apt -y install pcscd libpcsclite-dev libccid pcsc-tools python2.7 mercurial sqlite3 ffmpeg build-essential unzip pkg-config automake cmake g++ autoconf git dkms cpufrequtils cpufreqd webmin nodejs npm hexedit

CPU倍率固定

# Performanceにセット
$ wget -O /etc/init.d/cpufrequtils https://pastebin.com/raw/fibpAcav

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

# チューナードライバのダウンロード
$ 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/

# チューナードライバのインストール
$ cd ~/src/px4_drv/
$ sudo cp -av ./ /usr/src/px4_drv-0.2.1
$ sudo dkms add px4_drv/0.2.1
$ sudo dkms install px4_drv/0.2.1
$ sudo modprobe px4_drv
$ ls /dev/px4video*
/dev/px4video0
/dev/px4video1
/dev/px4video2
/dev/px4video3
/dev/px4video4
/dev/px4video5
/dev/px4video6
/dev/px4video7

# 再起動
$ sudo reboot now

# 再起動前にusbメモリとかチューナーを挿しておく。

正常に動作しているかを確認

$ dmesg
$ lspci
$ lsmod | grep px4
$ ls -al /dev/px4*
$ cpufreq-info -o

# 何らかのエラーが発生してないか確認。

SoftCas、arib25、recpt1の導入

# anonfile.com/27i1Of6an6からDLしてfile.ioのリンク作ってwgetする。
$ wget file.ioのURL
$ unzip 生成されたファイル名
$ cd softcas

# Winscard.cppとMakefileを差し替え
$ wget -O winscard.cpp https://pastebin.com/raw/5144Ah9g
$ wget -O Makefile https://pastebin.com/raw/FQdSixkB

# sedコマンドで置き換える
$ sed -i "/LONG SCardGetStatusChange/s/LPSCARD_READERSTATE_A/LPSCARD_READERSTATE/g" winscard.cpp
$ sed -i "s/SCARD_IO_REQUEST g_rgSCardT1Pci;/const SCARD_IO_REQUEST g_rgSCardT1Pci = { SCARD_PROTOCOL_T1, sizeof(SCARD_IO_REQUEST) };/g" winscard.cpp

$ make

# makeが通ったらコピー。(Ubuntu環境以外だと別のディレクトリらしい。)
$ sudo cp libpcsclite.so.1.0.0 /usr/lib/x86_64-linux-gnu/libpcsckai.so

$ cd /usr/lib/x86_64-linux-gnu/pkgconfig
$ sudo cp libpcsclite.pc libpcsckai.pc
$ sudo nano libpcsckai.pc
 Libs: -L${libdir} -lpcscliteをLibs: -L${libdir} -lpcsckaiとする

# arib25とrecpt1の導入
$ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.tar.bz2
$ tar -xvjf c44e16dbb0e2.tar.bz2
$ cd pt1-c44e16dbb0e2/arib25/
$ nano src/Makefile
 PCSC_CFLAGS ?= `pkg-config libpcsclite –cflags`
 PCSC_LDLIBS ?= `pkg-config libpcsclite –libs`
 の「lite」を「kai」とし、保存する
$ make
$ sudo make install

# honeyplanet版です。
$ cd ~/src/
$ hg clone http://hg.honeyplanet.jp/pt1
$ cd pt1/recpt1/

# sedコマンドで置き換える
$ sed -i 's/pt1video/px4video/g' pt1_dev.h

$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install

# SoftCas更新
$ sudo hexedit /usr/lib/x86_64-linux-gnu/libpcsckai.so

# anonfile.com/4au9K99dnd (2019/06 Unlocked Key)
$ cd /usr/lib/x86_64-linux-gnu
$ wget -O libpcsckai.so file.ioのURL

Node.js、PM2、Mirakurunの導入

# Node.jsのバージョンを指定(2019/09 現在)
$ sudo npm install -g n
$ n 10.16.1

# PM2の導入
$ sudo npm install pm2 -g

# Mirakurunの導入
$ sudo npm install mirakurun -g --unsafe --production
$ sudo npm install rivarun -g

Mirakurunの設定

# チューナー、チャンネル設定
$ cd /usr/local/etc/mirakurun/
$ wget -O tuners.yml https://pastebin.com/raw/vdwgCh3c
$ wget -O channels.yml https://pastebin.com/raw/aG7nA87e

# Mirakurunの再起動
$ sudo mirakurun restart

ログ設定

# pm2-logrotateをインストール
$ sudo pm2 install pm2-logrotate

# 毎日ログを圧縮して一週間分保存
$ cat << 'EOT' | sudo tee /etc/logrotate.d/mirakurun
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
/{
daily
compress
rotate 7
missingok
notifempty
}
EOT

# Mirakurunの再起動
$ sudo mirakurun restart

EPGStationの導入

# EPGStationの導入
$ git clone https://github.com/l3tnun/EPGStation.git
$ cd EPGStation

# インストール(時間かかるよ)
$ sudo npm install --unsafe-perm=true --allow-root

# ビルド(時間かかるよ)
$ sudo npm run build

# SQLite3使用時の正規表現での検索の有効化
$ wget https://www.sqlite.org/2019/sqlite-amalgamation-3290000.zip
$ wget https://www.sqlite.org/2019/sqlite-src-3290000.zip
$ unzip sqlite-amalgamation-3290000.zip
$ unzip sqlite-src-3290000.zip

# regexp.cのコピー
$ cp sqlite-src-3290000/ext/misc/regexp.c sqlite-amalgamation-3290000

# ビルドしてファイルのコピー
$ cd sqlite-amalgamation-3290000
$ gcc -g -fPIC -shared regexp.c -o regexp.so
$ sudo cp regexp.so /home/ubuntu/EPGStation/data/

# 設定ファイルのコピー
$ cd /home/ubuntu/EPGStation/
$ sudo cp config/config.sample.json config/config.json
$ sudo cp config/operatorLogConfig.sample.json config/operatorLogConfig.json
$ sudo cp config/serviceLogConfig.sample.json config/serviceLogConfig.json

# config.jsonの編集
$ sudo nano config/config.json
// config.json (最低限。その他は公式参照。)

# ffmpeg/ffprobeの場所書き換え 
"ffmpeg": "/usr/bin/ffmpeg",
"ffprobe": "/usr/bin/ffprobe",

# 正規表現での検索の有効化
"sqlite3": {
  "extensions": [
     "/home/ubuntu/EPGStation/data/regexp.so"
 ],
 "regexp": true
},

# 動作確認済み config.json
$ wget -O config/config.json https://pastebin.com/raw/d6Evd88E

PM2を使ってスタートアップへの登録

# スタートアップへ登録
$ sudo pm2 startup

# EPGStationの起動
$ sudo pm2 start dist/server/index.js --name "epgstation"

# 状態保存
$ sudo pm2 save

ポイント

# SoftCas注意事項
順番に書き換えが必要。一度書き換えたら保存すること。
鍵はこ↓こ↑5chへ。もしくは解錠済みをDLして置き換え。
PWはとある人物をTDN表記にしたもの。
ディレクトリはUbuntu環境用です。RedHat系は適当に。

# Mirakurun注意事項
Mirakurunの設定をしっかりと確認する。
地デジはマスプロのpdfを確認。
Node.jsのバージョン指定終了後に、再起動したほうが良いかも。
Mirakurunを多段利用するのであれば、この様に記述する。
再起動後はerror吐きやすいので注意。挿し直して再起動。
mirakurun logで動作確認。
15-30分程度放置してからEPGStationをインストールする。

# EPGStation注意事項
すぐにスタートアップに登録するのではなく、npm startで動作確認する。
error吐いたら恐らくconfig.jsonの記述ミス。大体カンマ忘れ。
正常動作を確認後スタートアップに登録する。
config.jsonいじったらpm2 restart epgstationで再起動。

# その他
Sambaと録画先の設定などは適当に。
Webminで幅広く設定できる。
自動更新設定やリポジトリの登録なども出来て万能君。
ターミナルまであるから作業が捗る。便利。
EPGStationも徐々に完成形になりつつある。近々に更新予定らしい。
Amatsukazeと連携して自動エンコードが出来る。
保存先をNASにしてPlexとかで見れるようにすると便利。
Kodi用のプラグインもある。シームレスに視聴が出来て快適。
Q3PE4のDrop対策などはこの辺りを参考に。
BonDriver_Mirakurunのおかげで、TVTest環境でも視聴可能。
Meruruを使えば、Mac環境でも簡単に視聴可能。
EPGStation-Notifierを使えば、予約番組の通知も可能。
EPGS-to-Discordを使えば、Discordへ通知が可能。

各種リンク及びショートカット

EPGStation
http://localhost:8888/
Webmin
https://localhost:10000/
Ubuntu
https://www.ubuntulinux.jp/download/
Rufus
https://github.com/pbatard/rufus/releases/
TVTest
https://github.com/tsukumijima/TS-Soft-Built
DTV板
https://mevius.5ch.net/avi/
file.io
https://www.file.io/
SoftCasの鍵
https://anonfile.com/4au9K99dnd/

まとめ

B-CASが邪魔?挿さなくてヨシ!!

いいなと思ったら応援しよう!

コメント

ログイン または 会員登録 するとコメントできます。
UbuntuとPX-Q3PE4で録画リグ構築。(MirakurunxEPGStation+SoftCas)|CAS太郎
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1