ここでも述べたように、録画機のシステムHDDが逝った。
逝っちゃった2.5インチの160GBのHDDは、元々DELL XPS-M1210に載ってたヤツだ。
実は昨年2016年7月に16.04に入れ直した当初からSMART値には異常が検知されてた。 まぁ、なんとかなるかな、と甘い考えで運用してたが、度重なるブレーカー落ちによる電源断で、ダメージが蓄積し、とうとうとどめを刺したようだ。
まぁ自業自得、か。 orz
OSからやり直し
という事で、とりあえず、余っていた2.5インチHDD 320GB(これはエラー無いやつ)に取り換え、OSから入れ直す。 SSD買おうかとも思ったがなんせ時間が無い。通販で買うと3日から5日はかかる。なので余ってるHDDを使う事にした次第だ。
Ubuntu Server 16.04.3 LTS をサイトからダウンロードし DVD-Rメディアへ焼き焼き。
で、こちらのサイトを参考に入れ直し。
>> Ubuntu16.04 LTS上へepgrecUNA環境を構築する|
UbuntuによるEco Linuxサーバ構築記
少々躓きはあったが、自分だけの力だったら、録画環境の再構築は1週間はかかってたかもしれない。本当にお世話になりました。
本来ならば、上記サイトなどを参照すればokなのだが、今後の再構築の為にも手順を備忘録として残しておく事にした。
サーバー構成
CPU | Intel(R) Pentium(R) CPU G2020 @ 2.90GHz, 2 cores |
RAM | 8GB (PC3-12800 4GB x2) |
HDD1 | SEAGATE ST9320325AS(2.5inch 320GB)★ |
HDD2 | WDC WD30EZRX-00D(3.5inch 3TB) |
TUNER | アースソフト PT3 x2 |
OS | Ubuntu Server 16.04.3 LTS |
★今回交換したHDD(中古、余りモノ)
その他にST2000DL003(2TB)も死亡してた。orz
HDDが同時期に2台逝くってのはやはり、度重なる電源断が悪かったんだろうなぁ。
再構築の手順
- ntp、nginx、php、mysql とか必要なソフトのインストール。
下記をザクっとatp使ってインストール。ntp nginx php7.0-fpm php7.0-cli mysql-server mysql-client php7.0-mysql mercurial php7.0-xml php7.0-mbstring - at.deny の修正
cron動作させる為、www-data をat.deny から外す。$ sudo sed -i ‘s/www-data//g’ /etc/at.deny - php.ini の修正
php.iniのすべてに対して、disable_functionsのコメントアウトと、date.timezoneの設定を行う。 (頭に「sudo」付けて実行する。)$ sed -i ‘s/disable_functions/;disable_functions/g’ /etc/php/7.0/fpm/php.ini
$ sed -i ‘s/;date.timezone =/date.timezone = “Asia\/Tokyo”/g’ /etc/php/7.0/fpm/php.ini$ sed -i ‘s/disable_functions/;disable_functions/g’ /etc/php/7.0/cli/php.ini
$ sed -i ‘s/;date.timezone =/date.timezone = “Asia\/Tokyo”/g’ /etc/php/7.0/cli/php.ini - MySQLの設定
/etc/mysql/my.cnf 中の[client]の下に追記[client]
default-character-set=utf8 /etc/mysql/mysql.conf.d/mysqld.cnf 中の[mysqld]の下に下記設定を追加。
[mysqld]
character-set-server=utf8
sql-mode = ”mysql を再起動
$ sudo service mysql restartDB作成
$ mysql -u root -p
mysql > create database epgrec;
mysql > grant all on epgrec.* to epgrec@localhost identified by ‘yourpassword’;
mysql > flush privileges;
mysql > quit; - USBカードリーダー、とPT3ドライバ、epgrec の前準備
下記SW群をapt使って入れる。pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools git build-essential autoconf unzip pkg-configカードリーダーがB-CASカードを認識してるか確認
$ pcsc_scan | grep “Japanese Chijou Digital”
Japanese Chijou Digital B-CAS Card (pay TV)結果が出力されたら、Ctrl+C でコマンド終了する。
- Linux用ARIB STD-B25ライブラリ(
★ )
この箇所は参照したサイトでは省かれてた。しかし、当環境では録画が開始されてファイルも作成されるのだが、再生してみると何も再生されずまっ白のまま。 vlcで再生した際にコーデック情報を確認したら、スクランブルがオンになってる。 もしかしたら、という流れ(何度目かの試行錯誤を経て)でこのライブラリ作成、上手く動作した。$ cd /tmp
$ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
$ unzip c44e16dbb0e2.zip
$ cd pt1-c44e16dbb0e2/arib25
$ make clean && make
$ sudo make install - PT3のドライバインストール
$ cd /tmp
$ echo “blacklist earth_pt3” >> /etc/modprobe.d/blacklist.conf
$ git clone https://github.com/m-tsudo/pt3.git
$ cd pt3/
$ make clean && make
$ sudo make install
$ sudo reboot再起動後、ドライバ認識の確認
$ ls -l /dev/pt*video?
crw-rw-rw- 1 root video 246, 0 8月 15 21:49 /dev/pt3video0
crw-rw-rw- 1 root video 246, 1 8月 15 21:49 /dev/pt3video1
crw-rw-rw- 1 root video 246, 2 8月 15 21:49 /dev/pt3video2
crw-rw-rw- 1 root video 246, 3 8月 15 21:49 /dev/pt3video3
crw-rw-rw- 1 root video 245, 0 8月 15 21:49 /dev/pt3video4
crw-rw-rw- 1 root video 245, 1 8月 15 21:49 /dev/pt3video5
crw-rw-rw- 1 root video 245, 2 8月 15 21:49 /dev/pt3video6
crw-rw-rw- 1 root video 245, 3 8月 15 21:49 /dev/pt3video7 - recpt1 の段
新本家の最新版にrecpt1 httpサーバ機能追加パッチを適用。パッチ(recpt1-http-rev4.tar.gz)は『適当な何かの別館』さんより事前にダウンロード$ cd /tmp
$ wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
$ tar -jxvf tip.tar.bz2
$ tar -zxvf recpt1-http-rev4.tar.gz
$ patch -p2 -d pt1-c8688d7d6382/recpt1/ < recpt1-http-rev4/recpt1-http.diff当方、PT3だけの2枚構成。 それに合わせ pt1_dev.h の内容書き換えて、ビルド。
$ cd /tmp/pt1-c8688d7d6382/recpt1
$ sed -i ‘s/pt1video/pt3video/g’ pt1_dev.h
$ ./autogen.sh
$ ./configure –enable-b25; make ;
$ sudo make install
$ recpt1 -version # バージョン確認
recpt1 1.2.0
recorder command for PT1/2 digital tuner. - epgrecUNA 関連ファイルのダウンロード
epgrecUNA 関連のファイルを作者さんサイトからダウンロード。
※ダウンロードする為のパスワードがまぁムズかった。- epgrecUNA_151114.tar.gz
- epgrecUNA151114Fix1.tar.gz
- epgrecUNA151114Fix2.tar.gz
- epgdumpUNA160127.tar.gz
- epgdump(UNA版) のインストール
epgdumpUNA160127.tar.gz は /tmp 配下に置いとく。$ cd /tmp
$ tar -zxvf epgdumpUNA160127.tar.gz
$ cd /tmp/epgdump
$ make
$ sudo make install - epgrec UNAのインストール
epgrecUNA_151114.tar.gz、epgrecUNA151114Fix1.tar.gz、epgrecUNA151114Fix2.tar.gz は /tmp 配下に置いとく。
epgrec のインストール先を /var/www/html/epgrec として、各種パーミッションを変更する。$ cd /tmp
$ tar zxvf epgrecUNA_151114.tar.gz
$ tar zxvf epgrecUNA151114Fix1.tar.gz
$ tar zxvf epgrecUNA151114Fix2.tar.gz
$ sudo mv epgrec /var/www/html
$ sudo chown -R www-data:www-data /var/www/html/epgrec
$ cd /var/www/html/epgrec
$ sudo chmod 777 templates_c video thumbs settings cache録画ファイル の格納ディレクトリの設定<環境依存>
録画するファイル用に3TB HDD を割り当てる。$ sudo mv /var/www/html/epgrec/video /var/www/html/epgrec/video.org
$ sudo ln -s /mnt/wd30ezrx/video /var/www/html/epgrec/video - epgrec UNA各種設定
/var/www/html/epgrec/config.php の設定#1
地デジマップを地域に合わせて変更。// for 沖縄(南部) 地デジ
$GR_CHANNEL_MAP = array(
“GR17” => “17”, // NHK
“GR13” => “13”, // Eテレ
“GR14” => “14”, // 琉球放送
“GR16” => “16”, // 琉球朝日放送
“GR15” => “15”, // 沖縄テレビ
);/var/www/html/epgrec/config.php の設定#2
地デジチューナの数。PT3が2枚で、4に設定。define( ‘TUNER_UNIT1’,4 ); - nginx の設定
/etc/nginx/sites-enabled/default を設定。
元の設定はコメントアウトでok(らしい)server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.php;
server_name _;
location / {
try_files $uri $uri/ =404;
}location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}サービス再起動
$ sudo service nginx restart - epgrec UNAの初期設定<ブラウザから>
http://サーバアドレス/epgrecにアクセス。 基本画面に従い進めてく。
問題なければ、すんなり終わるが、問題あった場合は...その都度、対処。
変更した設定値は下記の通り。 ここは環境依存だったり、好みだったり。
BSチューナーの台数 4 (PT3が2枚なので)録画ファイル名の形式 %YEAR%%MONTH%%DAY%_%HOUR%%MIN%_%CATE%_%CH2%_%TITLE% ページに表示する番組表の長さ 12 時間 - EPG初期受信
$ sudo /var/www/html/epgrec/shepherd.php
5分から10分程かかる。
受信が終ったら、epgrec UNAの画面(http://サーバーアドレス/epgrec)にアクセスする。
(問題なければ)番組表が表示される。 - EPGの定期受信設定
cronの設定ファイルをコピー。$ sudo cp /var/www/html/epgrec/cron.d/shepherd /etc/cron.d//etc/cron.d/shepherd 内容を実際の値に合わせる。
10 0,4,11 * * * www-data /var/www/html/ epgrec/shepherd.php2時間毎の更新を 0:10 / 4:10 / 11:10 にEPG更新時刻を変更。
- 番組検索画面での検索エラー対策について
/var/www/html/epgrec/templates/programTable.htmlを下記のように修正#666 あたりを修正(赤字)
{if $k_category != 15 || $k_sub_genre>=63 }#679 あたりを修正(赤字)
曜日:{if $weekofday ==127 }なし{else}{$wds_name}{/if}番組検索が表示できなくて相当時間かかった。ここも修正したはずなのだが、上手く表示できない。 最終的に、コメントアウトした元の箇所が生きてたみたいで、コメントアウトした元の行を削除したら上手く動作した。
コメントアウトしたつもりのところが、上手くいかない原因なのが自分っぽい。
番外設定
ここは完全な個人設定。
録画が終わったタイミングでフラグとなるファイルを生成する処理を追加。
/var/www/html/epgrec/gen-thumbnail.sh を下記に書き換え。(赤字部分)
# サムネールを取る時間をFORMER_TIME+αだけずらします
# お好きな時間だけずらしてください
# オフセットを10秒に変更
offset=`expr ${FORMER} +
${FFMPEG} -i “$OUTPUT” -r 1 -s 160×90 -ss ${offset} -vframes 1 -f image2 “$THUMB”
cateid=`echo $OUTPUT | /usr/bin/cut -c 47-48`
case $cateid in
’04’|’07’|’08’)
echo “$cateid : done” > “$OUTPUT.done” ;;
*)
;;
esac
Pingback: webmin のUI、結構変わってた。 ← PCと映画とテレビと、3rd