Debian 10 Busterで録画環境を構築する

Debianはあまりにも更新を怠るとapt updateしたときに404が帰ってくることを知った。ちょうど時間があったのでリポジトリを書き換えてアップデートするくらいなら、いっそクリーンな環境で構築し直そう。というわけで次の環境で構築してみる。

 

環境

  • Debian 10 Buster
  • Mirakurun + EPGStation on Docker
  • PT3

 

もくじ

Debianのインストール

 実は環境構築時点でDebian 10はリリースされていないのでテスト版をダウンロードしてくる。

www.debian.org


OSイメージをダウンロードしたらディスクなりUSBに焼いてインストールする。デスクトップ環境はいらないのでインストール時に除外した。

 

Docker CE のインストール

いつの間にかDockerがCEとEEに分離してて何が違うんだろうと思っていたら、CEはCommunity Editionでいわゆる無償版、EEはEnterprise Editionで商用版らしい。いずれにしろDebianにはCEしかインストールできないようだが、それはさておき公式の手順に沿って進める。

docs.docker.com


まっさらなDebianにはsudoが入ってないのでまずsudoを入れる。

# apt install sudo

visudoでログインユーザーのsudoを許可する。

# visudo

mdoca ALL=(ALL:ALL) ALL

あとは手順通りに進める。

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Dockerのfingerprintを検索してキーがあることを確かめる。

$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Docker Composeのインストール

これも公式の手順に従って導入する。
docs.docker.com

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

Mirakurun、EPGStationの導入

便利なことにMirakurun + EPGStationのDockerコンテナがあるのでそちらを使うことにする。
github.com

Readme.mdを見ると前提条件にPT3+m-tsudo/pt3の利用を想定と書いてあるので、ホストOSにm-tsudo/pt3ドライバを導入する。

$ sudo apt install git build-essential dkms
$ git clone https://github.com/m-tsudo/pt3.git
$ cd pt3
$ make
$ sudo make install
$ sudo bash ./dkms.install
$ sudo echo "blacklist earth_pt3" >> /etc/modprobe.d/blacklist.conf
$ sudo reboot now

再起動後、PT3ドライバがロードされていることを確かめる。

$ lsmod | grep pt3

pt3_drv                53248  2

Readme.mdに書かれている通りに進める。

$ git clone https://github.com/l3tnun/docker-mirakurun-epgstation.git
$ cd docker-mirakurun-epgstation
$ sudo docker-compose pull
$ sudo docker-compose build

デフォルトのチャンネル設定だとMXが受信できないので16から20に変更する。

$ vim mirakurun/conf/channels.yml

- name: MX
  type: GR
  channel: '20'

カードリーダーのパスを確かめる。

$ lsusb

Bus 002 Device 002: ID 4971:8017 SimpleTech
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 04e6:5120 SCM Microsystems, Inc. SCR331-DI SmartCard Reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

ここではBus 001 Device 002がカードリーダーである。

構成ファイルのコメントアウトされている restart や user の設定やカードリーダーのパスなどを適宜変更する。

$ vim docker-compose.yml

        devices:
            - /dev/pt3video0:/dev/pt3video0
            - /dev/pt3video1:/dev/pt3video1
            - /dev/pt3video2:/dev/pt3video2
            - /dev/pt3video3:/dev/pt3video3
            - /dev/bus/usb/001/002

設定し終えたらコンテナを起動する。

$ sudo docker-compose up -d

ブラウザから録画機にアクセスしてメイン画面が表示されればOK。始めは番組表が空だが、しばらく待つと表示される。それでも実は動いてないんじゃないかって不安になるので

$ sudo docker-compose logs -f

でログを眺めてエラーが出てないことを確かめる。

完成

f:id:mdoca:20190626223733p:plain