2022/12/28 ================================================================================================================================ EpgRec 録画サーバーのシステムドライブ(SSD)が故障したので、HDD へ交換し、Linux Mint 17.3 をインストールした記録です。 -------------------------------------------------------------------------------------------------------------------------------- ※ システムドライブが故障してしまったので、MySQL データベース(録画未/済、キーワード、等)は失われてしまいましたので、   OS の再インストールと、EPGREC の構築が必要となりました。 ※ EPGREC 用のハードウェアは接続済みとします。( PT2 x 2枚 、ICカードリーダー ) ※ EPGREC(getepg/do-record.sh)は、既存 HDD(/dev/sdb) 内にあり、OSインストール後、 /var/www/ にマウントし直します。 ■ OS インストール前に、念の為、EPGREC & 録画データ用 HDD(/dev/sdb) の SATA コネクタを外しておきます。 ■ Linux_mint_17.3.iso(USB)より起動し、Linux Mint 17.3 をインストールします。 「インストールの種類」で「それ以外」を選択し、パーティション構成を指定します。 [50GB] / [10GB] swap [残り] data用 ◆ iso からインストールが終了したら、再起動して、全モジュールのアップデートを実行します。 kernel 4.4.0-lts1 (4.4.0-148) ◆ 日本語環境 wget -q http://packages.linuxmint-jp.net/linuxmint-ja-archive-keyring.gpg -O- | sudo apt-key add - sudo wget http://packages.linuxmint-jp.net/sources.list.d/linuxmint-ja.list -O /etc/apt/sources.list.d/linuxmint-ja.list sudo apt-get update sudo apt-get install mint-gnome-ja --install-recommends 依存関係か? ibus が一緒にインストールされますが、無視します。 ibus を削除すると mint-gnome-ja も削除されてしまいます。 「設定」→「Languages」で、 Fcitx を有効にする。 「ソフトウェアマネージャ」で、fcitx-module-kimpanel を削除。( Fcitx の「外観」設定を邪魔するから ) 「ソフトウェアマネージャ」で、fcitx-ui-qimpanel を削除。( Fcitx のアイコンがパネルから消せないので ) 「設定」→「Fcitx の設定」 「入力メソッド」→1番目:「キーボード・日本語」、2番目:「Mozc」 「全体の設定」→「ホットキー」 「入力メソッドのオンオフ」= [ Henkanmode ] [ Zenkakuhankaku ] 「外観」→「クラシックUI」 「フォントサイズ」=11 「フォント」及び「メニューのフォント」=Sans 「システムトレイアイコンを使う」=ON 「状態パネルを隠すモード」=「トレイアイコンが有効なときに隠す」 → [適用] → 閉じる[x] 「設定」→「Mozc の設定」 「一般」→「キー設定」→「キー設定の選択」=「ATOK」→ [OK] ◆ ssh sudo apt-get install ssh ◆ OS再起動の確認 ■ データHDD(/dev/sdb)の接続 データHDD(/dev/sdb)を接続して、/var/www にマウントするように /etc/fstab を設定する。→再起動して確認。 ■ EPGREC 環境構築 ◆ B-CAS カードリーダーの インストール IC カードリーダーのドライバをインストールします。 sudo apt-get install libpcsclite1 libpcsclite-dev libccid pcscd pcsc-tools B-CAS カードが認識されているか確認します。 pcsc_scan    Japanese Chijou Digital B-CAS Card (pay TV)  の様に表示されれば OK です。 arib25(デジタル放送復号化プログラム)をインストールします。 wget http://hg.honeyplanet.jp/pt1/archive/ec7c87854f2f.zip unzip ec7c87854f2f.zip cd pt1-ec7c87854f2f/arib25/src/ make sudo make install ◆ PT2 ドライバの インストール DVB 版ドライバの無効化 インストールするドライバとバッティングするので、OS 内臓のドライバを無効にします。 sudo echo "blacklist earth-pt1" >> /etc/modprobe.d/blacklist.conf chardev 版ドライバの インストール wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2 tar jxf tip.tar.bz2 cd `ls -tr | tail -1`/driver make sudo make install sudo reboot 再起動後、ドライバがインストールできているか確認します。 ls -lart /dev/ |grep pt1    crw-rw-rw- 1 root video 250, 3 2011-05-01 17:36 pt1video3    crw-rw-rw- 1 root video 250, 2 2011-05-01 17:36 pt1video2    crw-rw-rw- 1 root video 250, 1 2011-05-01 17:36 pt1video1    crw-rw-rw- 1 root video 250, 0 2011-05-01 17:36 pt1video0    crw-rw-rw- 1 root video 249, 3 2011-05-01 17:36 pt1video7    crw-rw-rw- 1 root video 249, 2 2011-05-01 17:36 pt1video6    crw-rw-rw- 1 root video 249, 1 2011-05-01 17:36 pt1video5    crw-rw-rw- 1 root video 249, 0 2011-05-01 17:36 pt1video4     の様に表示されれば OK です。 ◆ recpt1 の インストール wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2 tar jxf tip.tar.bz2 cd `ls -tr | tail -1`/recpt1 ./autogen.sh ./configure --enable-b25 make sudo make install ◆ LAMP 環境の インストール LANP = LAN , Apache2 , MySQL , PHP5 sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli Apache2 のドキュメントのルートディレクトリを変更します。 sudo vi /etc/apache2/sites-available/000-default.conf DocumentRoot /var/www/html   →  DocumentRoot /var/www/epgrec Apache2 に IP フィルタを設定します。 sudo vi /etc/apache2/apache2.conf   ↓== この区間に           Options Indexes FollowSymLinks       AllowOverride None       Require all granted       order deny,allow この3行を追加し、       deny from all       allow from 192.xxx.xxx.0/24 アクセスを許可する IP アドレスまたはその範囲を記述します。       ↑== 変更した設定を有効にするために、 Apache2 を再起動します。 sudo service apache2 restart MySQL の インストール sudo apt-get install mysql-server php5-mysql mysql -u root -p Enter password: mysql> create database epgrec; mysql> grant all privileges on *.* to epgrec@localhost identified by 'epgrec'; mysql> quit sudo reboot ◆ epgdump の インストール epgdump は、電子番組表(EPG)を取得するプログラムです。 wget http://xreknishi.g1.xrea.com/epgrec/files/epgdumpr2-utf8.tar.gz tar -zxvf epgdumpr2-utf8.tar.gz cd epgdumpr2 make sudo cp epgdump /usr/local/bin ◆ 環境設定 www-data の設定 EPGrec では、ユーザー "ww-data" がシェルを実行して録画を行うので、ユーザー "www-data" がシェルを使えるように設定しておきます。 sudo vi /etc/passwd www-data:x:33:33:www-data:/var/www:/usr/sbin/nolohin  → www-data:x:33:33:www-data:/var/www:/bin/bash   at の インストール sudo apt-get install at ユーザー "www-data" が at を使えるように設定しておきます。 sudo vi /etc/at.deny    www-data   を削除します。 ■ EPGREC のセットアップ ◆ ブラウザからセットアップスクリプトを実行する。 http://epgrec/install/step1.php → step5.php を開き、内容を確認。 step5.php で、getepg が実行され、EPG番組表が作られる。(2重実行しないように注意します) ※ 文字化け対策で、step1.php と step5.php に、下記構文を追加しました。 echo ''; ◆ getepg を cron へ登録します。 /var/www/epgrec/cron.d/getepg の内容を確認します。 sudo cp /var/www/epgrec/cron.d/getepg /etc/cron.d/ sudo chmod 644 /etc/cron.d/getepg ■ 関連アプリ/設定 ◆ miniDLNA sudo add-apt-repository ppa:djart/minidlna sudo apt-get update sudo apt-get install minidlna sudo vi /etc/minidlna.conf    media_dir=V,/var/www/epgrec/video    friendly_name=EPGrec   <== 表示名は任意。 ◆ recbymail は、Google がセキュリティを強化したため、2022/05/30から使えなくなりました。 ◆ S.M.A.R.T smartctl のメッセージをメールで送信できなくなったので、メッセージを epgrec/ 配下に、index.html としてを書き出す事にしました。 sudo apt-get install smartmontools /var/www/scr/smarthtml/ を作成。 → cron にて定期的にチェック。 ※ 詳細は下記↓を参照。 ■ その他のアプリケーションソフトウェア Google Chrome wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' sudo apt-get update ※ 2022/12/28現在、google-chrome-stable が「ソフトウェアマネージャ」でインストールできなくなったので、   インストール済みPCの /var/cache/apt/archives/ 配下の deb ファイルからインストールします。 ★ 起動時に、キーリングパスワードの入力を要求されますが、空欄のまま続行すれば、その後、キーリングパスワードを要求されなくなります。  設定してしまった、キーリングパスワードを削除するには、~/.local/share/keyrings/ 内のファイルを削除すれば OK です。  不安な場合は、一旦ゴミ箱に入れてみましょう。 Leafpad 「ソフトウェアマネージャ」でインストール なぜか、設定が保存できない。 ~/.config/leafpad/ の権限が root になっています → 権限を変更すれば OK です。 Smplayer お気に入りの古いバージョンを指定してインストールします sudo apt-get install smplayer=0.8.6-2 日本語対応(マルチ言語化)します sudo apt-get install smplayer-translations [オプション] → [ツールバー] → [メイン ツールバー]=OFF [オプション] → [環境設定] → [全般] → [ビデオ] → [出力ドライバー]=gl(高速) [オプション] → [環境設定] → [インターフェース] → [フローティングコントロール] → [□ アニメーション]=OFF コントロールバー編集 [電源] [Stop] [Play] [Pause/コマ送り] [<<<] [<<] [<] [>] [>>] [>>>] [タイムスライダー] [ボリューム] その他の場合 インストール済みパッケージを確認する dpkg -l smplayer* インストール可能なバージョンを確認する sudo apt-cache madison smplayer 不要なパッケージを削除する sudo apt-get purge smplayer ================================================================================================================================= ◆ S.M.A.R.T smartctl のメッセージをメールで送信できなくなったので、メッセージを epgrec/ 配下に、index.html としてを書き出す事にしました。 sudo apt-get install smartmontools /var/www/scr/smarthtml/ を作成。 → cron にて定期的にチェック。 smarthtml.sh スクリプト ----------------------------------------------------------------------------------------- #!/bin/bash cd `dirname ${0}` INDEX="/var/www/epgrec/index.html" echo > smart_now.txt for DRIVE in `ls -1 /dev/hd? /dev/sd? 2>/dev/null`; do echo (password)|sudo -S smartctl -a ${DRIVE}|grep -f smart_greps >> smart_now.txt && echo >> smart_now.txt done diff smart_now.txt smart_good.txt > /dev/null 2>&1 if [ $? -eq 1 ]; then echo '' > ${INDEX} echo 'S.M.A.R.T レポート
' >> ${INDEX} cat smart_now.txt | while read LINE; do echo "${LINE}
" >> ${INDEX} done echo '
' >> ${INDEX} fi ----------------------------------------------------------------------------------------- ファイル群 smarthtml.sh - シェルスクリプト本体 smart_greps - smartctl -a の出力から欲しい行を grep する為の項目一覧 smart_good.txt - 比較判定用の初期値(良好な出力)、初回の smart_now.txt をリネームすれば良い。 smart_now.txt - スクリプト実行時の値 動作説明 smartctl -a の結果(grep で項目を絞ったもの)を初期値と比較して、差が生じた時、その結果を /epgrec/index.html として出力する事により、epgrec ホーム(番組表)を開いた時、異常を知ることができる。 /epgrec/index.html の削除は手作業で行う。 smart_greps の例(個々の環境により、正常時は値の変化しない項目を選定する) ----------------------------------------------------------------------------------------- Device Model: Raw_Read_Error_Rate Reallocated_Sector_Ct Seek_Error_Rate Spin_Retry_Count Calibration_Retry_Count Program_Fail_Count_Chip Erase_Fail_Count_Chip Wear_Leveling_Count Used_Rsvd_Blk_Cnt_Chip Program_Fail_Cnt_Total Erase_Fail_Count_Total Reported_Uncorrect Reallocated_Event_Count Current_Pending_Sector Offline_Uncorrectable UDMA_CRC_Error_Count Multi_Zone_Error_Rate ----------------------------------------------------------------------------------------- 以上