Arch Linuxでchinachu
Arch Linux上でPT3+chinachuで録画鯖を作ります。
録画鯖を構築するとしたら、MythTV、epgrec、chinachuのいずれかになると思いますが、
MythTVはGUI必須なので外部からの設定が面倒、番組表関連・BSCSがうまくいかない、
epgrecはかなりごちゃごちゃしているのと、phpに任せるのは不安、
ということで、chinachuで構築することにしました。
Arch LinuxではAURにPT3ドライバとchinachuがあるので簡単にインストールすることができました。
Arch Linux標準のカーネルではPT3のDVBドライバが有効になっています。
DVBドライバからfuse_b25でデコードしてrecdvbを使いたいところですが、recdvbではBSCSが受信できないらしいので普通のドライバを入れます。
chinachuは録画ソフトを呼び出すだけなので、VLCなどのDVB対応ソフトなら使えるかもしれないです。
今回はPT3ドライバにpt3_drv-dkms、デコードにarib25、録画にrecpt1を使うことにします。
PT3DVBドライバの無効化
PT3ドライバのインストール
/dev/にpt3video*があるか確認
カードリーダー用のソフトのインストール
arib25のインストール
recpt1のインストール
chinachuのインストール
スペックに余裕のあるPCではそのままインストールできると思いますが、私の環境では/tmpがいっぱいになってビルドできませんでした。
/tmpをtmpfsからHDD領域に変更するか、yaourtのビルドディレクトリを変更するか、RAM容量に余裕のあるPCでビルドする必要があります。
環境はできるだけ変更したくないので、メインPCのほうでビルドしてパッケージを持ってきてインストールしました。
メインPCでchinachuをビルド
録画鯖にビルド済みchinachuを持ってきてインストール
chinachuサービスの起動、有効化
AURで公開されているchinachuはsystemd対応済みなのでそのままsystemctlします。
chinachuインストール時にユーザchinachu:chinachuが作成されますが、/dev/pt3video*がvideoグループに属しているユーザでないと利用できないのでvideoグループに追加します。
chinachuの設定
ブラウザから http://<録画鯖のIPv4アドレス>:10772/ にアクセスします。(Microsoft Edgeからだとエラーが出て使えませんでした。)
初期設定ではユーザ名:akari、パスワード:bakuhatsu です。
右上の設定をクリックすると設定ファイルの編集画面に入ります。
設定項目は
recordedDir : 録画ファイルの保存先
temporaryDir : 一時ファイル保存先
wuiUsers : chinachuログインユーザ名:パスワード
recordedFormat : 録画ファイル名
tuners : 録画ソフトの呼び出しコマンド。PT3ではそのままで大丈夫なので最後のKEIAN KTV-FSUSB2の設定項目を削除します。
channels : チャンネルを設定します。
チャンネルは、チャンネルを変えて順番にrecpt1を起動して確認すればいいのですが、面倒なのでチャンネルスキャンをしてくれるシェルスクリプトを作りました。
地上波用
CATV用
BS用
110度CS用
チャンネル番号をchinachuのchannelsに書き込んで完成です。
今回、ドライバをカーネルモジュールとしてインストールしました。
カーネルモジュールは /usr/lib/modules/<カーネルバージョン>/kernel/drivers/video/ 以下に作成され、そのバージョンのLinuxカーネルでないと読み込んでくれません。
Arch Linuxはカーネルの更新が頻繁にあるので厄介です。
解決策として、AURのPT3のカーネルモジュールはDKMS関連も一緒に有効化してくれるので、systemdからdkmsを有効化することで、カーネル更新後に自動で再生成してくれます。
DKMSのデメリットとして、DKMSからカーネルモジュールを再生成するとインストールディレクトリが変わってしまうので、pacmanからPT3ドライバをアンインストールできなくなるという問題があります。
DKMSを使用し、PT3ドライバ をアンインストールしたいときは、pacmanからアンインストールし、
その後に手動でカーネルモジュールを削除する必要があります。
DKMSを使わない場合はカーネルの更新ごとに、
を実行し、PT3ドライバの再インストールが必要です。
chinachu Airでは録画ソフトも独自のものになり、DVBデバイスにも対応するみたいなのでfuse_b25でいけるかもしれないです。
録画鯖を構築するとしたら、MythTV、epgrec、chinachuのいずれかになると思いますが、
MythTVはGUI必須なので外部からの設定が面倒、番組表関連・BSCSがうまくいかない、
epgrecはかなりごちゃごちゃしているのと、phpに任せるのは不安、
ということで、chinachuで構築することにしました。
Arch LinuxではAURにPT3ドライバとchinachuがあるので簡単にインストールすることができました。
Arch Linux標準のカーネルではPT3のDVBドライバが有効になっています。
DVBドライバからfuse_b25でデコードしてrecdvbを使いたいところですが、recdvbではBSCSが受信できないらしいので普通のドライバを入れます。
chinachuは録画ソフトを呼び出すだけなので、VLCなどのDVB対応ソフトなら使えるかもしれないです。
今回はPT3ドライバにpt3_drv-dkms、デコードにarib25、録画にrecpt1を使うことにします。
PT3DVBドライバの無効化
$ sudo modprobe -r earth-pt3 $ sudo echo "blacklist earth-pt3" >> /etc/modprobe.d/earth-pt3.conf
PT3ドライバのインストール
$ yaourt -S pt3_drv-dkms-git $ sudo modprobe pt3_drv //PT3ドライバの有効化
/dev/にpt3video*があるか確認
$ ls /dev | grep pt3video
カードリーダー用のソフトのインストール
$ yaourt -S ccid pcsclite
arib25のインストール
$ cd /tmp $ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.tar.bz2 $ tar xf c44e16dbb0e2.tar.bz2 $ cd pt1-c44e16dbb0e2/arib25/src $ make $ sudo make install
recpt1のインストール
$ cd /tmp $ wget http://hg.honeyplanet.jp/pt1/archive/tip.zip $ unzip tip.zip $ cd pt1-c8688d7d6382/recpt1 $ vim pt1_dev.h //pt3video0,1をbsdevに pt3video2,3をisdb_t_devに追加 $ ./autogen.sh --enable-b25 $ ./configure $ make $ sudo make install
chinachuのインストール
$ yaourt -S chinachu-git
スペックに余裕のあるPCではそのままインストールできると思いますが、私の環境では/tmpがいっぱいになってビルドできませんでした。
/tmpをtmpfsからHDD領域に変更するか、yaourtのビルドディレクトリを変更するか、RAM容量に余裕のあるPCでビルドする必要があります。
環境はできるだけ変更したくないので、メインPCのほうでビルドしてパッケージを持ってきてインストールしました。
メインPCでchinachuをビルド
$ cd ~ $ yaourt -G chinachu-git //ソースのダウンロード $ cd chinachu-git $ makepkg -s //ビルド済みのchinachu-git-<バージョン>-x86_64.pkg.tar.xz が作成されます。
録画鯖にビルド済みchinachuを持ってきてインストール
$ pacman -U chinachu-git-<バージョン>-x86_64.pkg.tar.xz
chinachuサービスの起動、有効化
AURで公開されているchinachuはsystemd対応済みなのでそのままsystemctlします。
$ sudo systemctl start chinachu-wui chinachu-operator $ sudo systemctl enable chinachu-wui chinachu-operator
chinachuインストール時にユーザchinachu:chinachuが作成されますが、/dev/pt3video*がvideoグループに属しているユーザでないと利用できないのでvideoグループに追加します。
$ sudo gpasswd -a chinachu video
chinachuの設定
ブラウザから http://<録画鯖のIPv4アドレス>:10772/ にアクセスします。(Microsoft Edgeからだとエラーが出て使えませんでした。)
初期設定ではユーザ名:akari、パスワード:bakuhatsu です。
右上の設定をクリックすると設定ファイルの編集画面に入ります。
設定項目は
recordedDir : 録画ファイルの保存先
temporaryDir : 一時ファイル保存先
wuiUsers : chinachuログインユーザ名:パスワード
recordedFormat : 録画ファイル名
tuners : 録画ソフトの呼び出しコマンド。PT3ではそのままで大丈夫なので最後のKEIAN KTV-FSUSB2の設定項目を削除します。
channels : チャンネルを設定します。
チャンネルは、チャンネルを変えて順番にrecpt1を起動して確認すればいいのですが、面倒なのでチャンネルスキャンをしてくれるシェルスクリプトを作りました。
地上波用
#!/usr/bin/bash if [ -e chscangr.ts ]; then rm chscangr.ts fi if [ -e chscangr.txt ]; then rm chscangr.txt fi touch chscangr.txt declare -i ch ch=13 while [ $ch -le 62 ]; do echo "ch:$ch" recpt1 --b25 --strip $ch 5 chscangr.ts 2>/dev/null if [ -e chscangr.ts ]; then echo $ch >> chscangr.txt rm chscangr.ts fi ch=$ch+1 done
CATV用
#!/usr/bin/bash if [ -e chscanc.ts ]; then rm chscanc.ts fi if [ -e chscanc.txt ]; then rm chscanc.txt fi touch chscanc.txt declare -i ch ch=13 while [ $ch -le 63 ]; do echo "ch:C$ch" recpt1 --b25 --strip C$ch 5 chscanc.ts 2>/dev/null if [ -e chscanc.ts ]; then echo $ch >> chscanc.txt rm chscanc.ts fi ch=$ch+1 done
BS用
#!/usr/bin/bash if [ -e chscanbs.ts ]; then rm chscanbs.ts fi if [ -e chscanbs.txt ]; then rm chscanbs.txt fi touch chscanbs.txt declare -i ch ch=100 while [ $ch -le 999 ]; do echo "ch:$ch" recpt1 --b25 --strip $ch 5 chscanbs.ts 2>/dev/null if [ -e chscanbs.ts ] then echo $ch >> chscanbs.txt rm chscanbs.ts fi ch=$ch+1 done
110度CS用
#!/usr/bin/bash if [ -e chscancs.ts ]; then rm chscancs.ts fi if [ -e chscancs.txt ]; then rm chscancs.txt fi touch chscancs.txt declare -i ch ch=1 while [ $ch -le 24 ]; do declare -i sid sid=1 while [ $sid -le 999 ]; do echo "ch:CS$ch sid:$sid" recpt1 --b25 --strip --sid $sid CS$ch 5 chscancs.ts 2>/dev/null if [ -e chscancs.ts ]; then echo $ch >> chscancs.txt rm chscancs.ts fi sid=$sid+1 done ch=$ch+1 done
チャンネル番号をchinachuのchannelsに書き込んで完成です。
今回、ドライバをカーネルモジュールとしてインストールしました。
カーネルモジュールは /usr/lib/modules/<カーネルバージョン>/kernel/drivers/video/ 以下に作成され、そのバージョンのLinuxカーネルでないと読み込んでくれません。
Arch Linuxはカーネルの更新が頻繁にあるので厄介です。
解決策として、AURのPT3のカーネルモジュールはDKMS関連も一緒に有効化してくれるので、systemdからdkmsを有効化することで、カーネル更新後に自動で再生成してくれます。
DKMSのデメリットとして、DKMSからカーネルモジュールを再生成するとインストールディレクトリが変わってしまうので、pacmanからPT3ドライバをアンインストールできなくなるという問題があります。
DKMSを使用し、PT3ドライバ をアンインストールしたいときは、pacmanからアンインストールし、
$ sudo pacman -R pt3_drv-dkms-git
その後に手動でカーネルモジュールを削除する必要があります。
$ sudo rm /usr/lib/modules/<現在のカーネルバージョン>/kernel/drivers/video/pt3_drv.ko
DKMSを使わない場合はカーネルの更新ごとに、
$ yaourt -S pt3_drv-dkms-git
を実行し、PT3ドライバの再インストールが必要です。
chinachu Airでは録画ソフトも独自のものになり、DVBデバイスにも対応するみたいなのでfuse_b25でいけるかもしれないです。
コメント
コメントを投稿