2024年12月版 1時間で作れる自宅録画サーバー(Ubuntu 24.04.1LTS)

<2024年12月27日>変更とお知らせ
(1) 変更 2-carddriver.shが正常に実行できない現象が報告されたので、
pcsc_scan → sudo pcsc_scanに変更しました。
(2) お知らせ Ubuntu 24.04.1とEPGStation 2.10.0の環境で、
以下2点の不具合が発生しています。
・FFmpeg 7.0でエンコードの進捗状況が表示されない #689
・v2.10.0でencodingFinishCommandが実行されない #705

Ubuntu 24.04.1で、自宅録画サーバーをインストールするスクリプトを作成しました。
誰でも1時間あれば、自宅録画サーバーをインストールできます。

2023年8月版からの変更点は、以下の通りです。

  • docker compose対応
  • 非公式Linuxドライバ for PLEXのUbuntu 24.04.1への対応
  • Ubuntu 24.04.1での動作確認

インストールの準備

ハードウェアの準備に関しては、以下の記事を参照してください。

Ubuntu 24.04.1LTSのインストールは、以下の記事を参照してください。

準備が完了したら、自宅録画サーバーのインストールを行います。
インストールをする際は、rootではなく、作成したユーザーでログインしてから始めてください。

自宅録画サーバーのインストール概要

インストールの手順は、以下のとおりです。

  1. インストールファイル「2024epg-plex」をダウンロードする。
  2. インストール環境の整備(dockerなど)
  3. BCASカードリーダーのドライバインストール
  4. PLEX製TVチューナーのドライバインストール
  5. Mirakurun、EPGStationのインストール

以上で、自宅録画サーバーが使えるようになります。

インストールの手順

まず以下のファイルをダウンロードしてください。

ダウンロードが完了したら、ダウンロードフォルダを開きます。

「2024epg-plex.zip」ファイルをダブルクリックします。

「2024epg-plex」フォルダが、ダウンロードフォルダ内に展開できたことを確認したら、Ubuntuのアプリケーション「端末」を開きます。

上記「端末」の画面のように、「~/ダウンロード/2024epg-plex」まで移動すれば、準備完了です。

以下の順番でシェルスクリプトを実行していきます。

bash 1-preprocess.sh
bash 2-carddriver.sh
bash 3-checkcard.sh
bash 4-tunerdriver202412.sh
bash 5-checktuner.sh

最後は、TVチューナーカードの種類で分かれます。

(a) Q3PE4/5、Q3U4の場合は、6-install-q.sh

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

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

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

インストールが完了したら、ブラウザを開いてください。
Mirakurunの動作確認「http://localhost:40772」
EPGStationの動作確認「http://localhost:8888」

以上で完了です。

インストールのチェックポイント

インストール用シェルスクリプトを実行した際に、正常に終了したことをチェックしていきます。

1.1-preprocess.sh
epg@station:~/ダウンロード/2024epg-plex$ bash 1-preprocess.sh

実行した結果で最後の2行をチェックしてください。

Docker version 27.4.0, build bde2b89
Docker Compose version v2.31.0
2.2-carddriver.sh

epg@station:~/ダウンロード/2024epg-plex$ bash 2-carddriver.sh

実行した結果で最後の3行をチェックしてください。

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]キーを同時に押して、スクリプトを終了します。

3. 3-checkcard.sh
epg@station:~/ダウンロード/2024epg-plex$ bash 3-checkcard.sh

実行した結果で最後の5行をチェックしてください。

