Raspberry PiとPX-W3PE4を利用してMirakurunとEPGStationを構築する

Raspberry Piを各種サーバーにする

PX-W3PE4を外付け化する

PX-W3PE4を外付け化し、ICカードリーダーも手に入れたのでRaspberry Piで録画サーバーを建てます。

Advertisement

用意するもの

Raspberry Pi本体

Raspberry Pi 4 Model Bを買いました

今回はRaspberry Pi4 4GBを利用します。

メモリは2GBでも足りると思いますが、バックグラウンドで他のものも動作させているので一応4GBです。

チューナー

PX-W3PE4を外付け化する

今回はわざわざPX-W3PE4を外付け化して利用していますが、わざわざ外付け化する必要なんて無いので最初からUSB接続型になっている外付けのチューナーを用意したほうが良いと思います。

ICカードリーダー

PX-W3PE4には一応内蔵カードリーダーが搭載されていますが、不安定ですし、非公式Linuxドライバを利用すると内蔵カードリーダーが利用できなくなるのでICカードリーダーを用意します。

構築

利用できるように構築していきます。

Raspberry Piの設定

Raspberry Pi OSをインストールする

OSをインストールして、IPアドレスの固定などを行ってください。

Sambaの構築

Raspberry PiでSambaサーバーを建てる

録画データはSDカードに保存することも可能ですが、一般的にはHDDなりなんなりの外部ストレージを接続してそちらに保存すると思います。

その録画データに外部からアクセスできるようにSambaを構築します。

非公式ドライバのインストール

非公式ドライバのほうが公式よりも安定していると言われているのでこちらをインストールします。

sudo apt -y install raspberrypi-kernel-headers dkms git
mkdir ~/src
cd ~/src
git clone https://github.com/nns779/px4_drv.git
cd 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 ../
sudo cp -a ./ /usr/src/px4_drv-0.2.1
sudo dkms add px4_drv/0.2.1
sudo dkms install px4_drv/0.2.1
cd

必要なパッケージをインストールし、クローンし、公式ドライバを抽出し、非公式ドライバをインストールします。

ls /dev/px4video*

と実行し、利用しているチューナーの数デバイスが表示されればOKです。

ICカードリーダーのセットアップ

sudo apt-get install pcscd libpcsclite-dev libccid pcsc-tools

ICカードリーダーを利用するためのツールなどをインストールし、

sudo pcsc_scan

と実行してJapanese Chijou Digital B-CAS Card的な物が表示されればOKです。

sudo systemctl stop pcscd.socket
sudo systemctl disable pcscd.socket
sudo reboot

最終的にはコンテナ内で管理するので、pcscdを停止、再起動しておきます。

Dockerのインストール

MirakurunとEPGStationの構築で楽をするためにDockerを利用するのでインストールします。

curl -sSL https://get.docker.com | sh
sudo apt -y install docker-compose
sudo reboot

インストール後、再起動しておきます。

MirakurunとEPGStationのインストール

簡単に構築できるようなDockerコンテナが公開されているので利用させていただきます。

なお、コマンドなどは上の記事に書いてある内容をRaspberry Pi向けに微修正したものとなっています。上の記事も参考にしてください。

git clone https://github.com/l3tnun/docker-mirakurun-epgstation -b v2
cd docker-mirakurun-epgstation
git clone https://github.com/Chinachu/Mirakurun

これでMirakurunとEPGStationのデータを取得します。

nano  Mirakurun/docker/Dockerfile

で開き、

ARG ARCH=
FROM ${ARCH}node:14.15.4-buster AS build
WORKDIR /app
ENV DOCKER=YES
ADD . .
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends build-essential && \
npm install && \
npm run build && \
npm install -g --unsafe-perm --production

FROM ${ARCH}node:14.15.4-buster-slim

WORKDIR /app
ENV DEV="build-essential libtool autoconf git automake cmake"
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
make gcc g++ pkg-config pcscd libpcsclite-dev libccid pcsc-tools && \
apt-get install -y $DEV && \
\
# recpt1
\
git clone https://github.com/stz2012/recpt1 /tmp/recpt1 && \
cd /tmp/recpt1/recpt1 && \
./autogen.sh && \
./configure && \
make && \
make install && \
rm -rf /tmp/recpt1 && \
\
# mirakurun
\
apt-get -y remove $DEV && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
COPY --from=build /usr/local/lib/node_modules/mirakurun /app
CMD ["./docker/container-init.sh"]
EXPOSE 40772 9229

上の記事にかかれているものをコピペします。

cp docker-compose-sample.yml docker-compose.yml
nano docker-compose.yml

で開き、上の記事にかかれているものをコピペします。

devices:
- /dev/px4video0:/dev/px4video0
- /dev/px4video1:/dev/px4video1
- /dev/px4video2:/dev/px4video2
- /dev/px4video3:/dev/px4video3
- /dev/bus:/dev/bus

PX-W3PE4などの場合はdevicesの部分を修正してください。

mysql:
container_name: mysql-epgstation-v2
image: linuxserver/mariadb

また、Raspberry Piなどを利用していてSQL関連でエラーが発生した場合はmysqlのimageをlinuxserver/mariadbに変更してください。

- /mnt/hdd/Rec:/app/recorded

録画先も環境に合わせて変更してください。

nano Mirakurun/config/tuners.yml

で開き、

- name: PX-W3PE4_S1
types:
- BS
- CS
command: recpt1 --lnb 15 --device /dev/px4video0 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PX-W3PE4_S2
types:
- BS
- CS
command: recpt1 --lnb 15 --device /dev/px4video1 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PX-W3PE4_T1
types:
- GR
command: recpt1 --device /dev/px4video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PX-W3PE4_T2
types:
- GR
command: recpt1 --device /dev/px4video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

のように編集します。

なお、BSアンテナに給電する必要がない場合は–lnb 15を消してください。

cp epgstation/config/config.sample.yml epgstation/config/config.yml
cp epgstation/config/operatorLogConfig.sample.yml epgstation/config/operatorLogConfig.yml
cp epgstation/config/epgUpdaterLogConfig.sample.yml epgstation/config/epgUpdaterLogConfig.yml
cp epgstation/config/serviceLogConfig.sample.yml epgstation/config/serviceLogConfig.yml

設定ファイルやログファイルなどをデフォルトで用意します。

nano epgstation/config/config.yml

で開き、

recordedFormat: '%TITLE%-%YEAR%%MONTH%%DAY%%HOUR%%MIN%'

タイトルの命名規則を変更したり、

 android: intent://ADDRESS#Intent;package=org.videolan.vlc;type=video;scheme=PROTOCOL;end

AndroidからのストリーミングでVLCを利用するようにします。

起動

sudo docker-compose pull && sudo docker-compose build --no-cache && sudo docker-compose up -d

コンテナを起動します。かなり時間がかかります。待ちましょう。

curl -X PUT "http://localhost:40772/api/config/channels/scan"

起動完了後、チャンネルスキャンしておきましょう。

sudo docker-compose restart mirakurun

完了したらMirakurunを再起動してください。

利用

MirakurunはRaspberry PiのIPアドレス:40772、EPGStationはRaspberry PiのIPアドレス:8888でアクセスできます。

Advertisement

各Configファイルをいじることでより細かい設定などもできます。

Raspberry PiとPX-W3PE4を利用してDockerを利用しないでMirakurunとEPGStationを構築する

どうやってもハードウェアエンコードを利用できなかったのでDockerを利用しない方法でも構築しました。