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をインストールする
- Raspberry Pi公式サイトを開き、上部メニューからSoftware→Our software
- Raspberry Pi OSのページが開いたら、Install Raspberry Pi OS using Raspberry Pi ImagerからDownload for Windowsでダウンロード
- ダウンロードしたRaspberry Pi Imager(imager_1.6.2.exe等)を実行
- このアプリがデバイスに変更を加えることを許可しますか?が出たら、はい
- Welcome to Raspberry Pi Imager Setupが出たら、Install
- Completing Raspberry Pi Imager Setupが出たら、Run Raspberry Pi Imagerのチェックをはずして、Finish
Raspberry Pi OSのインストール
Raspberry Piにディスプレイを接続せず、SSHでリモート接続して使うので、Raspberry Pi OS LiteをSSHを有効にした状態でインストールする
- 2GB以上のmicroSDカードを取り付ける
- スタートメニュー→Raspberry Pi→Raspberry Pi Imager
- このアプリがデバイスに変更を加えることを許可しますか?が出たら、はい
- CHOOSE OS→Raspberry Pi OS (other)→Raspberry Pi OS Lite (32-bit)
- Ctrl+Shift+Xを押して、Advanced optionsが出たら、Enable SSHにチェックを入れて、Set password for 'pi' userにraspberryを入力して、SAVE
- CHOOSE STORAGE→取り付けたmicroSDカードを選択
- WRITE
- Are you sure you want to continue?が出たら、YES
- You can now remove the SD card from the readerが出たら、CONTINUE
- Raspberry Pi Imagerのウィンドウを、右上の×で閉じる
- microSDカードを取り外す(ハードウェアを安全に取り外してメディアを取り出すは必要ない)
- microSDカードの容量は、Raspberry Pi OSだけなら2GBでも良いが、スワップを2GBに増やす場合は4GBが、EPGStationで録画を行う場合はさらに大きな容量が必要になる
Raspberry Pi OSにSSHで接続
- スタートメニューを右クリック→ファイル名を指定して実行
- 名前に「ssh pi@raspberrypi」を入力して、OK
- 初回のみ、Are you sure you want to continue connecting (yes/no)?が出たら、yesを入力
- pi@raspberrypi's password:が出たら、raspberryを入力
- 初回はRaspberry PiにRaspberry 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
- wget、unzipはRaspberry Pi OSに標準でインストールされている
Node.jsのインストール
MirakurunとEPGStationの動作に必要となるNode.jsをインストールする
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs
- curlはRaspberry Pi OSに標準でインストールされている
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
- pythonはRaspberry Pi OSに標準でインストールされている
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の動作確認
- Webブラウザで http://raspberrypi:8888 を開いて、EPGStationのWebインターフェイスを表示する