見出し画像

UbuntuとPT2で録画リグ構築。(MirakurunxEPGStation+SoftCas)

注意

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

用意するもの

1. 適当なPC
2. EarthSoft PT2
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 linux-headers-`uname -r` cpufrequtils cpufreqd webmin nodejs npm hexedit

CPU倍率固定

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

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

# チューナードライバのインストール
$ hg clone http://hg.honeyplanet.jp/pt1
$ cd pt1
$ REVISION=`hg log -r tip | sed -n -e '1s/.*://p'`

# パッチを適用する
$ cd ..
$ sed -i -e '/^static int pt1_release(struct inode \*inode, struct file \*file)$/,/^}$/s/mutex_unlock(&channel->ptr->lock);/\/\* mutex_unlock(\&channel->ptr->lock); \*\//' pt1/driver/pt1_pci.c
$ sed -i -e '/^static int pt1_release(struct inode \*inode, struct file \*file)$/,/^}$/s/^\treturn 0;$/\tmutex_unlock(\&channel->ptr->lock);\n\n\treturn 0;/' pt1/driver/pt1_pci.c

# dkmsのディレクトリへコピー
$ sudo cp -r pt1/driver/ /usr/src/pt1_drv-$REVISION/

# dkmsに登録
$ cat << EOT | sudo tee /usr/src/pt1_drv-$REVISION/dkms.conf
PACKAGE_NAME="pt1_drv"
PACKAGE_VERSION="$REVISION"
MAKE[0]="make KVER=\${kernelver}"
CLEAN[0]="make clean"
BUILT_MODULE_NAME[0]="pt1_drv"
DEST_MODULE_LOCATION[0]="/kernel/drivers/video"
AUTOINSTALL="YES"
EOT

# ビルドしてインストール
$ sudo dkms add -m pt1_drv -v $REVISION
$ sudo dkms build -m pt1_drv -v $REVISION
$ sudo dkms install -m pt1_drv -v $REVISION

# 標準ドライバをブラックリストに登録する
$ echo "blacklist earth_pt1" >> /etc/modprobe.d/blacklist.conf

# 再起動
$ sudo reboot now

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

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

$ dmesg
$ lspci
$ lsmod | grep pt1_drv
$ ls -l /dev/pt1video*
$ 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フォルダを復活させて、導入する
$ cd /home/ubuntu/pt1/
$ hg revert -r c44e16dbb0e2 --all
$ hg revert -r tip --all
$ cd arib25
$ nano src/Makefile
 PCSC_CFLAGS ?= `pkg-config libpcsclite –cflags`
 PCSC_LDLIBS ?= `pkg-config libpcsclite –libs`
 の「lite」を「kai」とし、保存する
$ make
$ sudo make install

# honeyplanet版です。
$ cd /home/ubuntu/pt1/recpt1/
$ ./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/B9wLSMrb
$ 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用のプラグインもある。シームレスに視聴が出来て快適。
BonDriver_Mirakurunのおかげで、TVTest環境でも視聴可能。
Meruruを使えば、Mac環境でも簡単に視聴可能。
EPGStation-Notifierを使えば、予約番組の通知も可能。
EPGS-to-Discordを使えば、Discordへ通知が可能。

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

EarthSoft
https://earthsoft.jp/
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が邪魔?挿さなくてヨシ!!

この記事が気に入ったらサポートをしてみませんか?