EPGStation-PLEXtuner-Ubuntu 22.04-自宅録画サーバー

2022年5月現在、入手可能な以下4点を利用して、自宅録画サーバーを簡単に作る方法を紹介します。

PLEXチューナーが接続、あるいは搭載されたPCがあれば、
Ubuntu 22.04インストールに20分
自宅録画サーバー完成まで 15分。
更に20分待てば、EPGStationで予約録画ができるようになります。

  1. Ubuntu LTS 22.04 日本語Remix
  2. EPGStation Mirakurun docker版
  3. 非公式Linuxドライバ for PLEX TVチューナー
  4. PLEX TVチューナー
    (PX-Q3PE4/5、PX-W3PE4/5)
    (PX-MLT5PE、PX-MLT8PE)
    (PX-Q3U4、PX-W3U4)

<2022年1月版からの改訂ポイント>

  • Ubuntu 22.04 LTS 日本語Remixで動作確認
  • BS新3チャンネル対応
  • スクリプトのディレクトリ整理
  • 3種のツール追加(エンコードオプション、簡単samba、Munin)

用意するもの

No.品名説明
1B-CASカード
2USB接続カードリーダー例えば、SCR3310v2.0
3PLEX社製TVチューナーPX-Q3PE4/5,
PX-W3PE4/5,
PX-Q3U4,
PX-W3U4,
PX-MLT5PE,
PX-MLT8PE
4アンテナケーブル
5LANケーブルかWiFi
6PCUbuntu 22.04がインストールできるPC
B-CASカード
USB接続カードリーダー
PLEX社製TVチューナー
アンテナケーブル
PC

PLEX TVチューナーには、使用できるPCに以下の制限があります。

PCW3U4
Q3U4
W3PE4
Q3PE4
MLT5PE
W3PE5
Q3PE5
MLT8PE
フルハイトの
PCI Expressカード
が使える

内部USBポート
接続が必要

内部USBポート
接続が必要
ロープロファイルの
PCI Expressカード
が使える

内部USBポート
接続が必要
PCI Expressカード
が使えないが
USBポートがある

それ以外に制約はありませんが、推奨事項がいくつかあります。

  • CPU
    第6世代 Intel Core i3 以上が推奨。
  • ストレージ
    システム用と録画データ用を分ける。
    システム用は、120GB以上のSSD、録画データ用は、HDDが推奨。
  • 電源
    TSからmp4へトランスコードを行う場合は、400W以上の安定した電源が望ましい。

ハードウェアの準備

  1. PCを組み立てます。
  2. (W3U4、Q3U4の場合)
    外部USBポートに接続します。
    (W3PE5、Q3PE5の場合)
    PLEX TVチューナーをPCI Expressのスロットに入れます。
    (W3PE4、Q3PE4、MLT5PE、MLT8PEの場合)
    PLEX TVチューナーをPCI Expressのスロットに入れます。
    内部USBポートとTVチューナーカードを接続します。
  3. B-CASカードをUSB接続カードリーダーに挿入する。
    B-CASカードの裏面を上にして挿入する。
  4. USB接続カードリーダーを外部USBポートに接続する。
  5. LANケーブルをPCに接続するか、WiFiを用意する。
  6. 準備した例を以下に示します。

事前準備

  1. 既に稼働しているdocker版EPGStationがある場合は、バックアップをしてください。
  2. Ubuntu 22.04をインストールします。
  3. root以外のユーザーでログインしてください。
    例えば、euserというユーザーを作成し、euserでログインします。
  4. インストールスクリプトをダウンロードします。
  5. ダウンロードしたファイルをホームディレクトリに展開します。
    ダウンロードディレクトリを表示します。
    「temp-20220523T004118Z-001.zip」をダブルクリックします。

    「temp」を右クリックしてメニューを表示し、「展開」をクリックします。

    「ホーム」をクリックして、「展開」をクリックします。

    「アーカイブの展開が完了しました」と表示されたら、「ファイル表示」をクリックします。

    「ホーム」の配下に「temp」ディレクトリができたことを確認します。
  6. 「端末」アプリを開く。
    画面左下の「アプリケーションを表示する」をクリックします。

    「端末」を左クリックして、「お気に入りに追加」をクリックします。

    画面左のメニューから「端末」をクリックします。

