Esxi7: CentOS7 PT2 & TvTest

書きなぐり部分が多くて申し訳ないです・・・
力尽きました笑

CentOS7をMinimalインストールします。

esxi7
pciパススルー設定 -> ホスト -> 管理 -> Xilinx Multimedia controller -> パススルーの切り替え -> アクティブ
仮想PC
設定の編集 -> その他のデバイスの追加 -> PCIデバイス -> ２枚刺しなら２回
設定の編集 -> メモリ -> 予約 -> RAMと同量に設定 -> 起動
設定の編集 -> その他のデバイスの追加 -> USBデバイス

```console:PCIデバイス確認
$ lspci | grep Multi
{address} Multimedia controller: Xilinx Corporation Device 222a (rev 01)
```

開発環境
$ sudo yum install autogen perl-ExtUtils-MakeMaker openssl-devel boost-devel cmake

[Install Linux kernel-devel] (https://qiita.com/metheglin/items/60261f474ccdfb467574) -> kernelとkernel-develのバージョンを合わせる。

```ini:kernelの確認
;kernel
$ yum uname-r
;kernel-devel
$yum list installed | grep kernel-devel
```

$ sudo vim /etc/yum.conf
   + exclude=kernel*

$ sudo yum install epel-release
$ sudo vi /etc/yum.repos.d/epel.repo
 - enabled=1
 + enabled=0

$ sudo yum --enablerepo=epel install nkf dkms

ドライバインストール
スマートカード
SmartCardReader
$ sudo yum install ccid
$ sudo yum install pcsc-lite-devel

pcsc-perlをインストール
$ wget http://ludovic.rousseau.free.fr/softwares/pcsc-perl/pcsc-perl-1.4.14.tar.bz2
$ tar xf pcsc-perl-1.4.14.tar.bz2
$ cd pcsc-perl-1.4.14.tar.bz2
$ perl Makefile.PL
ここでエラーがでる・・・がmakeできる？
$ make
$ sudo make install

$ cd ..
pcsc-toolsをインストール
$ wget https://launchpad.net/ubuntu/+archive/primary/+files/pcsc-tools_1.4.23.orig.tar.gz
$ tar xvzf pcsc-tools_1.4.23.orig.tar.gz
$ cd pcsc-tools-1.4.23
$ make
$ sudo make install
$ systemctl enable pcscd
$ systemctl start pcscd
$ systemctl status pcscd
$ pcsc_scan

Japanese Chijou Digital B-CAS Card (pay TV)を確認

ARIB25のインストール
$ mkdir ~/git
$ cd ~/git
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25/
$ cmake .
$ make
$ sudo make install　※インストール
$ echo /usr/local/lib64 | sudo tee -a /etc/ld.so.conf.d/usr-local-lib.conf
$ sudo ldconfig
ライブラリlibaribの確認
$ ldconfig -p | grep libarib

pt1標準ドライバーを外す
確認
$ lsmod | grep pt1
２行見つかり、１行は earth_pt1
$ sudo rmmod earth_pt1
何も表示されないのを確認
$ lsmod | grep pt1

$ sudo vi /etc/modprobe.d/blacklist.conf
 + blacklist earth_pt1

$ sudo yum install gtk2
$ sudo yum install gtk2-devel

$ cd pt1-17b4f7b5dccb/driver //新しい方のドライバを使う  ディレクトリ名はバージョンによって違う
$ make
$ make install
$ modprobe pt1_drv
$ modprobe -l | grep pt1_drv //pt1_drv.koが確認できればOK
$ cd

$ cd pt1-17b4f7b5dccb/recpt1
$ . autogen.sh
$ ./configure --enable-b25 //--enable-b25オプションはB-CASカードを利用するオプション

make時のリンク切れエラー対策 バージョンは現在に合わせる。
$ sudo ln -s /usr/src/kernels/3.10.0-1127.8.2.el7.x86_64 /lib/modules/3.10.0-1127.8.2.el7.x86_64/build
$ make
$ make install
$ cd

シグナルチェック
$ checksignal --device /dev/pt1video0 --lnb 15 211
$ checksignal --device /dev/pt1video2 16

録画チェック
$ recpt1 --b25 --strip 23 10 test.ts

```:Node.jsのインストール
# yum install https://rpm.nodesource.com/pub_12.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm
$ yum info nodejs
Version  : 12.17.0 -> 偶数が安定バージョン
$ sudo yum install nodejs
$ node --version
v12.17.0
```

```console:Mirakurunのインストール
$ sudo npm install pm2 -g
$ sudo npm install mirakurun -g --production
$ su -
# mirakurun init
# exit
$ ls /etc/systemd/system
※pm2-root.serviceが作成されていることを確認
$ sudo npm install rivarun -g
$ sudo npm install arib-b25-stream-test -g --unsafe
$ sudo pm2 status
※Mirakurunがonlineであることを確認
$ sudo reboot
$ sudo pm2 status
```
※Mirakurunがonlineであることを確認

```console:SoftCasのインストール
# wget http://www.wazoku.net/softcas.zip
# unzip softcas.zip
# cd softcas
# wget -O winscard.cpp http://pastebin.com/download.php?i=5144Ah9g
# wget -O Makefile http://pastebin.com/download.php?i=FQdSixkB
```
次に、ライブラリが変更されたため、winscard.cppの一部を書き換える必要がある。
以下のコマンドでソースの書き換えを行う。

```
# 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
make後、「libpcsclite.so.1.0.0」というファイルが作成されているので、「/usr/lib64」に移動する。

# cp libpcsclite.so.1.0.0 /usr/lib64/
```

TvTest
BonDriver_Mirakurun.ini
IPアドレスの設定

LGTMお願いします！
書き直すモチベーションください！笑