2021年版 15分でできる自宅録画サーバー(Ubuntu 20.04)
<2022年5月25日>Ubuntu 22.04で動作確認した、新しいバージョンを公開しました。
docker版EPGStation v2が2021年初頭にリリースされてから、とてもインストールが簡単になりました。
それでも、Linux初心者にはWindows10と同じレベルとは言えません。
そこで、さらに簡単にインストールできる方法を考えてみました。
その結果を報告しましょう。
15分でできる自宅録画サーバー
インストールするために行うことは、以下2点です。
- インストール用ファイルをダウンロードして保存する。
- インストール用ファイルの中の6つのシェルスクリプトを手動で実行する。
(およそ15分間)
これだけで、EPGStation v2が使えるようになります。
今までインストールのために、
「どれだけ時間を無駄にしてきたことか!」
と心の中で叫んでしまいました。
それでは以下、「前準備」、「インストール」、を順を追って説明していきます。
前準備
インストールするために必要なハードウェアをおさらいしましょう。
以下のハードウェアが必要となります。
- B-CASカード
- USB接続カードリーダー(例えば、SCR3310v2.0)
- PLEX社製TVチューナー
(PX-Q3PE4, PX-Q3U4,PX-W3PE4, PX-W3U4)
- PC (Ubuntu 20.04 Desktopをインストールしたもの)
- SSD (120GB~)
15分でインストール完了するために必要。HDDの場合は、15分では終わらないでしょう。
Ubuntu Desktop 日本語Remixは、537MBしかないので、64GBでも問題なくインストール可能。
ただし、2021年現在、入手しやすく安価なSSDは120GB以上となっています。
具体的な構成例は、以下の写真のとおりです。
さらに、前提条件は、以下のとおりです。
- 電源が供給できる
- アンテナ入力が供給できる
- LAN接続ができ、インターネットへアクセスできる
- 仮想マシン上のUbuntu 20.04は、使わないこと。
(仮想マシン上のdockerの動作について未検証。
さらに、仮想マシンでは動作が遅いし、その代わりにdockerを使っている。
だから、仮想マシン上でdockerは、あまり価値がない。)
上記が、インストールの前提条件です。
1つだけ注意点。地上波受信チャンネルが東京になっています。
東京以外で受信されている場合、インストール後Mirakurunで地上波受信チャンネルを修正する必要があります。
インストール
以下の手順で進めてください。
注意点が一つあります。本手順は、Ubuntu 20.04を新しくインストールした状態で動作確認しています。
既に、dockerやtunerのドライバがインストールされている状態では、異なる挙動があるかもしれません。
- ホームディレクトリにtempディレクトリを作成します。
euser:~$ mkdir ~/temp
- ファイルをダウンロードしてください。
<2022年5月25日>Ubuntu 22.04で動作確認した、新しいバージョンを公開しました。 - ダウンロードしたファイルをtempディレクトリの中に展開してください。
euser:~$ cd ~/temp euser:~temp$ ls install-epgstation euser:~temp$
- さらに中のscriptディレクトリへ移動します。
euser:~temp$ cd install-epgstation/script euser:~temp/install-epgstation/script$
- scriptディレクトリの中身を確認します。
euser:~/temp/install-epgstation/script$ ls -la 合計 76 drwxrwxr-x 2 euser euser 4096 3月 29 21:51 . drwxrwxr-x 3 euser euser 4096 3月 29 21:51 .. -rw-rw-r-- 1 euser euser 200 3月 28 16:52 1-preprocess.sh -rw-rw-r-- 1 euser euser 73 3月 24 20:27 2-carddriver.sh -rw-rw-r-- 1 euser euser 104 3月 29 04:08 3-checkcard.sh -rw-rw-r-- 1 euser euser 429 3月 24 04:27 4-tunerdriver.sh -rw-rw-r-- 1 euser euser 120 3月 24 04:32 5-checktuner.sh -rw-rw-r-- 1 euser euser 1014 3月 28 01:06 6-install-q.sh -rw-rw-r-- 1 euser euser 1018 3月 28 01:06 6-install-w.sh -rw-rw-r-- 1 euser euser 8261 3月 4 03:47 channels.yml -rw-rw-r-- 1 euser euser 210 12月 26 2019 dkms.install -rw-rw-r-- 1 euser euser 117 12月 26 2019 dkms.uninstall -rw-rw-r-- 1 euser euser 1083 3月 24 18:30 new-MirakurunDockerfile -rw-rw-r-- 1 euser euser 2165 3月 28 16:58 new-docker-compose-w.yml -rw-rw-r-- 1 euser euser 2341 3月 24 18:32 new-docker-compose.yml -rw-rw-r-- 1 euser euser 610 3月 28 16:59 tuners-w.yml -rw-rw-r-- 1 euser euser 1224 3月 4 03:43 tuners.yml euser:~/temp/install-epgstation/script$
- 番号が付いたシェルスクリプトを順番に実行していきます。
シェルスクリプトの実行
- 1-preprocess.sh
euser:~/temp/install-epgstation/script$ sh 1-preprocess.sh
インストールの前処理を行います。
主に、dockerやdocker-composeをインストールします。 - 2-carddriver.sh
euser:~/temp/install-epgstation/script$ sh 2-carddriver.sh
カードリーダーのドライバーをインストールします。
インストール終了後、カードが認識できていることを表示で確認し、Ctrl+Cを押して終了します。 - 3-checkcard.sh
euser:~/temp/install-epgstation/script$ sh 3-checkcard.sh
ホスト上のカードリーダーのpcscdを停止します。
inactive(dead)が確認できたら、Ctrl+Cを押して終了します。 - 4-tunerdriver.sh
euser:~/temp/install-epgstation/script$ sh 4-tunerdriver.sh
PLEXチューナーの非公式ドライバをインストールします。
終了後、自動的にリブートします。 - 5-checktuner.sh
euser:~/temp/install-epgstation/script$ sh 5-checktuner.sh
PLEXチューナーの非公式ドライバが正常にインストールされたことを確認します。
euser:~/temp/install-epgstation/script$ sh 5-checktuner.sh 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 euser:~/temp/install-epgstation/script$
もし、ドライバが表示されない場合は、原因を調査します。
解決しない場合は、先に進めません。
ここまでおよそ5分です。 - 6-install-q.sh 6-install-w.sh
euser:~/temp/install-epgstation/script$ sh 6-install-q.sh euser:~/temp/install-epgstation/script$ sh 6-install-w.sh
(2021年6月21日9時30分追記)以下の修正を行い、ダウンロードファイルを修正しました。 ダウンロードしてそのまま使用できます。 (2021年6月21日4時30分追記)epgstationのインストールで一部変更がありました。 6-install-q.sh 6-install-w.sh で修正を加える必要があります。 cp epgstation/config/config.sample.yml epgstation/config/config.yml cp epgstation/config/config.yml.template epgstation/config/config.yml に変更してください。
最後に、PLEX社製TVチューナー対応docker版mirakurun、mysql、epgstationをインストールします。
PX-Q3PE4、PX-Q3U4の場合、6-install-q.sh
PX-W3PE4、PX-W3U4の場合、6-install-w.sh
実行後、およそ10分で完了します。
インストール完了後
インストール完了後、ブラウザを開きます。
以下の2つを開きます。
- localhost:40772 Mirakurun
- localhost:8888 EPGStation
EPGStationで番組表を開きます。
BSの番組表の方が、地デジの番組表より早く表示されます。
地デジの1週間後の番組表が表示されるまで、およそ20分かかります。
ここまでくれば、録画予約など可能です。
ただし、便利に使うためには、いくつか後処理が必要となります。
以下に、続く・・・・
サーバーを再起動した際の注意
サーバーを再起動した場合、必ずブラウザでEPGStationが動いていることを確認してください。
ブラウザで「localhost:8888」です。
docker-composeは、再起動時docker-mirakurun-epgstationを起動する設定になっていますが、なぜか動いていないことがあります。
EPGStationが動いていない場合は、「docker ps」コマンドでコンテナの状況を確認してみます。
euser:~$docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d534cefaece8 docker-mirakurun-epgstation_epgstation "npm start" 4 days ago Up Less than a second 0.0.0.0:8888-8889->8888-8889/tcp epgstation-v2 4cc41393abf4 mariadb:10.4 "docker-entrypoint.s…" 4 days ago Up Less than a second 3306/tcp mysql-epgstation-v2 a05bc7c61665 chinachu/mirakurun "docker-entrypoint.s…" 4 days ago Up Less than a second 0.0.0.0:9229->9229/tcp, 0.0.0.0:40772->40772/tcp mirakurun-3.5.0
このコマンドを実行した瞬間に、すべてが起動しているようです。
その後に、ブラウザで確認するとMirakurunもEPGStationも動いています。
「docker ps」コマンドで確認しても、コンテナーが何も動いていない場合もあります。
その時は、以下のコマンドでコンテナー起動してください。
euser:~$cd ~/git/docker-mirakurun-epgstation euser:~/git/docker-mirakurun-epgstation$docker-compose up -d
参考サイト
本記事を書くために、以下のサイトを参考にさせていただきました。
関連記事
コメント26件
Ubuntu初心者さん、うまく動かないようですね。
localhost:40772でmirakurunは見えるのでしょうか?
次のコマンドの結果はどうなってますか?
docker ps
mirakurunは見れます。
docker psの結果は下記です。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
684ebaa404c2 docker-mirakurun-epgstation_epgstation "npm start" 17 hours ago Restarting (1) 9 seconds ago epgstation-v2
30daeb258985 chinachu/mirakurun "docker-entrypoint.s…" 17 hours ago Up 27 minutes 0.0.0.0:9229->9229/tcp, 0.0.0.0:40772->40772/tcp mirakurun-3.5.0
dfea24364e73 mariadb:10.4 "docker-entrypoint.s…" 17 hours ago Up 27 minutes 3306/tcp mysql-epgstation-v2
以下が、正常な場合です。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16683418ee70 docker-mirakurun-epgstation_epgstation “npm start” 2 weeks ago Up 10 days 0.0.0.0:8888-8889->8888-8889/tcp epgstation-v2
c24a282da795 mariadb:10.4 “docker-entrypoint.s…” 2 weeks ago Up 10 days 3306/tcp mysql-epgstation-v2
d810da2eb7f7 chinachu/mirakurun “docker-entrypoint.s…” 2 weeks ago Up 10 days 0.0.0.0:9229->9229/tcp, 0.0.0.0:40772->40772/tcp mirakurun-3.5.0
epgstationのstatusが問題ですね。 restartingになってますね。portもありません。
私も経験したことないので、わかりません。mirakurunもmysplも正常みたいですから、epgstationに原因があることは間違いありません。まずは、docker-compose downとdocker-compose up -dを実行してみてはどうでしょうか。
Ubuntu初心者さん、追加でいくつか教えて下さい。
使っているPLEX社のチューナーの型番を教えて下さい。PX-Wの方は、実際にインストールで確かめていないので、確認してみましょうか。
それから、mirakurunのチャンネルは、東京仕様なので、地上波の設定は変更が必要かもしれません。mirakurunでチューナー、チャンネルは正常か確認ください。
docker-compose downとdocker-compose up -dをやってもエラーしかでません。
チューナーの型番はpx-w3re4です。
チャンネル設定を変更してもダメでした。
ubuntuの再インストールをしたのですが、それが原因ですかね?
ちなみ一番最初はepgstationも起動し、地デジBSともにWEB視聴は可能でした。
Ubuntu初心者さん、
>ubuntuの再インストールをしたのですが、それが原因ですかね?
ん? 意味がわかりません。再インストールしたということは、ゼロからインストールしなおしたということですよね。、そこで問題が生じたんでしょうか?
docker-compose pull
docker-compose build –no-cache
docker-compose up -d
を実行して、だめなら、すべて最初からやりなおした方が速いと思います。全部やりなおしても、30分程度でできると思います。
コメント失礼いたします。
PX−W3U4を使用してトライしていますが、localhost:8888が表示されません。先の方と同様、epgstationのstatusがrestartを繰り返しているようで、portもない状態です。
docker-compose pull
docker-compose build –no-cache
docker-compose up -d
を実行しても同じ状態になってしまいます。
Intel環境にESXi7.0U2を入れ、Ubuntu20.04Remixを仮想マシンとし、カードリーダーやチューナーのパススルー設定を行っています。スクリプトは5までは問題ないように見えます。しかしながら、仮想マシンを破棄してまっさらな状態から始めても、同じ状態になってしまうため困り果てています。
解決策等あればご教示いただけると有り難いです。
よろしくお願いいたします。
別の初心者さん、仮想マシンですか。VMware上でdockerが動くんでしょうか?
検索しても、動いた事例を見つけられませんでした。
私が動作確認しているのは、仮想マシンではないので、わかりません。
それに仮想マシンでdockerというのは、気持ち悪くありませんか?好みにもよりますが。
それでなくても動作が遅くなるし、ドライバがきちんと動くんでしょうか? 疑問だらけです。
これは、実証するしかないのですが、インストールして駄目なら、仮想マシンは駄目だと思います。
私自身は、仮想マシンを使ったインストールは、やめたほうがいいと思います。動いても、遅いと思いますし、
そのためにdockerがあるのでは?
VMware社にdocker,docker-composeはきちんと動作するのか聞いてみれば、解決するかもしれませんね。
simplelife0530様
ご返答ありがとうございます。
仮想環境+dockerで録画環境構築してる方がちらほらいること、
私自身が仮想上で別のOSをすでに運用中であること、
知人のエンジニアさんからも「仮想マシンでコンテナを動かすのはよくある構成」
と言われたこと等から、仮想環境での構築にトライしています。
こちらのブログの手順が最も簡単そうだったのですが、
やはり実際の環境と仮想環境では勝手が異なるようですね。
もう少し調べてみてダメなら環境の見直しを検討いたします。
別の初心者さん、
>仮想環境+dockerで録画環境構築してる方がちらほらいること、
いるんですね。確かにmirakurun + epgstationだけなら、そこそこ動くかもしれません。
dockerまではいいとして、docker-composeも使っているので、そこで引っかかるのかもしれません。
ffmpegを使って、mp4に変換するなら、仮想マシンは使わない方がいいと私は思います。
simplelife0530様、
毎年参考に録画サーバー作らせていたいております。
私の環境でもEPGstationが正常に立ち上がらなずloalhost:8888に接続しても繫がらなかったのですが、
一応の解決策を見つけたので他の方の参考にコメント残させていただきます。
手順通りにUbuntu 20.04のクリーンインストール状態から作業進めましたが、
シェルスクリプトの6番が完了しなかったため調べたところ、
私の環境では
epgstation/config/config.sample.yml
が
epgstation/config/config.yml.template
という名前で生成されており、EPGstationのconfigが正常に作成できず立ち上がらなかった模様です。
ファイル名を置き換えてシェルスクリプトを走らせたところ正常に構築できました。
h265さん、
ご連絡ありがとうございます。
今、docker-mirakurun-epgstationを参照したら、
cp epgstation/config/config.yml.template epgstation/config/config.yml
に変わっていますね。
おそらく最近変更したのでしょう。本日中には変更します。
はじめまして。
こちらのサイトを参考に本当に15分で構築ができてしまいました。
私が使用したチューナーは PX-W3PE5 なのですが全く問題なく構築できました。
非常に助かりました。ありがとうございます。
私も記事を書こうと思うのですが。こちらのサイトのリンクを貼ってもよろしいでしょうか?
ぜひお願いいたします。
MR.ROBOTさん、
コメントありがとうございます。
PX-W3PE5で大丈夫でしたか。
非公式ドライバは、以下の機種に対応しているようです。
PX-W3U4
PX-Q3U4
PX-W3PE4
PX-Q3PE4
PX-W3PE5
PX-Q3PE5
PX-MLT5PE
PX-MLT8PE
リンクを貼るのは、何も問題ありません。
よろしくお願いいたします。
私は、昨日PX-MLT8PEを購入しました。
問題ないか、確認する予定です。
Ubuntu初心者さん、
最近気がついたのですが、5月15日にepgstationのconfig設定が変更されていました。
5月17日にepgstationが正常に動かないという報告を受けたわけですので、この変更が影響していたと考えられます。
6月21日に対処しましたので、再度試して報告いただけると助かります。
別の初心者さん
仮想環境が原因ではなかったと、今頃気が付きました。
5月15日にepgstationのconfig設定が変更されていました。
そのため、epgstationが動かない状態になっていました。
別の方から、報告を受け、修正したところ、epgstationが問題なくインストールして動くことが確認できました。
もう2か月も経っていますが、もしできるなら、現在の修正したスクリプトで試し、報告いただけると助かります。
そうすれば、仮想環境でも問題ないことをアナウンスできます。
よろしくお願いいたします。
simplelife0530さん
久しぶりにブログを見に来ましたが、改善がされており今度は構築できそうなので今日の夜にでも最初からやり直してみたいと思います。
Ubuntu初心者さん
よろしくお願いします。既にインストールしているならば、手動で
cp config/config.yml.template config/config.yml
するだけでも、動くと思います。
epgstationのconfig.ymlがなかっただけです。
はじめまして
Linux(RaspberryPi4B)でDockerでない環境でなんとか
Mirakurun+Chinachu
環境が構築できた状況のモノです
EPGStationはトライしているもののうまくいかず、理由はチューナーが
さんぱくん外出
だからかなぁ、と考えております
拝見させていただきました内容もPLEXチューナーでdev使用の様ですのでそのままではうまくいきそうもなく。
何か「さんぱくん外出」でインストールする方法がありましたらご教授いただけますと幸いです
よろしくお願いいたします。
Raspi初心者さん
「さんぱくん外出」も(RaspberryPi4Bも使ったことがないので、難しいですね。
両方持っている人にあたってください。
simplelife0530さん
ありがとうございました。なかなか情報無く厳しいですね;;
こんにちは、初めまして。
同じようなサイトを参考にしてサーバーを作っている初心者ですが、こちらで作られているスクリプトを使わせていただき非常に感銘を受けました、まさにsimple life。
一つお聞きしたいのですが、最後のところでepgstationのDockerfileがないと怒られてしまいます。
cannnot locate specified Dockerfile epgstation
4月に小茂根さんのサイトを参考に構築して動作しているのですが、それを見ると
/docker-mirakurun-epgstation/epgstation/
の
debian.Dockerfile
が
Dockerfile
にリネームされている?ようなので手動で配置したところ、起動まではしますがブラウザからアクセスできません。
(安全な接続ができませんでした。
192.168.1.5:8888への接続中にエラーが発生しました。SSL received a record that exceeded the maximum permissible length.
エラーコード:SSL_ERROR_RX_RECORD_TOO_LONG)
https://calpo.hatenadiary.org/entry/20110920/p1
一応このページにたどり着いたのですが、手に負えません。。。
40772の方は問題ありません。
何かご教示いただければと思います。
yupさん、はじめまして。
自宅内LANであれば、SSLは使わなくても、とりあえずいいと思います。
まず、epgstationがインストールされているマシンのブラウザで、「http://localhost:8888」で接続できるか確認してください。
あるいは、別のマシンから「http://192.168.1.5:8888」でもいいです。
現状は、「https://192.168.1.5:8888」でアクセスしているということですね。http://とhttps://の違いは大きいですから。
yupさん、
先程気がついたのですが、以下のエラーは8月23日時点で発生していたようです。
>>一つお聞きしたいのですが、最後のところでepgstationのDockerfileがないと怒られてしまいます。
>>cannnot locate specified Dockerfile epgstation
docker-mirakurun-epgstationのdockerファイルに変更がありました。
9月2日に修正したので、もし解決していなければ、使ってみてください。
Ubuntu初心者さん、
8月中旬くらいに、docker-mirakurun-epgstationに変更があったため、6番目のスクリプトが動かない状態になっていました。
9月2日に修正版を出したので、もし必要な時はお試しください。
大変分かりやすいブログでとても参考なりありがとうございます。
一点お聞きしたい事があります。
localhost:8888でサーバーが見つかりませんと出てしまいます。コンテナの状況を確認するとEPGstationのportは何も表示がありません。考えられる原因と対策が有ればご教示願います。