インストールの実行

  1. 「端末」を実行して、スクリプトを確認します。
    euser@pc:~$ cd ~/temp/epg-plex
    euser@pc:~/temp/epg-plex$ ls -la
    合計 48
    drwxrwxr-x 3 euser euser 4096  5月 23 09:31 .
    drwxrwxr-x 4 euser euser 4096  5月 23 09:32 ..
    -rw-rw-r-- 1 euser euser  212  8月 28  2021 1-preprocess.sh
    -rw-rw-r-- 1 euser euser   85  8月 28  2021 2-carddriver.sh
    -rw-rw-r-- 1 euser euser  116  8月 28  2021 3-checkcard.sh
    -rw-rw-r-- 1 euser euser  576  8月 28  2021 4-tunerdriver.sh
    -rw-rw-r-- 1 euser euser   27  8月 28  2021 5-checktuner.sh
    -rw-rw-r-- 1 euser euser 1120  5月 17 02:00 6-install-mlt5.sh
    -rw-rw-r-- 1 euser euser 1120  5月 17 02:01 6-install-mlt8.sh
    -rw-rw-r-- 1 euser euser 1110  5月 17 02:02 6-install-q.sh
    -rw-rw-r-- 1 euser euser 1114  5月 17 02:02 6-install-w.sh
    drwxrwxr-x 2 euser euser 4096  5月 20 13:50 data
  2. スクリプトを順番に実行していきます。
    euser@pc:~/temp/epg-plex$ bash 1-preprocess.sh
    euser@pc:~/temp/epg-plex$ bash 2-carddriver.sh
    euser@pc:~/temp/epg-plex$ bash 3-checkcard.sh
    euser@pc:~/temp/epg-plex$ bash 4-tunerdriver.sh

    ここで自動的にリブートします。(ここまで5分
    リブート後端末を開き、~/temp/epg-plexまで戻ります。

    euser@pc:$cd ~/temp/epg-plex
    euser@pc:~/temp/epg-plex$ bash 5-checktuner.sh

    チューナードライバを確認したら、最後のインストールです。(ここから10分
    <Q3PE4/5、Q3U4>の場合

    euser@pc:~/temp/epg-plex$ bash 6-install-q.sh
    

    <W3PE4/5、W3U4>の場合

    euser@pc:~/temp/epg-plex$ bash 6-install-w.sh
    

    <MLT5PE>の場合

    euser@pc:~/temp/epg-plex$ bash 6-install-mlt5.sh
    

    <MLT8PE>の場合

    euser@pc:~/temp/epg-plex$ bash 6-install-mlt8.sh
    

実行時の詳細画面

  1.  1-preprocess.sh
    以下のスクリプトを実行します。

    euser@pc:~/temp/epg-plex$ bash 1-preprocess.sh
    

    結果は、以下のとおりです。

    docker-compose (1.29.2-1) を展開しています...
    python3-dotenv (0.19.2-1) を設定しています ...
    python3-distutils (3.10.4-0ubuntu1) を設定しています ...
    python3-attr (21.2.0-1) を設定しています ...
    python3-texttable (1.6.4-1) を設定しています ...
    python3-docopt (0.6.2-4) を設定しています ...
    python3-setuptools (59.6.0-1.2) を設定しています ...
    python3-pyrsistent:amd64 (0.18.1-1build1) を設定しています ...
    python3-websocket (1.2.3-1) を設定しています ...
    python3-dockerpty (0.4.1-2) を設定しています ...
    python3-docker (5.0.3-1) を設定しています ...
    python3-jsonschema (3.2.0-0ubuntu2) を設定しています ...
    docker-compose (1.29.2-1) を設定しています ...
    man-db (2.10.2-1) のトリガを処理しています ...
    docker-compose version 1.29.2, build unknown
    

    docker、docker-composeなどをインストールし、準備を完了します。

  2. 2-carddriver.sh
    以下のスクリプトを実行します。

    euser@pc:~/temp/epg-plex$ bash 2-carddriver.sh
    

    結果は以下のとおりです。

    + Historical bytes: 
    + TCK = 99 (correct checksum)
    
    Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
    3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
    	Japanese Chijou Digital B-CAS Card (pay TV)
    

    ctrl-cを入力して、スクリプトを終了します。
    これで、B-CASカードが有効になります。

  3. 3-checkcard.sh
    以下のスクリプトを実行します。

    euser@pc:~/temp/epg-plex$ bash 3-checkcard.sh
    

    結果は以下のとおりです。

    ○ pcscd.socket - PC/SC Smart Card Daemon Activation Socket
         Loaded: loaded (/lib/systemd/system/pcscd.socket; disabled; vendor preset:>
         Active: inactive (dead)
       Triggers: ● pcscd.service
         Listen: /run/pcscd/pcscd.comm (Stream)
    
     5月 23 10:22:29 motown systemd[1]: Listening on PC/SC Smart Card Daemon Activa>
     5月 23 10:23:51 motown systemd[1]: pcscd.socket: Deactivated successfully.
     5月 23 10:23:51 motown systemd[1]: Closed PC/SC Smart Card Daemon Activation S>
    lines 1-9/9 (END)
    

    「Active: inactive (dead)」を確認した後、
    ctrl-cを入力して、スクリプトを終了します。

  4. 4-tunerdriver.sh
    以下のスクリプトを実行します。

    euser@pc:~/temp/epg-plex$ bash 4-tunerdriver.sh
    

    結果は以下のとおりです。

    px4_drv.ko:
    Running module version sanity check.
     - Original module
       - No original module exists within this kernel
     - Installation
       - Installing to /lib/modules/5.15.0-30-generic/updates/dkms/
    
    Running the post_install script:
    './etc/99-px4video.rules' -> '/etc/udev/rules.d/99-px4video.rules'
    
    depmod....
    ドライバがインストールされました。enterキーを押すとリブートします。
    

    TVチューナーのドライバがインストールされました。
    enterキーを押してリブートしてください。

  5. 5-checktuner.sh
    以下のスクリプトを実行します。

    euser@pc:~/temp/epg-plex$ bash 5-checktuner.sh
    

    TVチューナーの非公式ドライバが正常にインストールされたことを確認します。
    Q3PE4/5、Q3U4の場合は、以下のように表示されます。

    crw-rw-r-- 1 root video 239, 0  3月 29 17:48 /dev/px4video0
    crw-rw-r-- 1 root video 239, 1  3月 29 17:48 /dev/px4video1
    crw-rw-r-- 1 root video 239, 2  3月 29 17:48 /dev/px4video2
    crw-rw-r-- 1 root video 239, 3  3月 29 17:48 /dev/px4video3
    crw-rw-r-- 1 root video 239, 4  3月 29 17:48 /dev/px4video4
    crw-rw-r-- 1 root video 239, 5  3月 29 17:48 /dev/px4video5
    crw-rw-r-- 1 root video 239, 6  3月 29 17:48 /dev/px4video6
    crw-rw-r-- 1 root video 239, 7  3月 29 17:48 /dev/px4video7
    

    W3PE4/5、W3U4の場合は、以下のように表示されます。

    crw-rw-r-- 1 root video 239, 0  3月 29 17:48 /dev/px4video0
    crw-rw-r-- 1 root video 239, 1  3月 29 17:48 /dev/px4video1
    crw-rw-r-- 1 root video 239, 2  3月 29 17:48 /dev/px4video2
    crw-rw-r-- 1 root video 239, 3  3月 29 17:48 /dev/px4video3
    

    MLT5PEの場合は、以下のように表示されます。

    crw-rw-r-- 1 root video 237, 0  9月 13 13:53 /dev/pxmlt5video0
    crw-rw-r-- 1 root video 237, 1  9月 13 13:53 /dev/pxmlt5video1
    crw-rw-r-- 1 root video 237, 2  9月 13 13:53 /dev/pxmlt5video2
    crw-rw-r-- 1 root video 237, 3  9月 13 13:53 /dev/pxmlt5video3
    crw-rw-r-- 1 root video 237, 4  9月 13 13:53 /dev/pxmlt5video4
    

    MLT8PEの場合は、以下のように表示されます。

    crw-rw-r-- 1 root video 237, 0  9月 13 13:53 /dev/pxmlt8video0
    crw-rw-r-- 1 root video 237, 1  9月 13 13:53 /dev/pxmlt8video1
    crw-rw-r-- 1 root video 237, 2  9月 13 13:53 /dev/pxmlt8video2
    crw-rw-r-- 1 root video 237, 3  9月 13 13:53 /dev/pxmlt8video3
    crw-rw-r-- 1 root video 237, 4  9月 13 13:53 /dev/pxmlt8video4
    crw-rw-r-- 1 root video 237, 5  9月 13 13:53 /dev/pxmlt8video5
    crw-rw-r-- 1 root video 237, 6  9月 13 13:53 /dev/pxmlt8video6
    crw-rw-r-- 1 root video 237, 7  9月 13 13:53 /dev/pxmlt8video7
    

    もし、ドライバが表示されない場合は、原因を調査します。
    解決しない場合は、先に進めません。

  6. 6-install
    インストールの最後のステップです。PLEX TVチューナー対応docker版mirakurun、mysql、epgstationをインストールします。
    (a) PX-Q3PE4/5、PX-Q3U4の場合、6-install-q.sh

    euser@pc:~/temp/epg-plex$ bash 6-install-q.sh
    

    (b) PX-W3PE4/5、PX-W3U4の場合、6-install-w.sh

    euser@pc:~/temp/epg-plex$ bash 6-install-w.sh
    

    (c) PX-MLT5PEの場合は、6-install-mlt5.sh

    euser@pc:~/temp/epg-plex$ bash 6-install-mlt5.sh
    

    (d) PX-MLT8PEの場合は、6-install-mlt8.sh

    euser@pc:~/temp/epg-plex$ bash 6-install-mlt8.sh
    

    スクリプト実行後、約10分で以下が表示されれば「インストール完了」です。

    Successfully built af61c6cadc6a
    Successfully tagged docker-mirakurun-epgstation_epgstation:latest
    Creating network "docker-mirakurun-epgstation_default" with the default driver
    Creating volume "docker-mirakurun-epgstation_mysql-db" with local driver
    Creating mirakurun           ... done
    Creating mysql-epgstation-v2 ... done
    Creating epgstation-v2       ... done
    
  7. Mirakurunの稼働確認
    ブラウザでMirakurunの稼働を確認する。
    「http://localhost:40772」

    2022年5月25日現在、Mirakurun 3.8.0がインストールできます。
    Mirakurun 3.8.0は固定です。3.8.0以降のバージョンで、メモリーリークやEPGStationで番組表が更新できないなどの不具合が発生したためです。今までMirakurun 3.8.0を使って、EPGStationで問題は発生していません。
  8. EPGStationの稼働確認
    ブラウザでEPGStationの稼働を確認する。
    「http://localhost:8888」

    2022年5月25日現在、EPGStation 2.6.20がインストールできます。
    BSの番組表の方が、地デジの番組表より早く表示されます。
    地デジの1週間後の番組表が表示されるまで、およそ20分かかります。

追加インストール情報

本記事の手順でEPGStationをインストールした後、参考になる記事は以下のとおりです。

ストレージの拡張について

トランスコードの最適化について

sambaについて

muninについて

関連記事

コメント12件

  • ubunto初心者 より:

    ありがとうございました。環境構築完了しました。
    外付けHDDに録画ができたのですが、アクセス権が
    612616 -rw-r–r– 1 root video 627311068
    となり、毎回chmodで変更しております。
    録画の状態でアクセス権の設定は可能でしょうか。
    素人質問で申し訳ございません。回答いただけたら幸いです。

  • simplelife より:

    ubunto初心者さん

    EPGStationの仕様で、アクセス権はそうなりますね。そのままでも、視聴やコピーするには問題ないと思いますが。
    なぜchmodするんですか?

  • simplelife より:

    ubunto初心者さん

    ちょっと調べてみましたが、EPGStationのconfig.ymlの中で、グループやユーザー(gid、uid)を指定できるようです。
    デフォールトがrootなんですね。
    実を言うと、私も時々ファイル名を変更しようとして、「なんでroot?」と思うことはあります。
    しかし、gid、uidを使ったことはないので、うまく使えるか確認してもらえると助かります。

  • simplelife より:

    ubunto初心者さん

    先程試してみました。epgstation/config/config.ymlにuid: 1000
    と入れて、リブートしたら、うまくいきました。

  • ubunto初心者 より:

    ありがとうございました。こちらも設定できました。
    別なマシンでトランスコードするので、移動するためにchmodが必要でした。

  • simplelife より:

    ubunto初心者さん

    できましたか。良かったです。
    他のマシンでトランスコードですか、なるほど。
    半年前に、i5-10400で地デジ6チャンネル全録でMP4トランスコードしましたが、1台で全部こなせました。
    先日購入したi3-12100でもトランスコードは6倍速で、CPU温度も最高で70℃くらいに収まりました。
    今後は、Ubuntu 22.04では、ffmpeg 4.4.1が標準でインストールできるので、qsvが簡単に使えるようになるかもしれません。

  • id1028 より:

    お世話になります、
    前回のバージョンの記事を拝見させていただきながら、構築しました(お世話になりました。)
    しかしながら、今回のバージョンへ移行する際に、以前の予約データ等も引き継ぎたく、
    試行錯誤しました。(ubuntu自体理解してなかったので心が折れそうになりました)
    下記コマンドにより解決しましたので報告です。
    <旧環境>
    cd /home//git/docker-mirakurun-epgstation/
    docker exec -i -t epgstation-v2 bash
    npm run backup
    コンテナから抜ける ※1参照
    sudo docker cp epgstation-v2:/app/

    /home//git/docker-mirakurun-epgstation/epgstation/thumbnail
    もバックアップ取っておいた方が良い

    <新環境>※すべてインストール完了/起動してから
    sudo docker cp epgstation-v2:/app/
    docker exec -i -t epgstation-v2 bash
    npm run restore
    コンテナから抜ける ※1参照

    ※1コンテナから抜ける時は、Ctrlボタンを押しながら、Pキーを押して、その次にQキーを押すとデタッチすることができる。

    ubuntu初心者にとっては、このようなことも難しく感じるので共有しておきます。

  • simplelife より:

    id1028さん

    素晴らしい情報ありがとうございます。私もルールだけ新しい方に移したいと思ってました。
    確かに、以下の情報がバックアップできると書いてありますね。

    予約情報
    録画済み番組情報
    録画履歴
    録画予約ルール

    私の場合、予約ルール以外は必要ない(Plex Media Serverで管理)ので、
    他は消す方法も考えたいです。
    コメントでいろいろ気づくことが多く、ありがたいです。今後もよろしくお願いします。

  • term より:

    お世話になります。
    上記手順にしたがって実行していたのですが、手順6(PX-W3PE4使用)でどうやらmirakurunのインストールがうまく行っていないようです。以下に実行結果の最終部分をコピペします。
    なにかお分かりになりましたらご教授いただきたいです。

    ———–
    Successfully built b745ba99f964
    Successfully tagged docker-mirakurun-epgstation_epgstation:latest
    Recreating mirakurun …
    Recreating mirakurun … error

    ERROR: for mirakurun Cannot start service mirakurun: error gathering device information while adding custom device “/dev/px4video4”: no such file or directory

    ERROR: for mirakurun Cannot start service mirakurun: error gathering device information while adding custom device “/dev/px4video4”: no such file or directory
    ERROR: Encountered errors while bringing up the project.

  • simplelife より:

    termさん

    PX-W3PE4というのは、px4video3までしかありません。px4video4がないのは、当然です。

    PX-W3PE4で実行するスクリプトは、「bash 6-install-w.sh」です。再度確認して下さい。

  • term より:

    simplelife様

    夜分遅くに返信くださりありがとうございました。
    エラーを見れば簡単に分かりましたね。
    早とちりでコメントをしてしまい失礼しました。

    確かに-qを実行していました。-wの実行で問題なくいけました。

    今後ともよろしくお願いいたします。

  • simplelife より:

    termさん

    速いですね。無事インストールできて良かったです。
    まあ、ドライバの状態を判断すれば、最後のスクリプトは1つにできます。
    1つにすれば、今回のようなことも起こりません。今後検討します、

  • コメントを残す

    メールアドレスが公開されることはありません。

    CAPTCHA


    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください