2023年8月版 45分で作れる自宅録画サーバー(Ubuntu 22.04.3LTS)
2023年8月現在、自宅録画サーバーを45分で作る方法を紹介します。
<前提条件>
- PC(PLEXチューナーカード搭載、あるいはUSB接続PLEXチューナー)
- USB接続カードリーダー
- B-CASカード
上記が揃っていれば、約45分でインストール完了。
- (30分) Ubuntu 22.04.3インストール
- (15分) 自宅録画サーバー完成
- (20分) EPGStationで1週間の番組表を読み込み、予約録画ができる
入手可能な以下4点を利用します。
- Ubuntu LTS 22.04 日本語Remix
- EPGStation Mirakurun docker版
- 非公式Linuxドライバ for PLEX TVチューナー
- PLEX TVチューナー
(PX-Q3PE4/5、PX-W3PE4/5)
(PX-MLT5PE、PX-MLT8PE)
(PX-Q3U4、PX-W3U4)
<2022年5月からの改訂ポイント>
- Mirakurun 3.9.0-rc.4(最新版がインストールされる)
- EPGStation 2.7.1(最新版がインストールされる)
docker Compose V2は、次回のバージョンで対応予定
用意するもの
No. | 品名 | 説明 |
---|---|---|
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 |
B-CASカード
USB接続カードリーダー
PLEX社製TVチューナー
アンテナケーブル
PC
PLEX TVチューナーには、使用できるPCに以下の制限があります。
PC | W3U4 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以上の安定した電源が望ましい。
ハードウェアの準備
- PCを組み立てます。
- (W3U4、Q3U4の場合)
外部USBポートに接続します。
(W3PE5、Q3PE5の場合)
PLEX TVチューナーをPCI Expressのスロットに入れます。
(W3PE4、Q3PE4、MLT5PE、MLT8PEの場合)
PLEX TVチューナーをPCI Expressのスロットに入れます。
内部USBポートとTVチューナーカードを接続します。 - B-CASカードをUSB接続カードリーダーに挿入する。
B-CASカードの裏面を上にして挿入する。
- USB接続カードリーダーを外部USBポートに接続する。
- LANケーブルをPCに接続するか、WiFiを用意する。
- 準備した例を以下に示します。
- 最後に、PLEXチューナーのドライバをインストールするために、
セキュリティーブートを「非UEFIモード」にします。
PCの電源を入れて、「DEL」キーを押してBIOSユーティリティーを起動します。
(本例は、ASUSのマザーボードの場合です。)
画面下のメニュー左寄り「Advanced Mode」をクリックします。
Advanced ModeのMain画面で、メニューから「起動」をクリックします。
「起動」画面で「セキュリティブートメニュー」をクリックします。
「セキュリティブートメニュー」画面で「OSタイプ」を「非UEFIモード」にします。
メニューから「終了」をクリックし、「変更を保存しリセット」をクリックします。
これで、リブートすれば、ハードウェアの準備は完了です。
インストールの準備
- 既に稼働しているdocker版EPGStationがある場合は、バックアップをしてください。
- Ubuntu 22.04をインストールします。
- root以外のユーザーでログインしてください。
例えば、euserというユーザーを作成し、euserでログインします。 - インストールスクリプトをダウンロードします。
- ダウンロードしたファイルをホームディレクトリに展開します。
ダウンロードディレクトリを表示します。
「2023temp-20230821T031356Z-001.zip」をダブルクリックします。
「2023temp」を右クリックしてメニューを表示し、「展開」をクリックします。
「ホーム」をクリックして、「展開」をクリックします。
「アーカイブの展開が完了しました」と表示されたら、「ファイル表示」をクリックします。「ホーム」の配下に「2023temp」ディレクトリができたことを確認します。
- 「端末」アプリを開く。
画面左下の「アプリケーションを表示する」をクリックします。
「端末」を左クリックして、「お気に入りに追加」をクリックします。
画面左のメニューから「端末」をクリックします。
インストールの実行
- 「端末」を実行して、スクリプトを確認します。
euser@pc:~$ cd ~/2023temp/epg-plex euser@pc:~/2023temp/epg-plex$ ls -la 合計 48 drwxrwxr-x 3 euser euser 4096 8月 21 12:25 . drwxrwxr-x 4 euser euser 4096 8月 21 12:25 .. -rw-rw-r-- 1 euser euser 212 8月 26 2021 1-preprocess.sh -rw-rw-r-- 1 euser euser 85 8月 26 2021 2-carddriver.sh -rw-rw-r-- 1 euser euser 116 8月 26 2021 3-checkcard.sh -rw-rw-r-- 1 euser euser 576 8月 26 2021 4-tunerdriver.sh -rw-rw-r-- 1 euser euser 27 8月 26 2021 5-checktuner.sh -rw-rw-r-- 1 euser euser 1115 8月 20 19:30 6-install-mlt5.sh -rw-rw-r-- 1 euser euser 1115 8月 20 19:31 6-install-mlt8.sh -rw-rw-r-- 1 euser euser 1105 8月 20 19:31 6-install-q.sh -rw-rw-r-- 1 euser euser 1109 8月 20 19:31 6-install-w.sh drwxrwxr-x 2 euser euser 4096 8月 21 12:25 dat
- スクリプトを順番に実行していきます。
euser@pc:~/2023temp/epg-plex$ bash 1-preprocess.sh euser@pc:~/2023temp/epg-plex$ bash 2-carddriver.sh euser@pc:~/2023temp/epg-plex$ bash 3-checkcard.sh euser@pc:~/2023temp/epg-plex$ bash 4-tunerdriver.sh
ここで自動的にリブートします。(ここまで5分)
リブート後端末を開き、~/2023temp/epg-plexまで戻ります。euser@pc:$cd ~/2023temp/epg-plex euser@pc:~/2023temp/epg-plex$ bash 5-checktuner.sh
チューナードライバを確認したら、最後のインストールです。(ここから10分)
<Q3PE4/5、Q3U4>の場合euser@pc:~/2023temp/epg-plex$ bash 6-install-q.sh
<W3PE4/5、W3U4>の場合
euser@pc:~/2023temp/epg-plex$ bash 6-install-w.sh
<MLT5PE>の場合
euser@pc:~/2023temp/epg-plex$ bash 6-install-mlt5.sh
<MLT8PE>の場合
euser@pc:~/2023temp/epg-plex$ bash 6-install-mlt8.sh
インストールの詳細画面
- 1-preprocess.sh
以下のスクリプトを実行します。euser@pc:~/2023temp/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-carddriver.sh
以下のスクリプトを実行します。euser@pc:~/2023temp/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-checkcard.sh
以下のスクリプトを実行します。euser@pc:~/2023temp/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-tunerdriver.sh
以下のスクリプトを実行します。euser@pc:~/2023temp/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-checktuner.sh
以下のスクリプトを実行します。euser@pc:~/2023temp/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-install
インストールの最後のステップです。PLEX TVチューナー対応docker版mirakurun、mysql、epgstationをインストールします。
(a) PX-Q3PE4/5、PX-Q3U4の場合、6-install-q.sheuser@pc:~/2023temp/epg-plex$ bash 6-install-q.sh
(b) PX-W3PE4/5、PX-W3U4の場合、6-install-w.sh
euser@pc:~/2023temp/epg-plex$ bash 6-install-w.sh
(c) PX-MLT5PEの場合は、6-install-mlt5.sh
euser@pc:~/2023temp/epg-plex$ bash 6-install-mlt5.sh
(d) PX-MLT8PEの場合は、6-install-mlt8.sh
euser@pc:~/2023temp/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
- Mirakurunの稼働確認
ブラウザでMirakurunの稼働を確認する。
「http://localhost:40772」
2023年8月21日現在、Mirakurun 3.9.0-rc.4がインストールできます。 - EPGStationの稼働確認
ブラウザでEPGStationの稼働を確認する。
「http://localhost:8888」
2023年8月21日現在、EPGStation 2.7.1がインストールできます。
BSの番組表の方が、地デジの番組表より早く表示されます。
地デジの1週間後の番組表が表示されるまで、およそ20分かかります。
録画する前に必ず実施すること
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
更に録画ファイルを入れるディレクトリ/media/tv_recordのオーナーをログインユーザーに変更してください。
例えばログインユーザーがeuserならば、
sudo chown euser /media/tv_record
変更後、Ububtuをリブートしてください。
問題なくシステムが立ち上がることを確認したら、EPGStationから録画を行ってください。
追加インストール情報
本記事の手順でEPGStationをインストールした後、参考になる記事は以下のとおりです。
ストレージの拡張について
トランスコードの最適化について
sambaについて
muninについて
全録サーバーについて
EPGStationのデータのバックアップとリストアについて
関連記事
コメント2件
風小僧さん
インストールできて良かったです。
softcasに関しては、きちんと調べたわけではありませんが、違法の可能性があったので、
使っていません。B-CASに関しては、管理している会社そのものの権利が無効の可能性が
高く、法律に触れない範囲で流用できるという解釈で利用しています。
詳しくは、このブログの中でも記事にしています。
https://www.digital-den.jp/simplelife/archives/5191/
非常に便利なスクリプトを公開してくださり、感謝しております。
さすがに45分では無理でしたが、半日ほどで稼働できるようになりました。
特にトラブることもなく、スムーズにインストールできました。
あえていえば、6-installが10分で・・とありましたが、すごく長く感じられました。吐き出されているログがエラーなのかドキドキして待っていたら無事終了して感激でした。
また、ストレージ拡張・トランスコード・samba共有の別記事(スクリプト)も役に立ちました。
ありがとうございます。
こんな質問は野暮なんですが、カードリーダーが邪魔で、softcasがubuntuに実装できたらいいんですが、無理ですよね!
本当にありがとうございました。今後の有益な記事に期待しております。