半年前に構築した内容を記事にする奴が居るらしい。
ハ-ドウェア構成
- LIANLI O11 DYNAMIC MINI BLACK
- Western Digital ウエスタンデジタル WD Blue SATA SSD 内蔵 500GB 2.5インチ (読取り最大 560MB/s 書込み最大 510MB/s) WDS500G3B0A-EC SA510
- Western Digital ウエスタンデジタル WD Blue 内蔵 HDD ハードディスク 4TB
- CORSAIR iCUE LINK H100i RGB
- FSP DAGGER PRO
- SCR3310/v2.0
マザ-ボ-ド、CPU、メモリは以前のコレを流用した。

チュ-ナ-は新規に PX-Q3PE5 を購入した。
本当は PT3 に乗り換えた際に余った PT2 を使用したかったんだけど、どうも故障しているようで動作しなかったので購入した。
新規で購入した物の総計で 10 万↑って感じだった…確か、確かね。
セットアップ手順
1.Debian インスト-ル
OS インスト-ルはインスト-ル先ディスクに 500GB の SSD を指定し、ミニマム構成で SSH のみ指定してインスト-ルした。
ログインユ-ザ-は後述する Samba のユ-ザ-にするので留意。
基本設定は上記記事参照。
強いて挙げるとすれば時刻同期は意識した方がいいかも。
2.追加 HDD 設定
1.parted インスト-ル
下記コマンドを実行して、parted コマンドをインスト-ルする。
apt install parted
2.DISK 確認
下記コマンドを実行して、DISK を確認する。
parted -l
3.設定デバイス選択
下記コマンドを実行して、設定を行うデバイスを指定する (今回は『/dev/sdb』を一例とする)。
parted /dev/sdb
4.ラベル設定
下記コマンドを実行して、デバイスにラベル名を設定する。
mklabel gpt
5.パ-ティション作成
下記コマンドを実行して、パ-ティションを作成する。
mkpart
*
パ-ティション名はデフォルトの空欄、ファイルシステムは ext4、Start:0%、End:100% を指定した。
6.作成結果確認
下記コマンドを実行して、作成結果を確認する。
p
7.parted コマンド終了
下記コマンドを実行して、parted コマンドを終了する。
quit
8.パ-ティション確認
下記コマンドを実行して、パ-ティションを確認する。
lsblk
9.マウントディレクトリ作成
下記コマンドを実行して、マウントディレクトリを作成する。
mkdir /video
10.マウント試行
下記コマンドを実行して、マウント出来るか試してみる。
mount /dev/sdb1 /video/
11.自動マウント
『fstab』に下記内容を追記して、自動マウントを設定する。
UUID=<UUID> /video ext4 errors=remount-ro 0 0
*
必ず UUID で指定する事。詳細は上記記事参照。
3.Docker インスト-ル
1.Docker apt リポジトリセットアップ
下記コマンドを実行して、Docker の apt リポジトリを設定する。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
2.Docker パッケ-ジをインスト-ルする
下記コマンドを実行して、Docker パッケ-ジをインスト-ルする。
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3.Docker グル-プ追加
下記コマンドを実行して、ログインユ-ザで Docker の起動制御を行えるようにする。
usermod -aG docker <ログインユ-ザ>
4.ドライバインスト-ル
1.必須モジュ-ルインスト-ル
下記コマンドを実行して、必要なモジュ-ルをインスト-ルする。
apt install git unzip dkms curl build-essential
2.ソ-スクロ-ン
下記コマンドを実行して、非公式 Linux ドライバをクロ-ンする。
git clone https://github.com/nns779/px4_drv.git
3.公式ファ-ムウェア抽出とインスト-ル
下記コマンドを実行して、公式ファ-ムウェアの抽出とインスト-ルを行う。
$ cd 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 ../
4.ドライバインスト-ル
下記コマンドを実行して、ドライバをインスト-ルを行う。
$ 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
5.カ-ネルモジュ-ル確認
下記コマンドを実行して、カ-ネルモジュ-ルがロ-ドされているか確認する。
$ lsmod | grep -e ^px4_drv
px4_drv 81920 0
6.デバイスファイル確認
下記コマンドを実行して、デバイスファイルが存在するか確認する。
$ ls /dev/px4video*
/dev/px4video0 /dev/px4video2 /dev/px4video4 /dev/px4video6
/dev/px4video1 /dev/px4video3 /dev/px4video5 /dev/px4video7
5.docker-mirakurun-epgstation セットアップ
1.手動セットアップ
docker-mirakurun-epgstation は PT3 向けらしいので 『l3tnun/docker-mirakurun-epgstation/setup.sh』の内容を手動で行う。
git clone https://github.com/l3tnun/docker-mirakurun-epgstation.git
cd docker-mirakurun-epgstation
cp docker-compose-sample.yml docker-compose.yml
cp epgstation/config/enc.js.template epgstation/config/enc.js
cp epgstation/config/config.yml.template 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
2.startup コマンド差し替え
下記コマンドを実行して、startup コマンドを事前に作成する。
mkdir -p mirakurun/opt/bin
vi mirakurun/opt/bin/startup
『mirakurun/opt/bin/startup』
#!/bin/bash
if !(type "recpt1" > /dev/null 2>&1); then
apt-get update
apt-get install -y --no-install-recommends git autoconf automake
cd /tmp
git clone https://github.com/stz2012/recpt1.git
cd recpt1/recpt1
./autogen.sh
./configure --prefix /opt
make
make install
fi
recpt1 -v
実行権限付与。
chmod +x mirakurun/opt/bin/startup
3.録画ディレクトリ作成
下記コマンドを実行して、録画ディレクトリを作成する。
cd /video
mkdir recorded
4.dokcer compose ファイル編集
『docker-compose-sample.yml』を編集し『docker-compose.yml』を作成する。
mirakurun には下記の通り編集を行う。
- opt ディレクトリを 4.2.startup コマンド差し替え で準備したディレクトリを使用するように変更
- devices に指定しているデバイスを 3.ドライバインスト-ル で追加したデバイスを使用するように変更
services:
mirakurun:
image: chinachu/mirakurun
cap_add:
- SYS_ADMIN
- SYS_NICE
ports:
- "40772:40772"
- "9229:9229"
volumes:
- ./mirakurun/opt:/opt
- ./mirakurun/conf:/app-config
- ./mirakurun/data:/app-data
environment:
TZ: "Asia/Tokyo"
devices:
- /dev/bus:/dev/bus
- /dev/px4video0:/dev/px4video0
- /dev/px4video1:/dev/px4video1
- /dev/px4video2:/dev/px4video2
- /dev/px4video3:/dev/px4video3
- /dev/px4video4:/dev/px4video4
- /dev/px4video5:/dev/px4video5
- /dev/px4video6:/dev/px4video6
- /dev/px4video7:/dev/px4video7
restart: always
logging:
driver: json-file
options:
max-file: "1"
max-size: 10m
epgstation には下記の通り編集を行う。
- 録画ディレクトリを 2.追加 HDD 設定 で追加したストレ-ジに変更
- epgstation の起動ユ-ザ-を指定するように変更 (Samba の為)
epgstation:
build:
context: "./epgstation"
dockerfile: "debian.Dockerfile"
volumes:
- ./epgstation/config:/app/config
- ./epgstation/data:/app/data
- ./epgstation/thumbnail:/app/thumbnail
- ./epgstation/logs:/app/logs
- /video/recorded:/app/recorded
environment:
TZ: "Asia/Tokyo"
depends_on:
- mirakurun
- mysql
ports:
- "8888:8888"
- "8889:8889"
user: "1000:1000"
# devices:
# - /dev/dri:/dev/dri
restart: always
5.Mirakurun 初期設定
下記コマンドを実行して、Mirakurun の初期設定を行う。
docker compose run --rm -e SETUP=true mirakurun
6.チュ-ナ-設定差し替え
『mirakurun/conf/tuners.yml』を下記内容で差し替える。
- name: PX-Q3PE5-S1
types:
- BS
- CS
command: recpt1 --device /dev/px4video0 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PX-Q3PE5-S2
types:
- BS
- CS
command: recpt1 --device /dev/px4video1 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PX-Q3PE5-T1
types:
- GR
command: recpt1 --device /dev/px4video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PX-Q3PE5-T2
types:
- GR
command: recpt1 --device /dev/px4video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PX-Q3PE5-S3
types:
- BS
- CS
command: recpt1 --device /dev/px4video4 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PX-Q3PE5-S4
types:
- BS
- CS
command: recpt1 --device /dev/px4video5 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PX-Q3PE5-T3
types:
- GR
command: recpt1 --device /dev/px4video6 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PX-Q3PE5-T4
types:
- GR
command: recpt1 --device /dev/px4video7 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
7.起動
下記コマンドを実行して、Mirakurun 、EpgStation を起動する。
docker compose up -d
8.Web サ-ビス確認
下記 URL にアクセスして、Mirakurun 、EpgStation が動作しているか確認する。
http://<IP アドレス>:40772 (Mirakurun)
http://<IP アドレス>:8888 (EpgStation)
9.チャンネルスキャン
下記コマンドを実行して、地デジのチャンネルをスキャンする。
curl -X PUT "http://localhost:40772/api/config/channels/scan"
10.BS設定
下記 gist 等を参考に BS チャンネルの設定を『mirakurun/conf/channels.yml』に必要に応じて追記する (チャンネルスキャンで出来ているかも ?)。
11.再起動
下記コマンドを実行して、Mirakurun 、EpgStation を再起動する。
docker compose restart
6.Samba セットアップ
1.Samba インスト-ル
下記コマンドを実行して、Samba をインスト-ルする。
apt install samba
2.sambashare グル-プ追加
下記コマンドを実行して、sambashare グル-プにログインユ-ザを追加する。
usermod -aG sambashare <ログインユ-ザ>
3.所有権変更
下記コマンドを実行して、録画ディレクトリの所有権を変更する。
chown tv:sambashare /video/recorded
4.設定ファイル変更
『/etc/samba/smb.conf』の 25 行目付近の[global]セクションに必要に応じ下記内容を追記する。
[global]
#### Charactor Code ####
unix charset = UTF-8
dos charset = CP932
『/etc/samba/smb.conf』の最下部に下記内容を追記する。
[video]
security = user
path = /video/recorded
browseable = yes
guest ok = no
read only = no
valid users = @sambashare
force group = sambashare
force create mode = 770
force directory mode = 770
inherit permissions = yes
3.Samba 自動起動設定
下記コマンドを実行して、Samba が自動起動するようにする。
systemctl enable smbd
4.Samba 再起動
下記コマンドを実行して、Samba を再起動する。
systemctl restart smbd
最後に
確か、これで全部だった気がする…。
ちなみに EpgStation の番組表が歯抜けになった時は、docker compose down で全て落としてから再度起動させると改善した。
なんでかは知らない。(´・ω・`)