Raspberry Pi 4で録画鯖構築
はじめに
以前、購入したラズパイ4 4GBモデルが手元にあったので、USB接続できるPX-Q1UDで録画鯖を構築した話を書きたいと思います。
事前準備
ラズパイのOSイメージをSDカードに焼いていきます。
公式サイトからRaspberry Pi Imagerをインストールして、所有しているラズパイのバージョンとOSの種類を選択します。
公式サイト:https://www.raspberrypi.com/software/
OSの選択画面で(Recommended)と書かれているものか、ラズパイ3のように1つしか表示されていなければ、それを選択します。
(ほかのOSを選んでもいいですが、あまり動作がよくありません)
次へ進むと、OSをカスタマイズするか聞かれるので設定を編集するを押します。
(ここで設定しなくても大丈夫ですが、実機でWifiの設定とかしたくないのでここで設定しましょう)
最後に「はい」を押してOSを焼きます。
OSのアップデート
ここからはラズパイを起動させ、ネットワークにも接続済みだと想定してすすめます。
ラズパイにSSHで接続します。
ラズパイはリモートデスクトップ等で接続すると重くなり、反応が悪くなるので基本CLIを使って進めましょう。
ssh rpi-admin@192.168.x.x
無事にラズパイに接続出来たら、ソフトウェア類を最新化します。
sudo apt update
sudo apt upgrade
ソフトウェアのインストール
各種必要なソフトウェアをインストールしていきます。
PX-Q1UD/S1UD系チューナー用ファームウェアインストールスクリプトです。
このまま実行すればOKです。
sudo apt install -y unzip wget
# 作業用に作成
mkdir -p ~/DTV/Build
cd ~/DTV/Build
#wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
#unzip PX-S1UD_driver_Ver.1.0.1.zip
#sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/
wget -O ubuntu20.04.2_PX-S1UD_Driver.zip http://plex-net.co.jp/download/linux/ubuntu20.04.2_PX-S1UD_Driver.zip
unzip -o ubuntu20.04.2_PX-S1UD_Driver.zip
sudo cp s270-firmware/isdbt_rio.inp /lib/firmware/
# 再起動
sudo reboot
おまけに、px4_drv版も載せておきます。
sudo apt install -y unzip wget dkms
# 作業用に作成
mkdir -p ~/DTV/Build
cd ~/DTV/Build
git clone https://github.com/tsukumijima/px4_drv
cd ~/DTV/Build/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 ../
wget https://github.com/tsukumijima/px4_drv/releases/download/v0.4.4/px4-drv-dkms_0.4.4_all.deb
sudo apt install -y ./px4-drv-dkms_0.4.4_all.deb
lsmod | grep -e ^px4_drv
# 再起動
sudo reboot
ファームウェアをインストールしたら、B25のライブラリをインストールします。
# 依存パッケージをインストール
sudo apt install cmake pcscd libpcsclite1 libpcsclite-dev pkg-config build-essential
# レポジトリをクローン
cd ~/DTV/Build
git clone https://github.com/tsukumijima/libaribb25.git
cd libaribb25/
# ビルド
cmake -B build
cd build
make
# インストール
sudo make install
BonDriverProxyExのインストール
# BDPEXインストール
cd ~/DTV/Build
git clone https://github.com/tkmsst/BonDriverProxy_Linux -b decode
cd BonDriverProxy_Linux
make clean
B25=1 make CXXFLAGS='-std=c++14' all
# ビルドしたBonDriverをコピー
mkdir -p ~/DTV/BonDriver
cp BonDriverProxyEx ~/DTV/BonDriver/
cp BonDriverProxyEx.conf ~/DTV/BonDriver/
cp BonDriver_DVB.so ~/DTV/BonDriver/
cp BonDriver_DVB.conf ~/DTV/BonDriver/BonDriver_DVB.so.conf
cp BonDriver_LinuxPT.so ~/DTV/BonDriver/
cp BonDriver_LinuxPT.conf ~/DTV/BonDriver/BonDriver_LinuxPT.so.conf
cp BonDriver_Splitter.so ~/DTV/BonDriver/
cp BonDriver_Splitter.conf ~/DTV/BonDriver/BonDriver_Splitter.so.conf
cp BonDriver_Proxy.so ~/DTV/BonDriver/
cp BonDriver_Proxy.conf ~/DTV/BonDriver/BonDriver_Proxy.so.conf
cp B25Decoder.o ~/DTV/BonDriver/
BonDriverProxyEx.confの設定とサービスファイルの設定を行います。
sudo vim /etc/systemd/system/BonDriverProxyEx.service
;OPTION
ADDRESS=0.0.0.0
PORT=1192
OPENTUNER_RETURN_DELAY=0
PACKET_FIFO_SIZE=64
TSPACKET_BUFSIZE=192512
B25=1
STRIP=1
EMM=1
; MULTI2ROUND=4
;BONDRIVER
00=Q1UD;/home/rpi-admin/DTV/BonDriver/BonDriver_DVB4.so;/home/rpi-admin/DTV/BonDriver/BonDriver_DVB3.so;/home/rpi-admin/DTV/BonDriver/BonDriver_DVB2.so;/home/rpi-admin/DTV/BonDriver/BonDriver_DVB1.so
[Unit]
Description = BonDriverProxyEx
After = network-online.target
[Service]
ExecStart = /home/rpi-admin/DTV/BonDriver/BonDriverProxyEx 0.0.0.0 1192 0 64 192512
Restart = always
Type = forking
[Install]
WantedBy = multi-user.target
サービスに登録します。
sudo systemctl daemon-reload
sudo systemctl enable BonDriverProxyEx.service
sudo systemctl start BonDriverProxyEx.service
sudo systemctl status BonDriverProxyEx.service
MirakurunとEPGStationのセットアップ
こちらをご覧ください。
おわりに
ラズパイでも安定して利用できるので、お気軽に試してみてください。
Discussion