UbuntuServer16でChinachu γを実行

## <i class="fa fa-cube" style="font-size:1em;"></i> 前提

- UbuntuServer16.04LTEをインストールして適当なIPアドレスを割り振ってください。
- OSインストール時にインストールするソフトウェアとして「Standard system utilities」（と、SSHで操作するために「OpenSSH Server」）をインストールしておいてください。
- 本説明では、PT3で録画する事を前提にしております。（機器としては「PT3」と「カードリーダ」を用意してください）
- 説明内では面倒くさいので`sudo`を使用していません。rootユーザを`su`で入れるようにしておいてください。
- 本説明では、MirakurunとChinachuを同一サーバ内に構築しています。

## <i class="fa fa-cube" style="font-size:1em;"></i> 時間の設定

SSHでログインし以下のコマンドを順番に実行してください。

~~~bash
su -
apt -y install ntpdate ntp
service ntp stop
ntpdate ntp.ubuntu.com
service ntp start
~~~


## <i class="fa fa-cube" style="font-size:1em;"></i> 諸々のツールのインストール

続けて以下のコマンドを実行してください。

~~~bash
apt -y install pcscd pcsc-tools libpcsclite-dev autoconf build-essential curl git-core libssl-dev libtool libboost-all-dev pkg-config yasm dkms unzip
~~~

上記のコマンドでカードリーダツールが正常に動作しているか、以下のコマンドで確認してください。

~~~bash
pcsc_scan | grep "Japanese Chijou Digital"
~~~

すると、以下のような表示が出力されますので<kbd><kbd>Ctrl</kbd>+<kbd>C</kbd></kbd>で止めてください。

~~~
	Japanese Chijou Digital B-CAS Card (pay TV)
~~~


## <i class="fa fa-cube" style="font-size:1em;"></i> PT3ドライバのインストール

まず、デフォルトでインストールされているPT3ドライバを除外するため、以下のコマンドを実行してください。

~~~bash
vi /etc/modprobe.d/blacklist.conf
~~~

ファイルの末尾に以下の行を追加してください。

~~~
blacklist earth-pt3
~~~

続けて以下のコマンドを順番に実行してください。

~~~bash
cd /tmp
git clone https://github.com/m-tsudo/pt3.git
cd pt3/
make
make install
${SHELL} ./dkms.install
~~~

実行後、`reboot`コマンドでリブートしてください。

起動後、SSHでログインし以下のコマンドで確認

~~~bash
lsmod | grep pt3
~~~

以下のように表示されることを確認。（数字は都度変わります）

~~~
pt3_drv                45056  0
~~~

ついでに以下も確認

~~~bash
ls -la /dev/pt*video*
~~~

以下のように表示されることを確認。（デバイスの数はPT3の枚数によって変わります）

~~~
crw-rw-rw- 1 root video 246, 0  1月  3 15:02 /dev/pt3video0
crw-rw-rw- 1 root video 246, 1  1月  3 15:02 /dev/pt3video1
crw-rw-rw- 1 root video 246, 2  1月  3 15:02 /dev/pt3video2
crw-rw-rw- 1 root video 246, 3  1月  3 15:02 /dev/pt3video3
~~~

## <i class="fa fa-cube" style="font-size:1em;"></i> arib25ライブラリのインストール

PT3ドライバが正常にインストールされていれば、続けて以下のコマンドを実行してください。（`reboot`しているので`su`を忘れずに）

~~~bash
su -
cd /tmp
wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
unzip c44e16dbb0e2.zip
cd pt1-c44e16dbb0e2/arib25
make clean
make
make install
~~~


## <i class="fa fa-cube" style="font-size:1em;"></i> recpt1のインストール

続けて以下のコマンドを順番に実行してください。

~~~bash
cd /tmp
wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
tar xvjf tip.tar.bz2
cd pt1-c8688d7d6382/recpt1/
sed -i".org" 's/pt1video/pt3video/g' pt1_dev.h
./autogen.sh
./configure --enable-b25
make
make install
~~~

インストールが正常に終わっているかを確認するため、以下のコマンドを実行してください。
`15`の部分は、地域によって変わります。（`15`は広島のNHKです）

~~~bash
cd /tmp
recpt1 --b25 --strip 15 20 test.ts
~~~

出来上がった「test.ts」をWindowsマシンあたりに持ってゆき、VLC等のツールで映像が表示されることを確認してください。


## <i class="fa fa-cube" style="font-size:1em;"></i> Node.jsのインストール

続けて以下のコマンドを順番に実行してください。

~~~bash
apt install -y nodejs npm
npm cache clean
npm install n -g
n stable
~~~

`node -v`コマンドで"v5.9"以上が表示されていることを確認してください。


## <i class="fa fa-cube" style="font-size:1em;"></i> Mirakurunのインストール

続けて以下のコマンドを順番に実行してください。

~~~bash
npm install pm2 -g
npm install mirakurun -g --unsafe --production
npm install rivarun -g
npm install arib-b25-stream-test -g --unsafe
~~~

Mirakurunが起動されていることを以下のコマンドで確認してください。

~~~bash
ps ax|grep Mirakurun
~~~

以下のように出力されていればOKです。（例によって数字は都度変わります）

~~~
 5761 ?        S<sl   0:01 Mirakurun: Server
~~~


## <i class="fa fa-cube" style="font-size:1em;"></i> Mirakurunの設定

以下のコマンドを実行し、チューナ設定を変更してください。（エディタ操作は`vi`です）

~~~bash
mirakurun config tuners
~~~

「PT3-S1」〜「PT3-T2」の`isDisabled`を`false`に変更


以下のコマンドを実行し、チャンネル設定を変更してください。（エディタ操作は`vi`です）

~~~bash
mirakurun config channels
~~~

地デジ（「type」が「GR」のチャンネル設定箇所）は、地域によって変わります。
広島市内だと以下の設定でいけると思われます。

~~~
- name: NHK
  type: GR
  channel: '15'

- name: 教育
  type: GR
  channel: '14'

- name: 中国放送
  type: GR
  channel: '18'

- name: 広島テレビ
  type: GR
  channel: '19'

- name: 広島ホームテレビ
  type: GR
  channel: '22'

- name: テレビ新広島
  type: GR
  channel: '23'
~~~

