📺

Raspberry Pi 4で録画鯖構築

2024/03/22に公開

はじめに

以前、購入したラズパイ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です。

00_firmware_PX-DVB.sh
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版も載せておきます。

00_firmware_px4_drv.sh
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のライブラリをインストールします。

01_aribb25.sh
# 依存パッケージをインストール
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のインストール

02_BDPEX_install.sh
# 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
BonDriverProxyEx.conf
;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
/etc/systemd/system/BonDriverProxyEx.service
[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のセットアップ

こちらをご覧ください。
https://zenn.dev/stuayu/scraps/936e448fb61837

おわりに

ラズパイでも安定して利用できるので、お気軽に試してみてください。

Discussion