Raspberry PiにEPGStationをインストール

Raspberry Pi 3 Model B+でEPGStation v2がインストール出来たので、あらためてOSのインストールからEPGStationを動して録画サーバとして使えるようになるまでの手順を覚え書き。USBチューナーはPX-S1UDやPX-Q1UD、PX-BCUDを想定してるけど、他のUSBチューナーでも別途ドライバや録画コマンドをインストールして、Mirakurunのチューナー設定を行えば使える。

Raspberry Pi Imagerのインストール

Raspberry Pi OSのダウンロードとmicroSDカードに書き込むために使うRaspberry Pi Imagerをインストールする

  1. Raspberry Pi公式サイトを開き、上部メニューからSoftware→Our software
  2. Raspberry Pi OSのページが開いたら、Install Raspberry Pi OS using Raspberry Pi ImagerからDownload for Windowsでダウンロード
  3. ダウンロードしたRaspberry Pi Imager(imager_1.6.2.exe等)を実行
  4. このアプリがデバイスに変更を加えることを許可しますか?が出たら、はい
  5. Welcome to Raspberry Pi Imager Setupが出たら、Install
  6. Completing Raspberry Pi Imager Setupが出たら、Run Raspberry Pi Imagerのチェックをはずして、Finish

Raspberry Pi OSのインストール

Raspberry Piにディスプレイを接続せず、SSHでリモート接続して使うので、Raspberry Pi OS LiteをSSHを有効にした状態でインストールする

  1. 2GB以上のmicroSDカードを取り付ける
  2. スタートメニュー→Raspberry PiRaspberry Pi Imager
  3. このアプリがデバイスに変更を加えることを許可しますか?が出たら、はい
  4. CHOOSE OS→Raspberry Pi OS (other)→Raspberry Pi OS Lite (32-bit)
  5. Ctrl+Shift+Xを押して、Advanced optionsが出たら、Enable SSHにチェックを入れて、Set password for 'pi' userにraspberryを入力して、SAVE
  6. CHOOSE STORAGE→取り付けたmicroSDカードを選択
  7. WRITE
  8. Are you sure you want to continue?が出たら、YES
  9. You can now remove the SD card from the readerが出たら、CONTINUE
  10. Raspberry Pi Imagerのウィンドウを、右上の×で閉じる
  11. microSDカードを取り外す(ハードウェアを安全に取り外してメディアを取り出すは必要ない)
  • microSDカードの容量は、Raspberry Pi OSだけなら2GBでも良いが、スワップを2GBに増やす場合は4GBが、EPGStationで録画を行う場合はさらに大きな容量が必要になる

Raspberry Pi OSにSSHで接続

  1. スタートメニューを右クリック→ファイル名を指定して実行
  2. 名前に「ssh pi@raspberrypi」を入力して、OK
  3. 初回のみ、Are you sure you want to continue connecting (yes/no)?が出たら、yesを入力
  4. pi@raspberrypi's password:が出たら、raspberryを入力
  • 初回はRaspberry PiRaspberry Pi OSをインストールしたmicroSDカード、LANケーブル、ACアダプタを取り付けて数分待ってから行う(EPGStationで録画を行う場合は、USBチューナー(PX-S1UD等)とB-CASカードを取り付けたUSBスマートカードリーダー(SCR3310等)も取り付ける)

タイムゾーン変更

英国標準時のままだとEPGStationの予約録画に失敗するので、日本標準時に変更する

sudo raspi-config nonint do_change_timezone Asia/Tokyo

スワップ容量の変更

RAM容量が少ないRaspberry Piの場合、EPGStationをインストールする際にnpm run buildでエラーになるので、スワップ容量を2GBに増やす

sudo sed -i -e 's/^CONF_SWAPSIZE=100$/CONF_SWAPSIZE=2048/' /etc/dphys-swapfile
sudo service dphys-swapfile restart

パッケージの更新

パッケージ一覧リストの更新、インストール済みパッケージの更新、不要パッケージの削除を行う

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get autoremove -y

ファームウェアのインストール

USBチューナーのPX-S1UDやPX-Q1UDを使う場合はファームウェアが必要なのでインストールしてから再起動する(PX-BCUDを使う場合は必要ない)

wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
unzip PX-S1UD_driver_Ver.1.0.1.zip
sudo cp PX-S1UD_driver_Ver.1.0.1/x86/i386/isdbt_rio.inp /lib/firmware/
sudo reboot

Node.jsのインストール

MirakurunとEPGStationの動作に必要となるNode.jsをインストールする

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

arib-b25-stream-testのインストール

B-CASカードでスクランブル解除を行うためのデコーダーをインストールする

sudo apt-get install -y libpcsclite-dev pcscd
sudo npm install arib-b25-stream-test -g --unsafe-perm
  • gcc、g++、make、pkg-configはRaspberry Pi OSに標準でインストールされている。

Mirakurunのインストール

Mirakurun起動時に呼び出されるdvb-fe-toolが含まれているdvb-toolsと、Mirakurunをサービス起動するために必要なPM2と、PM2で動作するMirakurunのログローテートが行うためのpm2-logrotateをインストールしてから、Mirakurunをインストールする

sudo apt-get install -y dvb-tools
sudo npm install pm2 -g
sudo pm2 install pm2-logrotate
sudo npm install mirakurun@3.8.0 -g --unsafe-perm --production
  • Mirakurun 3.9.0-beta系はエラーが出てインストールに失敗するので、3.8.0を指定してインストールしている

Mirakurunのチャンネルスキャン

「-> no signal. [Error: no available tuners]」が表示される場合は再度やり直すか、Webブラウザhttp://raspberrypi:40772 を開き、Mirakurun UIのStatusタブが開かれたら、StatusのTunerDevice Streamsが0になるまで待ってから再度行う

curl -X PUT "http://localhost:40772/api/config/channels/scan?type=GR&setDisabledOnAdd=false&refresh=true"
sudo mirakurun restart

BS/110度CSのチャンネルスキャンは下記のように行う

curl -X PUT "http://localhost:40772/api/config/channels/scan?type=BS&setDisabledOnAdd=false&refresh=true"
curl -X PUT "http://localhost:40772/api/config/channels/scan?type=CS&setDisabledOnAdd=false&refresh=true"
sudo mirakurun restart
  • DVBデバイスとして認識されるUSBチューナーの場合、Mirakurunのチューナー設定はインストール時に自動的に行われている
  • CATV(C13~C63)のチャンネルスキャンには対応していないので注意

EPGStationのインストール

RAM容量が少ないRaspberry Piの場合、npm run buildでエラーとなるので、スワップ容量を2GBに増やした上で、Node.jsの最大メモリ容量に2GBを指定する

sudo apt-get install -y git ffmpeg
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation
npm run all-install
NODE_OPTIONS="--max-old-space-size=2048" npm run build

EPGStationの設定

サンプルの設定ファイルをコピーして、設定ファイルを作成した後、パッケージでインストールしたFFmpegを使うためにffmpegとffprobeのパスを書き換える

cp config/config.yml.template config/config.yml
cp config/operatorLogConfig.sample.yml config/operatorLogConfig.yml
cp config/epgUpdaterLogConfig.sample.yml config/epgUpdaterLogConfig.yml
cp config/serviceLogConfig.sample.yml config/serviceLogConfig.yml
cp config/enc.js.template config/enc.js
sed -i -e 's/^ffmpeg: \/usr\/local\/bin\/ffmpeg$/ffmpeg: \/usr\/bin\/ffmpeg/' config/config.yml
sed -i -e 's/^ffprobe: \/usr\/local\/bin\/ffprobe$/ffprobe: \/usr\/bin\/ffprobe/' config/config.yml

EPGStationの起動とサービス登録

現在のユーザーでPM2の自動起動が行われるように設定した上で、EPGStationをサービスとして起動し、次回から自動起動するように現在の状態を保存する

sudo pm2 startup -u $USER --hp $HOME
pm2 start dist/index.js --name "epgstation"
pm2 save
cd ..

EPGStationの動作確認

  1. Webブラウザhttp://raspberrypi:8888 を開いて、EPGStationのWebインターフェイスを表示する