他の地域については、マスプロのサイトに有る[チャンネル一覧表](http://www.maspro.co.jp/contact/bro/bro_ch.html)あたりが参考になると思います。


以下のコマンドで、Mirakurunをリスタートしてください。

~~~bash
mirakurun restart
~~~

MirakurunのEPG情報が更新されるまでに数分かかります。
数分後、以下のコマンドで設定したチャンネルの情報が取得できていること（「type」タグの中に「id」タグが存在すること）を確認してください。

~~~bash
rivarun --list | sed 's/},/},\n/g'
~~~

rivarun経由で録画ができることを確認します。

~~~bash
rivarun --b25 --ch GR/15 20 test.ts
~~~

BSの確認は以下の通り

~~~bash
rivarun --b25 --sid 101 --ch BS/BS15_0 20 test2.ts
~~~

「status」が「200」以外だと、エラーです。
`rivarun`のコマンド引数を確認し、それでもだめな場合は インストールに失敗している可能性があります。


## <i class="fa fa-cube" style="font-size:1em;"></i> Chinachu γのインストール

Chinachuは、chinachuユーザで実行します。（もちろん別ユーザでもOKです。その場合は、以下の説明を読み替えてください）

以下のコマンドでchinachuユーザを追加します。
（パスワード以外は<kbd>Enter</kbd>キーのみで良いです）

~~~bash
adduser chinachu
sudo -i -u chinachu
~~~

以降は「chinachu」ユーザでの操作となります。

chinachuユーザのホームディレクトリ配下に「chinachu」ディレクトリを作成しインストールを行います。
以下のコマンドを順番に実行してください。

~~~bash
git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
cd ~/chinachu
./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」（「Auto」）を選択してください。（時間がかかります）


## <i class="fa fa-cube" style="font-size:1em;"></i> Chinachuの設定

以下のコマンドを実行し、録画予約用の空ファイルと Chinachuの設定ファイルを用意します。

~~~bash
echo "[]" > rules.json
cp config.sample.json config.json
~~~

以下のコマンドでChinachuの設定ファイルを開きます。

~~~bash
vi config.json
~~~

- 「wuiUsers」のユーザ名/パスワードを変更してください。
- 「wuiPort」のWeb画面のポート番号を「10772」に変更してください。
- 「recordedFormat」は、出力される録画ファイル名のフォーマットです。（[ここ](http://d.hatena.ne.jp/marqut/20140109/1389239096)を参照して設定してください）

以下のコマンドを実行し、Chinachuのサービスが起動することを確認してください。

~~~bash
./chinachu service operator execute
~~~

以下のように出力されていればOKです。
（<kbd><kbd>Ctrl</kbd>+<kbd>C</kbd></kbd>で止めてください）

~~~
3 Jan 21:43:12 - MKDIR: ./recorded/
3 Jan 21:43:12 - READ: `/home/chinachu/chinachu/data/reserves.json` is updated.
3 Jan 21:43:12 - READ: `/home/chinachu/chinachu/data/recorded.json` is updated.
3 Jan 21:43:18 - SPAWN: node app-scheduler.js (pid=7646)
3 Jan 21:43:18 - STREAM: ./log/scheduler
3 Jan 21:43:19 - EXIT: node app-scheduler.js (pid=7646)
3 Jan 21:43:20 - READ: `/home/chinachu/chinachu/data/reserves.json` is updated.
~~~


以下のコマンドでEPG取得を行ってください。

~~~bash
./chinachu update
~~~


PCリブートすると、Chinachuが立ち上がらなくなるので、以下のコマンドを実行し起動スクリプトを作成します。

~~~bash
./chinachu service operator initscript > /tmp/chinachu-operator
./chinachu service wui initscript > /tmp/chinachu-wui

su -
cd /tmp
chown root:root chinachu-*
chmod 755 chinachu-*
mv chinachu-* /etc/init.d/
update-rc.d chinachu-operator defaults
update-rc.d chinachu-wui defaults
service chinachu-operator start
service chinachu-wui start
~~~

以下のコマンドでChinachuが起動していることを確認してください。

~~~bash
ps ax | grep chinachu
~~~

以下のように出力されていればOKです。（例によって数字は都度変わります）

~~~
 7813 ?        S      0:00 /bin/bash /home/chinachu/chinachu/chinachu service operator execute
 7874 ?        S      0:00 /bin/bash /home/chinachu/chinachu/chinachu service wui execute
~~~


## <i class="fa fa-cube" style="font-size:1em;"></i> Chinachu画面へアクセス

最後にブラウザから「http:// サーバのIPアドレス:10772」でChinachuに接続してください。
ユーザ名とパスワードは`config.json`で設定したものです。


## <i class="fa fa-cube" style="font-size:1em;"></i> 参考

- [Gamma Configuration](https://github.com/Chinachu/Chinachu/wiki/Gamma-Configuration)
- [録画サーバ構築の前準備（Ubuntu・Debian編）、Chinachu・epgrec UNA対応](http://www.jifu-labo.net/2015/09/ubuntu_pre/)
- [Mirakurunのインストール手順（Ubuntu・Debian・CentOS）](http://www.jifu-labo.net/2016/05/mirakurun/)
- [CentOSでChinachu γ を導入してみた。](https://satoweb.net/archive/9892)
- [録画ファイル名の指定に関するメモ](http://d.hatena.ne.jp/marqut/20140109/1389239096)


## <i class="fa fa-cube" style="font-size:1em;"></i> 最後に

今回は、Chinachu γが2016年クリスマスにリリースしたので正月休み終わりにお試しでインストールしてみました。

現在のウチの環境はEpgrecUNAで安定稼働しております。
Chinachu γ（と言うかChinachu自体）で1日以上の連続稼動は確認しておりません（ｗ
これから、使い比べて良ければシフトしていこうかなぁ…。

ほぼほぼ、殴り書き状態ですので指摘等はコメントにてお願いします。