Meaningless Notebook

我輩は雑記帖である。名はまだない。


半年前に構築した内容を記事にする奴が居るらしい。

ハ-ドウェア構成

マザ-ボ-ド、CPU、メモリは以前のコレを流用した。

新規で購入した物の総計で 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 で全て落としてから再度起動させると改善した。

なんでかは知らない。(´・ω・`)

参考元


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です