Raspberry Piに acarsdeco2とChinachuを導入したときの記録です。
modesmixer2の記録は自分メモですので、読み飛ばしてください。
リンク
必要機材:
Raspberry Pi基本セット
- Acarsdeco2:DVB-Tチューナ(RTL2832U) + VHFを受信できる屋外アンテナ
- Chinachu: PLEX USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0
- Chinachu: SCM ICカードリーダー/ライター B-CAS・住基カード対応 SCR3310
リンク
リンク
リンク
Raspberry Pi初期構築
以下のサイトから「noobs lite」をダウンロードし、解凍してできたファイルをすべてSDカードにコピーします。
コピー終了後、Raspberry Piに挿入すると、起動メニューが開始します。
sshにて接続するまで(Server IP:192.168.11.100)
# sshにてログインするための設定
sudo systemctl enable ssh
sudo useradd USER
sudo passwd USER
sudo /etc/init.d/ssh restart
# cpコマンドで不可視ファイルをコピーする
sudo cp -r /home/pi/. /home/USER
# vi editor関連の処理
sudo update-alternatives --config editor
sudo apt-get install vim lv screen
# sudo のパスワードを入力なしで使う
sudo visudo
USER ALL=NOPASSWD: ALL
# Raspberry PiのTimezoneをAsia/Tokyoに
sudo raspi-config
# 固定アドレスを設定する
sudo vi /etc/dhcpcd.conf
static ip_address=192.168.11.100/24
static routers=192.168.11.1
# このあとはsshにて接続し作業を行う。
# ntp の有効化
echo 'NTP=ntp.nict.jp' | sudo tee -a /etc/systemd/timesyncd.conf >/dev/null
sudo systemctl restart systemd-timesyncd
systemctl status systemd-timesyncd | grep nict
# swap の無効化(必要であれば)
sudo systemctl stop dphys-swapfile
sudo systemctl disable dphys-swapfile
sudo rm -f /var/swap
modesmixer導入(今回の記事では不要な作業です:自分メモ)
scp st* USER@192.168.11.100:/home/USER/modes
scp ./BaseStation.sqb USER@192.168.11.100:/home/USER/modes
# TEST
./modesmixer2 --inConnect 192.168.11.170:30334 --inConnect 192.168.21.170:30334 --outServer sbs10001:10001 --outServer msg:30003 --location 43.396:145.128 --web 8080 --db ./BaseStation.sqb --frdb ./flightroute.sqb
# 表示確認
USBチューナ認識確認:DVB-TチューナRTL2832U
lsusb
Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
RTL-SDRのインストール & TEST
sudo apt-get install rtl-sdr
sudo rtl_test
以下からacarsdeco2をdownload
acarsdeco2導入
cd
mkdir acars
cd acars
ls
acarsdeco2_rpi2-3_debian8_20181201.tgz
tar -xvzf ./acarsdeco2_rpi2-3_debian8_20181201.tgz
# 再起動し、テストするとError
rtl_test
Found 1 device(s):
0: , $, SN: ��v���~L��~ �v���vL��~
Using device 0: Generic RTL2832U OEM
usb_open error -3
Please fix the device permissions, e.g. by installing the udev rules file rtl-sdr.rules
Failed to open rtlsdr device #0.
# Balcklistにデバイスを指定して、再起動。
sudo vi /etc/modprobe.d/rtlsdr-blacklist.conf
blacklist dvb_usb_rtl28xxu
blacklist rtl2830
blacklist dvb_usb_v2
blacklist dvb_core
reboot
# 稼働TEST(sudo必須)
sudo ./acarsdeco2 --freq-correction 65 --freq 131250000 --freq 131450000 --http-port 18090 --net 30008 --no-sq --no-empty
# 確認URL
各種ドライバー等導入
# チューナー(PX-S1UD)導入
cd
mkdir chinachu
cd chinachu
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/x64/amd64/isdbt_rio.inp /lib/firmware/
# カードリーダ(SCR3310)導入
sudo apt-get install build-essential git
sudo apt-get install pcscd libpcsclite-dev libccid pcsc-tools
# B-CASのデコード用ライブラリのインストール
sudo apt-get install cmake
wget https://github.com/stz2012/libarib25/archive/master.zip
unzip master.zip
cd libarib25-master
cmake .
make
sudo make install
# 動作確認
pcsc_scan
# 録画コマンドインストール
cd
cd chinachu
sudo apt-get install autoconf automake
wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.1.tgz
tar xvzf recdvb-1.3.1.tgz
cd recdvb-1.3.1
./autogen.sh
./configure --enable-b25
make
sudo make install
# 録画テスト
sudo recdvb --b25 --strip 37 5 /tmp/video/test_ch37-4sec.ts
# 参考:ローカルネットワーク経由でのリアルタイムストリーミング配信
recdvb –-b25 –-strip -–http 8082
# VLCでのstreaming受信確認
VLC → File → Network
[物理チャンネル]
# node-v6 install
cd ~/chinachu
sudo apt-get install npm
wget https://nodejs.org/dist/v6.11.2/node-v6.11.2-linux-armv7l.tar.xz
tar -xvf node-v6.11.2-linux-armv7l.tar.xz
cd node-v6.11.2-linux-armv7l
sudo cp -R * /usr/local/
Mirakurun 導入
# Mirakurun
sudo apt-get install npm
sudo npm install -g n
sudo n 10.16.3
sudo npm install -g npm
sudo npm install pm2 -g
sudo npm install mirakurun -g --unsafe --production
# 起動確認
sudo mirakurun status
# Tuner設定
sudo cat /usr/local/etc/mirakurun/tuners.yml
-----------------------------------------------------------
- name: PX-S1UD-1
types:
- GR
command: recdvb --b25 --strip <channel> - -
-----------------------------------------------------------
# 物理チャンネル番号を登録する。(時間がかかる)
curl -X PUT "http://localhost:40772/api/config/channels/scan"
# Mirakuranを起動
sudo mirakurun start
# mirakurun起動確認
# リアルタイムストリーミング配信
[物理チャンネル]/stream
# ログローテート関連
sudo pm2 install pm2-logrotate
sudo vi /etc/logrotate.d/mirakurun
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
/{
daily
compress
rotate 7
missingok
notifempty
}
Chinachu導入
# Chinachu本体
sudo apt-get install build-essential curl git-core vainfo
git clone git://github.com/kanreisa/Chinachu.git ~/chinachu/chinachu/
cd ~/chinachu/chinachu/
./chinachu installer
1. Auto を選択
# 録画ルールの初期ファイルを作成
# 作成しない場合はアニメと笑点辺りを自動で録画するルール(rules.sample.json)が設定されます。
$ echo "[]" > rules.json
# 録画設定ファイルの作成
cp config.sample.json config.json
# uid, recordedDir, temporaryDir, recordedFormat 辺りを編集。
vi config.json
"uid": "<追加ユーザ>"
"recordedDir" : "/tmp/video/raspberry/recorded/",
"temporaryDir" : "/tmp/video/raspberry/",
"recordedFormat": "[<date:yymmdd-HHMM>]_<title>.ts",
# NodeJSのシンボリックリンク作成
# node のシンボリックリンク先を確認
cd .nave
ls -la
> node -> /mnt/hdd1/chinachu/.nave/installed/10.16.3/bin/node
> npm -> /mnt/hdd1/chinachu/.nave/installed/10.16.3/bin/npm
# 実際には[10.23.0]を参照しているが、動作に問題は出ていない。
lrwxrwxrwx 1 chinachu chinachu 63 Jan 10 02:13 node -> /home/USER/chinachu/chinachu/.nave/installed/10.23.0/bin/node
lrwxrwxrwx 1 chinachu chinachu 62 Jan 10 02:13 npm -> /home/USER/chinachu/chinachu/.nave/installed/10.23.0/bin/npm
# こちらも実際には[10.23.0]を参照しているが、動作に問題は出ていない。
n でインストールした上記と一致するバージョンのnodeへのシンボリックリンクを作成
cd installed/
ln -s /usr/local/n/versions/node/10.16.3 10.16.3
# chinachuの起動確認
~/chinachu/chinachu/chinachu service wui execute
Ctrl+Cで停止
# chinachuの自動起動
cd ~/chinachu/chinachu
sudo pm2 startup
sudo pm2 start processes.json
sudo pm2 save
# chinachuの番組表更新
~/chinachu/chinachu/chinachu update
mirakurun起動しない
参考にさせていただきました。ありがとうございます。
chinachu不具合対策:番組表が更新できない
以下のログが頻出された場合には、Tuner故障か、受信信号強度が不足している
tail /usr/local/var/log/mirakurun.stdout.log | grep null
2021-01-10T05:39:20.398+09:00 info: TunerDevice#0 process has closed with exit code=0 by signal `null` (pid=829)
この場合mirakurunの Tunersのpidが異常に速い速度で更新されることに注意
Mirakurun起動しない
# 2021/01/13
# server.yml更新後にMirakurun起動せず
netstat -al | grep 772
tcp 0 0 localhost:20772 0.0.0.0:* LISTEN
# Scheduler@Chinachu
ECONNREFUSED /var/run/mirakurun.sock
# この時"/var/run/mirakurun.sock"は存在していた。
cat mirakurun.stderr.log
2021-01-13T20:47:00.814+09:00 warn: db `/usr/local/var/db/mirakurun/services.json` integrity check has failed
2021-01-13T20:47:02.586+09:00 warn: db `/usr/local/var/db/mirakurun/programs.json` integrity check has failed
# 対処:server.ymlを動作していたバージョンに戻し解決
# 参考:正常化同時のserver.yml
cat server.yml.ok.40772
# logLevel: <number>
logLevel: 2
# path: <string>
path: /var/run/mirakurun.sock
# port: <number>
# You can change this if port conflicted.
# Don't expose this port on the internet, not even with NAPT.
# Use this in LAN or VPN.
# `~` to disable TCP port listening.
port: 40772
# netstatにて検証
netstat -al | grep 772
tcp 0 0 localhost:20772 0.0.0.0:* LISTEN
tcp 0 0 localhost:40772 0.0.0.0:* server-ip: LISTEN
# ブラウザにて確認
自動起動するプログラムを記述
方法1
sudo vi /etc/rc.local
方法2
crontab -e
@reboot /home/USER/modes/strt-mm2.by-screen.sh
参考にさせていただきました。ありがとうございます。