○ pcscd.socket - PC/SC Smart Card Daemon Activation Socket
     Loaded: loaded (/usr/lib/systemd/system/pcscd.socket; disabled; preset: en>
     Active: inactive (dead)
   Triggers: ● pcscd.service
     Listen: /run/pcscd/pcscd.comm (Stream)

「Active: inactive (dead)」で、Inactiveが確認できれば、問題ありません。
確認できたら、[CTRL]キーと[C]キーを同時に押して、スクリプトを終了します。

4. 4-tunerdriver202412.sh
epg@station:~/ダウンロード/2024epg-plex$ bash 4-tunerdriver202412.sh

実行した結果で最後の5行をチェックしてください。

Running the post_install script:
'./etc/99-px4video.rules' -> '/etc/udev/rules.d/99-px4video.rules'
'./etc/it930x-firmware.bin' -> '/lib/firmware/it930x-firmware.bin'
depmod...
ドライバがインストールされました。enterキーを押すとリブートします。

確認できたら、[ENTER]キーを押して、システムを再起動します。

5.5-checktuner.sh
epg@station:~/ダウンロード/2024epg-plex$ bash 5-checktuner.sh

実行した結果をチェックしてください。

(Q3PE4/5、Q3U4の場合)

crw-rw-r-- 1 root video 234, 0 12月 11 11:37 /dev/px4video0
crw-rw-r-- 1 root video 234, 1 12月 11 11:37 /dev/px4video1
crw-rw-r-- 1 root video 234, 2 12月 11 11:37 /dev/px4video2
crw-rw-r-- 1 root video 234, 3 12月 11 11:37 /dev/px4video3
crw-rw-r-- 1 root video 234, 4 12月 11 11:37 /dev/px4video4
crw-rw-r-- 1 root video 234, 5 12月 11 11:37 /dev/px4video5
crw-rw-r-- 1 root video 234, 6 12月 11 11:37 /dev/px4video6
crw-rw-r-- 1 root video 234, 7 12月 11 11:37 /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

(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

(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

ここまで確認できたら、最後のシェルスクリプトを実行します。
ドライバのインストールが確認できない場合は、ここで中断して原因を調べてください。

6. 6-install

インストールの最後のステップです。
PLEX TVチューナー対応docker版mirakurun、mysql、epgstationをインストールします。

(a) PX-Q3PE4/5、PX-Q3U4の場合、6-install-q.sh

epg@station:~/ダウンロード/2024epg-plex$ bash 6-install-q.sh 

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

epg@station:~/ダウンロード/2024epg-plex$ bash 6-install-w.sh

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

epg@station:~/ダウンロード/2024epg-plex$ bash 6-install-mlt8.sh

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

epg@station:~/ダウンロード/2024epg-plex$ bash 6-install-mlt5.sh 

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

[+] Running 5/5
 ✔ Network docker-mirakurun-epgstation_default    Created                  0.1s 
 ✔ Volume "docker-mirakurun-epgstation_mysql-db"  Created                  0.0s 
 ✔ Container mirakurun                            Started                  0.4s 
 ✔ Container mysql-epgstation-v2                  Started                  0.3s 
 ✔ Container epgstation-v2                        Started                  0.5s 

7. Mirakurunの稼働確認

ブラウザでMirakurunの稼働を確認する。
「http://localhost:40772」

8. EPGStationの稼働確認

ブラウザでEPGStationの稼働を確認する。
「http://localhost:8888」

録画する前に必ず実施すること

EPGStationのストレージの所有者は、デフォールトでrootになります。
所有者をログインユーザーにする必要があります。
以下の設定を行わないと、ファイルの自動削除などの際に、きちんと削除されないことが起こります。
また、sambaなど他のシステムからファイルの変更や削除を行う場合、アクセス権限の変更が面倒になります。

録画を始める前に、必ず以下を実施してください。

idコマンドを使って、ユーザーIDを調べます。

euser@pc:~$ id
uid=1000(euser) gid=1000(euser) groups=1000(euser)

上記の場合は、uid=1000(euser)からユーザーIDが1000であることがわかります。
ユーザーIDをEPGStationのconfig.ymlに設定します。
以下の場所を開いて下さい。~/git/docker-mirakurun-epgstation/epgstation/config

euser@pc:~$ cd ~/git/docker-mirakurun-epgstation 
euser@pc:~$ docker compose down 
euser@pc:~$ cd epgstation/config

epgstationを停止してから、config.ymlを開けて、編集してください。

config.ymlを開いて、調べたユーザーidを追加してください。
例えばユーザーIDが1000ならば、「uid: 1000」と追記して保存して下さい。

編集が完了したら、epgstationを立ち上げてください。

euser@pc:~$ cd ~/git/docker-mirakurun-epgstation 
euser@pc:~$ docker compose up -d

ここで、EPGStationが立ち上がらないことがあります。

問題は、~/git/docker-mirakurun-epgstation/epgstation/logsで発生していました。
logファイルがrootで書き込まれて、アクセスができなくなっていました。
例えばログインユーザーがeuserの場合、以下のようにオーナーを変更します。

euser@pc:~$ cd ~/git/docker-mirakurun-epgstation/epgstation 
euser@pc:~$ sudo chown euser -R logs

変更後、Ububtuをリブートしてください。
問題なくシステムが立ち上がることを確認したら、EPGStationから録画を行ってください。

2024年12月11日 | Posted in 電脳:録画サーバー | タグ: , 32 Comments » 

関連記事

コメント32件

  • m.o より:

    始めまして。いつもスクリプトを使わせて頂いております。

    「2-carddriver.sh」を実行すると「SCardEstablishContext: Access denied.」が表示され、
    処理が終了します。何か対処方法はありますでしょうか?

  • simplelife より:

    m.oさん

    今までその状態になったことはありません。
    ICカードリーダーのUSBコネクタがはずれているとか、ケーブルが断線しているとか以外
    考えられません。
    今回のスクリプトで発生したとしても、2023年8月と同じスクリプトですから、スクリプトの問題ではないと思います。

  • TT より:

    いつも情報提供ありがとうございます.22.04をインストールしている途中で,更新されたのをみつけ,急遽,24.04に挑戦しています.私もm.oさんと同じ症状です.カード,コネクタは確認しましたが問題なさそうです.カードリーダのパイロットランプもついています.

    V 1.7.1 (c) 2001-2022, Ludovic Rousseau
    SCardEstablishContext: Access denied.

  • TT より:

    コメントが別れてしまってすみません.ちなみに同じハードウェア構成で2023.8月版の手順でのインストールには成功しています.

  • TT より:

    前のコメントがうまく投稿できなかったようです.私もm.oさんと同じ現象です.Ubuntsu 22.04.5 Serverをインストールして,2023年8月の手順でepgstation+mirakurunをインストールできたのですが,まったく同じハードウェア構成でUbuntsu 24.04.1 Serverをインストールし,1から順にスクリプトを実行しましたが,2でカードへのアクセスを拒否されてしまいます.Ubuntsuの方の問題でしょうか?

  • simplelife より:

    TTさん

    情報ありがとうございます。

    中身は、たった3行というか2行です。

    #!/bin/bash
    sudo apt install -y libpcsclite-dev pcscd pcsc-tools libccid
    pcsc_scan

    自力で解決いただくしかないですね。
    カードリーダーは、SCR3310v2.0ですか?
    このカードリーダーしか使っていないので、他のカードリーダーの場合はわかりません。

  • simplelife より:

    TTさん、m.oさん

    Ubuntu24.04でのpcsc_scanの挙動が変わったという話がありますね。
    https://x.com/yamaken/status/1819979898301362541

  • simplelife より:

    TTさん

    以下のような記述を発見しました。
    ==========================================================================
    Ubuntu Security Notice USN-6727-2
    April 11, 2024

    nss regression
    ==========================================================================
    usn-6727-2:NSSの再アップデート
    https://lists.ubuntu.com/archives/ubuntu-security-announce/2024-April/008223.html
    Ubuntu 22.04 LTS・20.04 LTS用のアップデータがリリースされています。
    usn-6727-1の修正において、スマートカードの読み取りが機能しなくなっていました。
    対処方法:通常の場合、アップデータを適用することで問題を解決できます。

    つまり、2024年4月11日に修正した内容で、
    usn-6727-1でスマートカードの読み取りが機能しなくなった点を
    usn-6727-2で修正したと言っています。
    対処はアップデートすると書いてあります。

    Ubuntu 24.04.1をインストールしているか確認してください。
    Ubuntu 24.04をインストールしているならば、アップデートしてから、スクリプトを実行してみてください。

  • TT より:

    simplelifeさん,ありがとうございます.24.04.1をクリーンインストールしたので,このあたりは反映されていそうですが,なんかの拍子に元に戻ってしまったのですかね.

  • simplelife より:

    TTさん

    24.04.1のクリーンインストールしてるんですね。
    それだと対策しようがありません。
    ダメ元で、アップデートして、それでも変わらないようならば、こちらにコメントください。

  • m.o より:

    simplelifeさん

    返信お遅れまして、申し訳ありません。
    「2-carddriver.sh」 のみ「sudo」でスクリプトを実行したところ、正常に処理が終了しました。
    その後手順通りにスクリプトを実行し、構築が完了しました。放送の視聴もすべて正常に出来ておりますので、
    お知らせします。

  • TT より:

    m.oさん,素晴しい情報ありがとうございます.
    いろいろ調べたら,以下の記事にあるようにpolkitまわりが怪しそうなのですが,sudoする方が簡単なので,今晩,試してみます.
    https://zenn.dev/sorehaomosiroi/articles/sorehaomosiroi-20240901_ubuntu2404

  • simplelife より:

    m.oさん

    無事インストールできて、安心しました。
    しかし、不思議ですね。

    sudo apt install -y libpcsclite-dev pcscd pcsc-tools libccid
    pcsc_scan

    中身はこれだけですから、
    sudo pcsc_scan
    ということでしょうか?

    治すべきかどうか、迷いますね。

  • TT より:

    % sudo bash 2-carddriver.sh
    で無事インストールできました.
    simplelifeさん,m.oさん,ありがとうございました.
    EPGStation 2.10ではエンコードのプログレスバーが表示されないのですが仕様でしょうか?

  • simplelife より:

    TTさん

    無事インストールでき、良かったです。
    やはり、sudo pcsc_scanにした方が良さそうです。

    プログレスバーが出ない件は、既にissueに上がってますね。
    こちらは、ffmpeg7.0でログ出力のフォーマットが変わったせいらしいです。
    修正コードも上がっているので、いつかは修正されるでしょう。

  • TT より:

    simplelifeさん,そうなんですね.情報ありがとうございました.

  • kagami より:

    e-betterのDTV02A-4TSに対応をしていただけないでしょうか。
    中身はmltp5eから1chを削ったものになるので、
    スクリプトの中身をdriverの名前に書きなおしてみたのですが
    エラーでストップしてしまいました。
    出来ればよろしくお願いします。

  • simplelife より:

    kagamiさん

    e-betterのDTV02A-4TS、持ってないので、実機チェックができないんですよね。
    ちょっと調べて、対応できるようだった、個別に送って確認してもらいましょうか?

  • simplelife より:

    kagamiさん

    良く考えてみたら、/dataに入っているファイルは、~/git/epg-plex-dataにコピーされて実行されています。
    だから、ファイルを修正した後、
    cp -r ./data ~/git/epg-plex-data
    を実行してから、6番のスクリプトを実行すれば、うまくいくと思います。

  • kagami より:

    simplelifeさん
    指示されたようにファイルを修正した後、
    cp -r ./data ~/git/epg-plex-data
    を実行して6番のスクリプトを実行したらうまくいきました。
    ありがとうございました。

  • simplelife より:

    kagamiさん

    年越さず解決して何よりです。
    良いお年を。

  • sani より:

    はじめまして、貴重な記事を公開していただきありがとうございます。
    当方の所持しているのがかなり前に発売されたPX-Q3PEなのですが、PX-Q3PEではpx4_drvが対応していないため記事の内容を実施することは難しいでしょうか?または、PX-Q3PE4の方を参考するとできたりするでしょうか?
    記事の内容とは外れた質問で申し訳ありません、よろしくお願いいたします。

  • simplelife より:

    saniさん

    PX-Q3PEですか。
    ちょっと調べてみましたが、非公式Linuxドライバfor PLEXを使ってPX-Q3PEを動かした例は見つかりませんでした。
    私に聞くより、ドライバを作成した人に聞いてみるべきですが、元の開発者も現在引き継いでいる方も、
    連絡しても、すぐに返事はくれないかもしれません。

    https://github.com/nns779/px4_drv
    https://github.com/tsukumijima/px4_drv

    私ならば、PX-Q3PEをオークションで売って、PX-Q3PE5かPX-MLT8PEを買います。

  • mimi より:

    はじめまして
    PX-MLT80PEとGIGABYTE B880I、Ubuntu24.04.1の環境で
    このページ通りの手順で進めているのですが
    2.2-carddriver.shの手順で

    “Using reader plug’n play mechanism
    Scanning present readers…
    Waiting for the first reader… / ”

    から進まなくなってしまいました。

    試しにCtrl+Cで止めて、以降の手順を実施すると、
    /dev/pxmlt8video*は確かに作成されて、Mirakurun、EGPStationは起動し、
    番組表の受信まではできるのですが、視聴しようとするとグルグルの受信状態のまま再生されません。
    B-CASカードが認識されていないのでしょうか?
    PX-MLT80PEなので、別途カードリーダーは用意せず、チューナーカードに直接B-CASを刺しています。
    この場合も2.2-carddriver.shの手順は問題なく進むものなのでしょうか?
    (ちなみにUbuntu22.04版の記事も見ながら手順通りにやってみても同じ症状です)
    もしお時間ありましたらご助言のほどよろしくお願いいたします。

  • mimi より:

    すみません、どうでもいいかもしれないですが訂正です
    ○:GIGABYTE B550I
    ✕:GIGABYTE B880I

  • simplelife より:

    mimiさん

    2023年8月の記事で、用意するものが書いてありますよ。

    1 B-CASカード
    2 USB接続カードリーダー SCR3310v2.0で検証済み
    3 PLEX社製TVチューナー PX-Q3PE4/5,PX-W3PE4/5,PX-Q3U4,PX-W3U4,PX-MLT5PE,PX-MLT8PE
    4 アンテナケーブル
    5 LANケーブルかWiFi
    6 PC Ubuntu 22.04がインストールできるPC

    USB接続カードリーダー(SCR3310v2.0)は、必ず必要なんですよ。

  • mimi より:

    simplelifeさん

    ご返信ありがとうございます。
    すみません、PT3とかの記事から書き換えた名残で
    カードリーダーの記載が残ってるだけかな?と勝手な想像をしていました。
    Ubuntuではチューナー付属のカードリーダーがほぼ使い物にならないのですね。

    しょうもない勘違いなのに丁寧に返信頂き申し訳ないです。
    すぐにカードリーダー購入してみます。ありがとうございました。

  • simplelife より:

    mimiさん

    カードリーダー接続すれば、うまく行くはずです。

  • mimi より:

    遅ればせながら、SCR3310V2で無事動作しました。
    (最初にケチって700円のカードリーダーにしたらpcsc_scanはちゃんと動くのにだめでした笑
    mirakurunはpcscでカードリーダー読んでるんじゃないんですかね…?)
    ありがとうございました。

  • simplelife より:

    mimiさん

    無事動いて良かったですね。
    カードリーダーには、B-CAS対応と書いてある機種があるので、それを選んだ方が無難ですね。

  • megutan@ より:

    ubuntu 24.04.1をクリーンインストールし、スクリプト完走したのですが視聴はできても録画ができません。
    23年8月版のスクリプトで全くの同一HWで構築した際は問題なく録画できていましたが、LINUX FWのアップデートにより機能不全に陥ったため入れ直したものです。
    はてさてどこを見直したものやら・・・

  • simplelife より:

    megutanさん

    録画できない、というのもいろいろな症状があります。
    録画予約ができない、録画を手動で行っても録画状態にならない、など

    私が録画できない状態になったのは、ストレージのアクセス権がなかったときでした。
    EPGStationのログを見ると、何かわかるかもしれません。
    ~/git/docker-mirakurun-epgstation/epgstation/logの中を確認してください。

  • コメントを残す

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

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