Docker+PX-W3PE4+Mirakurun+EPGStation
動いています
■Dockerで録画(更新が早く再現性が悪くなりました)
このサイトを参考(コピペです)にしています
たまたま記事を読みインストールしてみたら・・・
使っていないPC:ubuntu desktop 20.04 LTS
CPU:Celeron
メモリ:8G
TVチューナー:PX-W3PE4
非公式版ドライバーまでインスト済みであること
このPCはディスクトップですがリモートで動かしています
Docker / Docker Compose のインストール
参考サイト-1参考サイト-2
------------ Docker,Docker-Composeをインストールをする 2021-3-26 ------------
# セットアップ用スクリプトを導入
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
#自動的にDocker Engineも起動させる
sudo systemctl enable docker
#Docker Compose のセットアップ
#現時点のバージョンのバイナリをダウンロードし、パスの通った場所に設置します
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#グループ確認。グループを作成するなら sudo groupadd docker
cat /etc/group | grep docker
#グループに入ります
sudo usermod -aG docker $USER
#グループに入ったら、1度ログアウトして入り直すか下記を実行
newgrp docker
#Dockerのバージョン確認
docker-v
#テストイメージを試します(下記を実行)。ダウンロードして、コンテナー内で実行します
#コンテナーが起動すると、メッセージを表示して終了します
#DockerのSign Upがまだなら実行できません
docker run hello-world
#docker-composeのバージョン確認
docker-compose --version
sudo docker-compose build
#Mirakurunのインストール前提条件
#Docker, docker-compose の導入が済んでいる
#ホスト上の pcscd は停止する
#チューナーのドライバが適切にインストールされていること
# docker-mirakurun-epgstation インストールガイド
#node,python,gcc,ffmpegをインストールをする
#ホストマシン上のpcscdは停止。Mirakurunコンテナ内で管理
sudo systemctl stop pcscd.socket
sudo systemctl disable pcscd.socket
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/config.sample.yml 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
#docker-compose.ymlの設定を適宜変更する。devicesの項目を注意する。設定を表示
nano docker-compose.yml
#チューナー設定表示
nano mirakurun/conf/tuners.yml
#チャンネル設定表示
nano mirakurun/conf/channels.yml
docker-compose run --rm -e SETUP=true mirakurun
#起動(時間がかかります)
sudo docker-compose up -d
#ブラウザから確認します
ローカルからmirakurunにアクセス http://192.168.3.4:40772/
ローカルからEPGStationにアクセス http://192.168.3.4:8888/#/
#停止から更新をします
sudo docker-compose down
#更新
#mirakurunとdbを更新
sudo docker-compose pull
# epgstationを更新
sudo docker-compose build --pull
# 最新のイメージを元に起動
sudo docker-compose up -d
# status表示
docker-compose ps
------------- end --------------
# アンインストール (古いバージョンがインストールされている場合)
# Docker CEを削除する
sudo apt-get purge docker-ce
# dockerイメージやコンテナも削除する
sudo rm -rf /var/lib/docker
sudo rm /usr/local/bin/docker-compose
# Dockerを使ってて自動でインストールされたもう不要なパッケージを削除する
//sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get autoremove
sudo apt-get autoclean
sudo groupdel docker
# Docker のインストール
sudo curl -sSL https://get.docker.com/ | CHANNEL=stable sh
# dockerの実行確認
sudo systemctl status docker
# ユーザーで Docker コマンドを利用可能にする
#グループに追加しておきます
sudo usermod -aG docker $USER
newgrp docker
# Docker Compose のインストール
-----------------------
最新のバージョンを確認
https://github.com/docker/compose/releases
1.28.0-rc1の部分を最新のバージョンに書き直す
-----------------------
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.0-rc1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 確認
docker version
20.10.0
docker-compose version
1.28.0-rc1
Docker-Mirakurunのインストール
元サイトはここですホスト上の pcscd は停止が条件。コンテナ内で管理しているようです
mkdir docker
cd docker
git clone https://github.com/l3tnun/docker-mirakurun-epgstation -b vaapi
cd docker-mirakurun-epgstation
docker-compose.ymlの変更
docker-compose.ymlを表示,ダウンロード
エディタで編集をします(位置-> ~/docker/docker-mirakurun-epgstation/)
nano docker-compose.yml
変更の箇所
19行目からのデバイスの部分
devices:
- /dev/px4video0:/dev/px4video0
- /dev/px4video1:/dev/px4video1
- /dev/px4video2:/dev/px4video2
- /dev/px4video3:/dev/px4video3
- /dev/bus/usb/00x/00x # card readerカードリーダのUSBポート
#restart: always
24行目のカードリーダのUSBポートを調べて書き込みます
'lsusb'コマンドを打ち込みますと下記のような表示がでます
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0511:023f N'Able (DataBook) Technologies, Inc. PXW3PE4
Bus 001 Device 003: ID 08e6:3437 Gemalto (was Gemplus) GemPC Twin SmartCard Reader
Bus 001 Device 002: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
'GemPC Twin SmartCard Reader'の行から書き直します
- /dev/bus/usb/001/003 # card readerカードリーダのUSBポート
全部の'restart: always'の行をコメントアウト(3箇所の先頭の'#'を削除)します
現状、録画されたファイルは下記のホルダーの中です
~/docker/docker-mirakurun-epgstation/recorded
録画ファイル保存先
また録画ファイルはプロジェクトフォルダ内の./recordedに保存されます
保存先を別HDDにしたい場合は、docker-compose.ymlの./recordedを変更することで保存先を変更可能
./recorded:/usr/local/chinachu/recorded
tuners.yml チューナー設定
エディタで編集をしますcd ~/docker/docker-mirakurun-epgstation/mirakurun/conf/
nano tuners.yml
tuners設定
sudo EDITOR=nano mirakurun config tuners
チューナ設定を表示,ダウンロード
(注意)なお、recpt1コマンドオプションの”–lnb 15”はBS/CSチューナーの15V給電なので、今まで指定せずに問題なく動作している場合は削除して良いです
channels.yml チャンネル設定
エディタで編集をします(位置-> ~/docker/docker-mirakurun-epgstation/mirakurun/conf/)nano channels.yml
channels設定(関東圏)
全部入っています。ここから使うチャンネルをチョイスします
地デジ・BS・CS設定ファイルを表示
自分用ではこんなものです
地デジ・BS設定ファイルを表示
ダウンロード
コンテナ起動
作業をします(ここは時間がかかります
cd ~/docker/docker-mirakurun-epgstation/
sudo docker-compose pull && docker-compose build --no-cache && docker-compose up -d
-------ここでエラーがでた場合(Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.)---------
グループに追加したら実行が出来ました。最初から追加しておきましょう
sudo usermod -aG docker $USER
newgrp docker
-----------------------------
プロンプトが返ってきても、MirakurunとEPGStationが番組表を読み込むまでは利用できない
EPGデータ取得状況(ローカルアドレス 192.168.3.4)
http://192.168.3.4:40772/api/channels
途中で開けてみると数は少ないですが取得できています
失敗は全部の箇所でデータが空です。「"services":[]」の大括弧が空です
{"type":"GR","channel":"16","name":"MX","services":[]}
この場合は設定ファイルを見直しましょう
EPGStationを開く
http://192.168.3.4:8888
取得できていなくても成功なら歯抜けで、番組が表示されています
sudo docker-compose pull
sudo docker-compose build --no-cache
sudo docker-compose up -d
停止は
sudo docker-compose down
再起動
sudo docker-compose restart
コンテナの一覧表示
sudo docker-compose ps
ステータスを確認
docker ps -a
サーバーを再起動させるとEGPStarionに入れなくなる
確認と'docker-compose'のリセットで動きます
cd ~/docker/docker-mirakurun-epgstation/
sudo docker-compose ps
動いているがEGPStationには入れなかった
Name Command State Ports
--------------------------------------------------------------------------------
epgstation /bin/sh -c npm start Exit 137
mirakurun /bin/sh -c /etc/init.d/pcs Up 0.0.0.0:40772->40772/tcp
...
mysql docker-entrypoint.sh mysql Exit 0
...
再起動をする
sudo docker-compose restart
結果
Restarting epgstation ... done
Restarting mysql ... done
Restarting mirakurun ... done
これで入れるようになり番組表が見れるようになった
ログの確認
~/docker/docker-mirakurun-epgstation/epgstation/logs/Operator/stream.log
~/docker/docker-mirakurun-epgstation/epgstation/logs/Operator/access.log
~/docker/docker-mirakurun-epgstation/epgstation/logs/Operator/system.log
~/docker/docker-mirakurun-epgstation/epgstation/logs/Service/stream.log
~/docker/docker-mirakurun-epgstation/epgstation/logs/Service/access.log
~/docker/docker-mirakurun-epgstation/epgstation/logs/Service/system.log