2010/07/10〜2011/03/12更新 | |
CentOS5.5 + PT2 + EPGrec で、地デジ録画サーバーを作る。 ( PT2 x 2 枚 = 4ch 同時録画 ) | |
アナログのTV録画にはSONYのCoCoonを愛用してきましたが、地デジ化を控えて対応を検討してきました。地デジ版CoCoonの登場を心待ちにしながら、いろいろ調べていました。その中で、録画PCサーバーを自作する記事をいくつか見つけました。地デジ版CoCoonの登場については、期待がかなえられそうなかったので、PCベースの録画サーバーを自作してみるのもいいかもと考えるようになりました。また、CoCoonの2ch同時録画では、ch数に不足を感じることがあったので、PT2を2枚挿して、4ch同時録画できるようにしようと思いました。 | |
製作にあたっては、様々なホームページの情報を参考にさせていただきましたが、1カ所で全ての情報がカバーできるページがなかったので、内容をまとめて公開することにしました。これからPT2で録画サーバーを構築しようと考えている方々の助けになればうれしいです。 | |
ハードウェアの準備 | ||||||||||||||||
※PT2を2枚挿すので、PCIスロットは2本以上が必須です。低消費電力で静かなマシンを目指しました。 | ||||||||||||||||
マザーボード | GA-H55M-S2H (PCIx2本のMicroATXマザーボードたち) | |||||||||||||||
→変更 | (2010/10/09) P7H55D-M PRO に変更しました。 | |||||||||||||||
CPU | Intel Pentium Dual Core G6950 | |||||||||||||||
メモリー | DDR3 2GB x1 | |||||||||||||||
HDD | WD20EARS-00MVWB ※後日、LVMでHDDを1台追加して容量を増設ました。 | |||||||||||||||
チューナーカード | PT2 x2枚 | |||||||||||||||
ICカードリーダ | NTT-ME SCR3310-NTTCom <<== B-CASカードの接続に必要です。 | |||||||||||||||
B-CASカード | 手持ちの地デジTVのものを使用。 | |||||||||||||||
USBポート変換器 | 世田谷電器 USB9pinポート変換 <<== ICカードリーダーをケースに内蔵するために使用しました。 | |||||||||||||||
※マザーボードを変更したことにより使えなくなりました。形状に注意が必要です。 | ||||||||||||||||
VU・BS・CS分配器 | マスプロ電工 タップ型4分配器 CSP4D-P <<== アンテナ線を分配するために必要です。 | |||||||||||||||
ケース | ANTEC NSK2480 | |||||||||||||||
その他 | CPUファン、ケースファン、電源ファンを静音タイプに交換しました。 | |||||||||||||||
H55チップセットのヒートシンクを容量の大きいものに交換しました。 | ||||||||||||||||
|
||||||||||||||||
![]() ![]() ![]() ![]() ![]() |
||||||||||||||||
|
||||||||||||||||
完成後、ワットメータを借りられる機会があったので消費電力を測定しました。 ※HDDx1台構成の時の値です。
ちなみに、PT2x2枚を外したところ、アイドリング時は40Wだったので、PT2x1枚は5.5Wという事になります。 (2010/10/3) GA-H55M-S2Hに、チップセット(H55)が、ヒートシンクが触っていられないくらい発熱するので、ヒートシンクを容量の大きいものに交換しました。 (2010/10/09) サーバーがランダムに時々落ちる(電源は落ちないがハングアップしている?)。マザーボードの不具合でチップセットが発熱していることが原因ではないかと思い、マザーボードを ASUS P7H55D-M PRO に交換してみましたが、チップセットの発熱は変わりませんでした。どうもPT2が動作すると発熱する様な気がしますが、はっきりしたことはわかりません。仕方がないので、P7H55D-M PRO のチップセットのヒートシンクも容量の大きいものに交換しました。安定性の検証はこれからです。マザーボードをP7H55D-Mに交換して良かった事は、サイレントモードがあり、FANの動作音がより静かになった事です。GA-H55M-S2Hとの互換性はLANチップが変わったことに対してIP-Addressの設定をやり直すだけで動作OKでした。 (2010/12/04) 安定性向上を目指して、OS等を時々"yum update"していますが、これについては特に問題はない様です。 しかし、PT2のドライバーの最新版"7662d0ecd74b.tar.bz2"を入れたところ問題が起こりました。症状は、毎日深夜にシステムがダウンすというものです。ドライバーを元の"38a793ac3d9d.tar.bz2"に戻す事で不具合は出なくなりましたが、どのバージョンがベストなのかは不明です。 (2011/03/12) ハングアップを起こす時間帯が、深夜に多かったので、23:00〜5:00の間getepgを動かさないようにしてみました。これは、効果があるようです。事情により19日間しか確認できませんでしたが、19日間連続稼働しました。放送休止時間帯のegpdumpの動作に問題があるのではないかと思います。 |
||||||||||||||||
|
||||||||||||||||
DTP35Wの新型core iシリーズが発表&発売されたので、低消費電力化のために気になっています。 | ||||||||||||||||
注目している製品 | ||||||||||||||||
Intel Core i5 2390T | ||||||||||||||||
ASUS P8H67-M LE | ||||||||||||||||
>> 結局 Core i5 T2390T が待てど暮らせど発売にならなかったので、Core
i3 2100T + P8H67-M LE に交換しました。 すると、Video ドライバが未対応だったので、Ubuntu10.10 で再構築しました。 結果、Ubuntu の方が、起動が速く、運用後も長期間安定して動作しています。 |
||||||||||||||||
CentOSのインストールと設定 | ||||||||||||||||||||||||||||||
CentOSは、Red Hat Enterprise
Linuxとの完全互換を目指したフリーのLinuxディストリビューションです。 ダウンロードは、http://www.centos.org/からプラットフォームに合わせて、i386版かx86_64版をダウンロードしてください。ここでは、CentOS-5.5-X86_64を使用しました。 |
||||||||||||||||||||||||||||||
CentOSのインストールは、GUI環境(GNOMEデスクトップ)を入れました。 CentOSはGUI環境をインストールすると、デフォルトでLVMを構成してくれます。 LVMを構成しておくと後からHDDを追加して録画容量を増やすことができます。 |
||||||||||||||||||||||||||||||
LAN経由でサーバーを使用するためのユーザー"EPGrec"を追加しました。 | ||||||||||||||||||||||||||||||
# useradd epgrec | ||||||||||||||||||||||||||||||
インストール作業中にユーザーを切り替えるのが面倒なので、インストール作業は全て"root"で行いました。 | ||||||||||||||||||||||||||||||
(2010/12/19追記) NICについて下記の情報を見つけたので、ドライバーを入れ直そうとしましたが、makeエラーになりインストールできませんでした。 CentOSにNICを手動インストールした人は、正しいドライバが入っているかチェックしたほうがよさげ P7H55-MでNICドライバを再インストールする羽目になりました。 |
||||||||||||||||||||||||||||||
サーバー用途ではGUIログインは不要なので、インストール完了後、デフォルトをCUIログインに変更します。 | ||||||||||||||||||||||||||||||
# vi /etc/inittab id:5:initdefault: を ↓ id:3:initdefault: へ変更 |
||||||||||||||||||||||||||||||
必要なときは"startx"コマンドでGUIデスクトップを起動できます。 | ||||||||||||||||||||||||||||||
インターネット経由でシステムやソフトの更新や追加を行うので、インターネットに接続してください。 | ||||||||||||||||||||||||||||||
下記のコマンドでネットワーク接続の設定変更ができます。 録画予約ソフトEPGrecはwebブラウザから操作するのでサーバーのIPアドレスは固定しておいた方が楽です。 |
||||||||||||||||||||||||||||||
# system-config-network | ||||||||||||||||||||||||||||||
startxでGNOMEデスクトップを起動し、アプリケーションの追加/削除で、録画サーバーとして必要のないアプリケーションを削除しましょう。誤って、GNOMEデスクトップ環境を削除してしまった場合は、下記のインストールで復活することができます。 | ||||||||||||||||||||||||||||||
# yum groupinstall "X Window System" "GNOME Desktop Environment" | ||||||||||||||||||||||||||||||
不要なアプリケーションの整理が終わったら、yumでOSを最新版に更新しておきましょう。 yumにはたくさんのミラーサーバーがあります。回線速度の速いサーバーを自動的に選択してくれるソフトを入れてからアップデートを実行するとよいでしょう。 |
||||||||||||||||||||||||||||||
# yum install yum-fastestmirror # yum update |
||||||||||||||||||||||||||||||
録画サーバーは、SSH,telnet.ftp.sambaなどで外部機器と通信する必要がありますが、CentOSはデフォルトでネットワークセキュリティやSELinux設定が有効になっているため、これらの通信ができない場合があります。そのときは下記のコマンドで設定を変更します。 | ||||||||||||||||||||||||||||||
# system-config-securitylevel | ||||||||||||||||||||||||||||||
ネットワーク端末から操作できるようにtelnet-serverをインストールしましょう。 telnet-serverはxinetd上で動作しますのでxinetdと共にインストールします。 |
||||||||||||||||||||||||||||||
# yum install xinetd # yum install telnet-server # chkconfig xinetd on # chkconfig telnet on # /sbin/service xinetd restart |
||||||||||||||||||||||||||||||
自動的に時計を合わせるため、インターネットのntpサーバーを設定します。 | ||||||||||||||||||||||||||||||
まず、ntpクライアントをインストールします。 | ||||||||||||||||||||||||||||||
# yum install ntp | ||||||||||||||||||||||||||||||
ntp設定を行います。ntp.confファイルにntpサーバーの設定を追加します。 | ||||||||||||||||||||||||||||||
# vi /etc/ntp.conf server ntp.server.name <==サーバーは環境に合わせて設定してください。たいがいプロバイダーが提供しています。 restrict ntp.server.name mask 255.255.255.255 nomodify notrap noquery |
||||||||||||||||||||||||||||||
ntpサーバーとの通信が有効かどうか確認します。 | ||||||||||||||||||||||||||||||
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== ntp.server.name xxx.xxx.xxx.xxx 3 u 211 1024 377 31.810 -0.120 1.443 こんな感じの表示が出ればOK |
||||||||||||||||||||||||||||||
ntpの自動起動設定とntpdの起動を行います。 | ||||||||||||||||||||||||||||||
# chkconfig ntp on # /sbin/service ntpd start |
||||||||||||||||||||||||||||||
録画サーバーとして必要のないデーモンを停止しましょう。 | ||||||||||||||||||||||||||||||
# /sbin/service bluetooth stop # /sbin/service ip6tables stop # /sbin/service irda stop # /sbin/service sendmail stop # chkconfig bluetooth off # chkconfig ip6tables off # chkconfig irda off # chkconfig sendmail off |
||||||||||||||||||||||||||||||
ftpdをインストールしましょう。 | ||||||||||||||||||||||||||||||
# yum install *ftpd* # chkconfig vsftpd on # /sbin/service vsftpd start |
||||||||||||||||||||||||||||||
sambaをインストールしましょう。 | ||||||||||||||||||||||||||||||
# yum install samba | ||||||||||||||||||||||||||||||
gccをインストールしましょう。 |
||||||||||||||||||||||||||||||
各種ドライバーをインストールするにはソースファイルのコンパイルが必要です。そして、コンパイルにはgccが必要です。 | ||||||||||||||||||||||||||||||
# yum install gcc | ||||||||||||||||||||||||||||||
PT2のインストール | ||||||||||||||||||||||||||||||
PT2のドライバーをインストールするにはmercurialが必要ですが、yumではmercurialはインストールできません。 mercurialをインストールするにはRPMForgeリポジトリが必要です。 |
||||||||||||||||||||||||||||||
RPMForgeリポジトリをインストールします。 | ||||||||||||||||||||||||||||||
RPMForgeの最新版は"http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/"で確認してください。 | ||||||||||||||||||||||||||||||
# yum install yum-priorities # wget http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm # wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt # rpm --import RPM-GPG-KEY.dag.txt # rm RPM-GPG-KEY.dag.txt # rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm # rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm |
||||||||||||||||||||||||||||||
RPMForgeはサードパーティのリポジトリなので必要な時以外は使わないようにデフォルトOFFに設定しておきます。 | ||||||||||||||||||||||||||||||
# vi /etc/yum.repos.d/rpmforge.repo enabled = 0 としておきます。 |
||||||||||||||||||||||||||||||
RPMforgeリポジトリを使いたいときは、下記の様に入力します。 # yum --enablerepo=rpmforge install xxxxxxxx |
||||||||||||||||||||||||||||||
mercurialのインストール | ||||||||||||||||||||||||||||||
# yum --enablerepo=rpmforge install mercurial | ||||||||||||||||||||||||||||||
PT2カードを挿して、OSからカードが見えているか確認します。 | ||||||||||||||||||||||||||||||
# /sbin/lspci|grep Multimedia 04:01.0 Multimedia controller: Xilinx Corporation Unknown device 222a (rev 01) 04:02.0 Multimedia controller: Xilinx Corporation Unknown device 222a (rev 01) の様に表示されればOK |
||||||||||||||||||||||||||||||
PT2のドライバーのインストール | ||||||||||||||||||||||||||||||
PT2のドライバーは、"http://hg.honeyplanet.jp/pt1"からダウンロードします。 (2010/12/04、最新版"7662d0ecd74b"では問題が起こりました。) |
||||||||||||||||||||||||||||||
# wget http://hg.honeyplanet.jp/pt1/archive/4d42c5c28557.tar.bz2 # tar -xvf 4d42c5c28557.tar.bz2 # cd pt1-4d42c5c28557/driver # make (エラーが出ないことを確認してください。) makeで make -C /lib/modules/`uname -r`/build M=`pwd` V=0 modules make: *** /lib/modules/2.6.18-194.xx.x.el5/build: そのようなファイルやディレクトリはありません. 中止. make: *** [pt1_drv.ko] エラー 2 などのエラーが発生する場合は、"kernel-devel"がインストールされていないと思います。 yum install kernel-devel で、"kernel-devel"をインストールしてから再度"make"を実行してみてください。 # make install # insmod /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko 既に"pt1_drv.ko"がinsmod済みの場合下記のようなエラーが出ます。 insmod: error inserting '/lib/modules/2.6.18-194.xx.x.el5/kernel/drivers/video/pt1_drv.ko': -1 File exists バージョンアップする場合などは、一度"rmmod"で削除してから"insmod"してください。 rmmod /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko |
||||||||||||||||||||||||||||||
ドライバーがインストールできたか確認します。 | ||||||||||||||||||||||||||||||
# ls /lib/modules/`uname -r`/kernel/drivers/video/|grep pt1 pt1_drv.ko と表示されればOK # ls /etc/udev/rules.d/|grep pt1 99-pt1.rules と表示されればOK # lsmod | grep pt1 pt1_drv 66988 0 の様に表示されればOK # ls -l /dev/pt1* crw-rw-rw- 1 root root 253, 0 7月 9 21:34 /dev/pt1video0 crw-rw-rw- 1 root root 253, 1 7月 9 21:34 /dev/pt1video1 crw-rw-rw- 1 root root 253, 2 7月 9 21:34 /dev/pt1video2 crw-rw-rw- 1 root root 253, 3 7月 9 21:34 /dev/pt1video3 crw-rw-rw- 1 root root 252, 0 7月 9 21:34 /dev/pt1video4 crw-rw-rw- 1 root root 252, 1 7月 9 21:34 /dev/pt1video5 crw-rw-rw- 1 root root 252, 2 7月 9 21:34 /dev/pt1video6 crw-rw-rw- 1 root root 252, 3 7月 9 21:34 /dev/pt1video7 の様に表示されればOK |
||||||||||||||||||||||||||||||
※PT2のドライバーはCentOSのカーネルバージョンフォルダ配下に登録されます。 従って、カーネルをバージョンアップなどしてカーネルバージョンが変わった場合は再インストールが必要です。 |
||||||||||||||||||||||||||||||
ICカードリーダーのインストール | ||||||||||||||||||||||||||||||
ICカードリーダーを接続して、B-CASカードを差し込みましょう。 ICカードリーダーをインストールするにはpcsc-lite、pcsc-perl、pcsc-toolsが必要です。 |
||||||||||||||||||||||||||||||
まず、pcsc-liteをインストールします。 | ||||||||||||||||||||||||||||||
# yum install pcsc* | ||||||||||||||||||||||||||||||
次に、perlをインストールします。 | ||||||||||||||||||||||||||||||
# yum install perl | ||||||||||||||||||||||||||||||
そして、pcsc-perlとpcsc-toolsをインストールします。 | ||||||||||||||||||||||||||||||
# wget ftp://ftp.kddlabs.co.jp/033/Linux/packages/fedora.archive/releases/8/Everything/x86_64/os/Packages/pcsc-perl-*.x86_64.rpm # wget ftp://ftp.kddlabs.co.jp/033/Linux/packages/fedora.archive/releases/8/Everything/x86_64/os/Packages/pcsc-tools-*.x86_64.rpm # rpm -ivh pcsc-perl-*.x86_64.rpm # rpm -ivh pcsc-tools-*.x86_64.rpm |
||||||||||||||||||||||||||||||
最後にb25のデコード用プログラムをインストールします。 | ||||||||||||||||||||||||||||||
最新のPT2ドライバにはb25のデコード用プログラムが同梱されていないので少し古めのドライバーをダウンロードします。 | ||||||||||||||||||||||||||||||
# wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.tar.bz2 # tar -xvf c44e16dbb0e2.tar.bz2 # cd pt1-c44e16dbb0e2/arib25 # make (エラーが出ないことを確認してください。) # make install |
||||||||||||||||||||||||||||||
スマートカードリストを更新します。 | ||||||||||||||||||||||||||||||
# mv /usr/share/pcsc/smartcard_list.txt /usr/share/pcsc/smartcard_list.txt.bak # cp pt1-c44e16dbb0e2/b25_docs/smartcard_list.txt /usr/share/pcsc/ |
||||||||||||||||||||||||||||||
スマートカードが認識されていることを確認します。 | ||||||||||||||||||||||||||||||
# pcsc_scan B-CAS という行が表示されていればOK [ctrl]+c で終了 |
||||||||||||||||||||||||||||||
録画用プログラムrecpt1のインストール | ||||||||||||||||||||||||||||||
# cd pt1-38a793ac3d9d/recpt1 # ./autogen.sh # ./configure -enable-b25 # make (エラーが出ないことを確認してください。) # make install # echo "/usr/local/lib" > /etc/ld.so.conf.d/recpt1.conf # ldconfig # ldd /usr/local/bin/recpt1 # reboot |
||||||||||||||||||||||||||||||
録画テストを行う | ||||||||||||||||||||||||||||||
再起動したら、録画できるかテストしましょう。 アンテナを接続してください。(S1=BS/CS、T1=地デジ、S2=BS/CS、T2=地デジ) |
||||||||||||||||||||||||||||||
recpt1の書式は下記の通りです。 recpt1 --strip --b25 ”録画したいチャンネル” ”録画時間(秒)” ”保存ファイル名” 地域毎のチャンネル番号はマスプロのチャンネル一覧等で確認してください。 |
||||||||||||||||||||||||||||||
(例)30秒間録画してみます。 | ||||||||||||||||||||||||||||||
# recpt1 --strip --b25 37 30 testrec.ts | ||||||||||||||||||||||||||||||
今までのインストールがうまくいっていれば、"testrec.ts"というファイルができているはずです。 mpeg2ファイルを再生できるソフトで再生してみましょう。再生できればOKです。 ※アンテナの入力レベルが不足していると録画されません。 |
||||||||||||||||||||||||||||||
EPGrecのインストール | ||||||||||||||||||||||||||||||
linux用の録画予約のフロントエンドとしてEPGrecをインストールしましょう。 EPGrecのオフィシャルページはここです。 |
||||||||||||||||||||||||||||||
EPGrecにはperl-Gtk2が必要です。perl-Gtk2をインストールします。 | ||||||||||||||||||||||||||||||
# yum --enablerepo=rpmforge install perl-Gtk2 | ||||||||||||||||||||||||||||||
EPGrecはepgdumpを必要としますので、epgdumpをインストールします。 | ||||||||||||||||||||||||||||||
"epgdump"は地デジデータらEPG番組情報を取り出すプログラムです。EPGrecは"epgdump"で取り出した番組情報をMySQLデータベースに格納して使用します。ここから"epgdumpr2-utf8.tar.gz"をダウンロードして解凍します。 | ||||||||||||||||||||||||||||||
# tar -zxvf epgdumpr2-utf8.tar.gz | ||||||||||||||||||||||||||||||
コンパイルして、実行ファイルをコピーします。 | ||||||||||||||||||||||||||||||
# cd epgdumpr2 # make # cp epgdump /usr/local/bin |
||||||||||||||||||||||||||||||
EPGrecは録画予約の実行にatを使いますので、atをインストールします。 | ||||||||||||||||||||||||||||||
# yum install at | ||||||||||||||||||||||||||||||
EPGrecはユーザーapacheで実行されます。 /etc/at.denyにapacheが登録されていたら削除します。 |
||||||||||||||||||||||||||||||
# vi /etc/at.deny | ||||||||||||||||||||||||||||||
atdを起動します。 | ||||||||||||||||||||||||||||||
# chkconfig atd on # /sbin/service atd start |
||||||||||||||||||||||||||||||
apacheがシェルにログインできるようにします。 | ||||||||||||||||||||||||||||||
# vi /etc/passwd ログインシェルが、 /sbin/nologin になっていますので、 ↓ /bin/bash に変更します。 |
||||||||||||||||||||||||||||||
EPGrecはいわゆるLAMP環境を要求しますので、httpd、MySQL Server、PHP、PHP CLI版をインストールします。 | ||||||||||||||||||||||||||||||
# yum install httpd # yum install mysql # yum install mysql-server # yum install php |
||||||||||||||||||||||||||||||
EPGrecでは、内部でいくつかのphp拡張パッケージを利用していますので、インストールします。 | ||||||||||||||||||||||||||||||
# yum install php-mysql # yum install php-mbstring |
||||||||||||||||||||||||||||||
いよいよepgrec本体をインストールします。 | ||||||||||||||||||||||||||||||
EPGrecの最新版をダウンロードし、CentOSへ持っていきます。 (例)http://sourceforge.jp/projects/epgrec/downloads/46492/epgrec-20100322.tar.gz/ |
||||||||||||||||||||||||||||||
# tar xvzpf epgrec-20100322.tar.gz -C /var/www/ | ||||||||||||||||||||||||||||||
/var/www/epgrec/以下に作成されたファイルのパーミッションが下記のようになっているか確認します。 | ||||||||||||||||||||||||||||||
# ls -l /var/www/epgrec cache/ 777 templates_c/ 777 video/ 777 thumbs/ 777 settings/ 777 その他のディレクトリ 755 do-record.sh* 755 do-record.sh.friio* 755 do-record.sh.test* 755 do-record.sh.pt1* 755 getepg.php* 755 recomplete.php* 755 gen-thumbnail.sh 755 その他のファイル 644など |
||||||||||||||||||||||||||||||
設定ファイル/var/www/epgrec/config.phpを作ります。 | ||||||||||||||||||||||||||||||
# mv /var/www/epgrec/config.php.sample /var/www/epgrec/config.php # vi /var/www/epgrec/config.php // 識別子 => チャンネル番号 $GR_CHANNEL_MAP = array( ここに自分の環境に合わせて、"CH設定名" => "ch番号" の様に設定します。 ch番号はマスプロのチャンネル一覧等を参考にしてください。 ); |
||||||||||||||||||||||||||||||
また、私の場合は"PADDING_TIME"の値を変更しました。 この値は、放送中の番組の録画予約を行ったときの録画開始までの待ち時間になっています。 私は直ぐに録画を開始して欲しかったのでこの値をゼロにしました。 この値を"0"にしても”Reservation.class.php”の中でさらに10秒待つ処理になっています。 |
||||||||||||||||||||||||||||||
define( "PADDING_TIME", 180 ); ↓ define( "PADDING_TIME", 0 ); |
||||||||||||||||||||||||||||||
do-record.shの準備 pt2用のサンプルdo-record.sh.pt1をコピーしてdo-record.shを準備します。 |
||||||||||||||||||||||||||||||
# cp --archive /var/www/epgrec/do-record.sh.pt1 /var/www/epgrec/do-record.sh # vi /var/www/epgrec/do-record.sh #!/bin/sh ↓ #!/bin/bash シェルをbashに変更しておきます。apacheユーザーで設定したシェルに合わせておきます。 |
||||||||||||||||||||||||||||||
MySQLデータベースの準備 | ||||||||||||||||||||||||||||||
CentOSとEPGデータは文字コードがUTF-8なので、MySQLでUTF-8が扱えるように設定します。 | ||||||||||||||||||||||||||||||
# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 default-character-set = utf8 <== 設定を追加します。 [mysql] <== 設定を追加します。 default-character-set = utf8 <== 設定を追加します。 |
||||||||||||||||||||||||||||||
MySQLサーバーを起動します。 | ||||||||||||||||||||||||||||||
# chkconfig mysqld on # /sbin/service mysqld start |
||||||||||||||||||||||||||||||
EPGrec用のデータベースの作成 データベース名=epgrec、ユーザー名=epgrec、パスワード=epgrecでデータベースを作成する。 |
||||||||||||||||||||||||||||||
# mysql -u root mysql> show databases; <== 登録済みデータベース名を表示する。 mysql> create database epgrec; <== epgrecというデータベースを作成する。 mysql> select user,host,password from mysql.user; <== 登録済ユーザ名、パスワードを表示する。 mysql> grant all privileges on *.* to epgrec@localhost identified by 'epgrec'; <== パスワード=epgrecで、ユーザー=epgrec@localhostを登録する。 mysql> exit <== mysqlを終了する。 |
||||||||||||||||||||||||||||||
httpd(apache)を起動する。 | ||||||||||||||||||||||||||||||
httpdの設定 | ||||||||||||||||||||||||||||||
# vi /etc/httpd/conf/httpd.conf #DocumentRoot "/var/www/html" <== コメント化 DocumentRoot "/var/www/epgrec" <== DocumentRootを"/var/www/epgrec"に設定 <Directory "/var/www/epgrec"> <== 設定を追加 Options FollowSymLinks <== 設定を追加 AllowOverride None <== 設定を追加 Order allow,deny <== 設定を追加 Allow from xxx.xxx.xxx localhost <== 設定を追加(xxx.xxx.xxxは自分の環境に合わせる) DirectoryIndex index.html index.html.var index.php <== 設定を追加 </Directory> <== 設定を追加 # chkconfig httpd on # /sbin/service httpd start |
||||||||||||||||||||||||||||||
ブラウザからEPGrecの初期設定を行う。 | ||||||||||||||||||||||||||||||
ブラウザに録画サーバーのアドレスを入力する。apache(httpd)が正常に動作、設定できていれば、EPGrecの初期設定画面が表示されるはずです。画面の指示に従って設定していきます。 最後にEPGデータの受信を行いますが、放送休止時間帯には受信できませんので、避けた方がいいです。 |
||||||||||||||||||||||||||||||
http://xxx.xxx.xxx.xxx/install/step1.php | ||||||||||||||||||||||||||||||
EPGrecのインストール状態をチェックします ディレクトリのパーミッションチェック(777) /var/www/epgrec/templates_c...777...ok
/var/www/epgrec/video...777...ok /var/www/epgrec/thumbs...777...ok /var/www/epgrec/settings...777...ok /var/www/epgrec/cache...777...ok ファ イルのパーミッションチェック(755) /var/www/epgrec/do-record.sh...755...ok
/var/www/epgrec/recomplete.php...755...ok /var/www/epgrec/getepg.php...755...ok /var/www/epgrec/storeProgram.php...755...ok /var/www/epgrec/gen-thumbnail.sh...755...ok 地 上デジタルチャンネルの設定確認 現在、config.phpでは以下のチャンネルの受信が設定されています。受信不可能なチャ
ンネルが混ざっていると番組表が表示できません。
以上を確認し次の設定に進む |
||||||||||||||||||||||||||||||
http://xxx.xxx.xxx.xxx/install/step2.php | ||||||||||||||||||||||||||||||
システム設定を行います。このページの設定が正しく行われないとEPGrecは機能しません。
MySQLデータベース設定 |
||||||||||||||||||||||||||||||
http://xxx.xxx.xxx.xxx/install/step3.php | ||||||||||||||||||||||||||||||
環境設定を行います。これらの設定はデフォルトのままでも制限付きながら動作します。
デジタルチューナー設定地デジチューナーの台数サーバーに接続されている地デジチューナーの台数を設定してください。地デジチューナーを持っていない場合、
0にします。
BSチューナーの台数サーバーに接続されているBSチューナーの台数を設定してください。BSチューナーを持っていない場合、0に
します。
CS録画の有無この設定を「行う」にするとCS放送を加味した動作となります。CS放送を使用しない方は「使わない」に設定
してください。
録画関連設定録画開始の余裕時間(秒)epgrecは番組開始時間より早く録画を開始します。どのくらい録画開始を早めるかを秒で設定してくださ
い。早める時間を短くしすぎると、番組冒頭がとぎれる恐れがあります。設定できる時間は0秒以上180秒未満です。
録画時間を長めにする下の欄に0以上の秒数を設定すると、すべての番組に対して設定した秒数分だけ録画時間を延ばします。この設定
は「連続した番組の予約」設定と相性が良くありません。0以外の秒を設定する場合、連続した番組の予約が行いづらくなることに注意してください。推奨値は
0です。
連続した番組の予約この設定を「行う」にするとepgrecが自動的に直前の時間に予約されている番組の録画時間を短縮して時間
が連続している番組の予約を可能にします。録画時間を短縮する時間は「録画開始の余裕時間」+「録画コマンドの切り替え時間」です。この機能を使って連続
した番組を予約する場合、前の時間の番組の最後がとぎれる可能性がありますが、チューナーが1台しか無くてもキーワード自動録画による連続した番組の予約
が可能になります。メリットとデメリットをよく考えて設定してください。
録画コマンドの切り替え時間連続した番組を予約するとき、録画が終了して次の録画を開始するまでの余裕時間(秒)を設定します。1以上の
秒数を設定してください。設定する秒数が短いほど録画時間を短縮する時間が短くなりますが、この時間を短くしすぎると連続した番組の予約に失敗する恐れが
あります。失敗するかどうかは使用している録画コマンドやチューナーに依存します。
優先する録画モードキーワード自動録画や簡易録画を行う番組の録画モードを設定します。config.php
の$RECORD_MODEに複数の録画モードを登録し、do-record.shをカスタマイズているのであれば、その録画モードを優先して利用できま
す。キーワード自動録画はキーワード登録時に録画モードを設定することもできます。デフォルトはモード0です。
mediatomb連係機能この設定を「使う」にすると録画した番組のタイトルと概要をmediatombに反映させます。
mediatombを使用していない方は「使わない」に設定してください。なお、この設定を利用するにはmediatomb側の設定も必要になります。詳
しくはドキュメントを参照してください。
録画ファイル名の形式epgrecは録画ファイル名をカスタマイズすることができます。下の欄にファイル名のフォーマットを記入し
てください。フォーマットに使用できる特殊文字列は以下の通りです。
%YEAR%年%MONTH%月%DAY%日%HOUR%時%MIN%分%SEC%秒_%TYPE%%CH%_%TITLE% と 設定すると2009年07月15日12時49分16秒_GR21_番組タイトル.ts というような形式の録画ファイルが生成されま す。%TYPE%や%CH%などを混ぜ、異なる番組に同じ録画ファイルが生成されないよう注意してください。なお、ファイルシステムがUTF-8以外の文 字コードで、ファイル名に日本語を交ぜる場合、config.php内の定数FILESYSTEM_ENCODINGに文字コードを設定することができま す。ただし、UTF-8以外の文字コードはテストを行っていないため推奨しません。番組表表示設定以下の設定は実際に利用して様子を見ながら設定した方がいいでしょう。ページに表示する番組表の長さ(時間)1ページに表示する番組表の長さを時間で設定します。標準は8時間分です。
1局あたりの幅番組表の1局当たりの幅をピクセル数で設定します。標準は150ピクセルです。
1時間あたりの高さ番組表の1時間あたりの高さをピクセル数で設定します。標準は120ピクセルです。なお、60で割り切れない
ピクセル数を指定するとFirefoxを除くブラウザでは番組の高さが揃わなくなり見た目が悪くなるかもしれません。これはFirefox以外のブラウザ
では実数のピクセルを正しくレンダリングしないためです。
|
||||||||||||||||||||||||||||||
http://xxx.xxx.xxx.xxx/install/step4.php | ||||||||||||||||||||||||||||||
初期設定が完了しました。下のリンクをクリックするとEPGの初回受信が始まります。 EPGの受信には20〜50分程度はかかります。初回受信が終了するまで番組表は表示できません。 EPG受信後、/etc/cron.d/以下にcronによるEPG受信の自動実行を設定する必要があります。
Debian/Ubuntu用の設定ファイルは/var/www/epgrec/cron.d/getepgです。Debian/Ubuntuをお使いの
方は $ sudo cp /var/www/epgrec/cron.d/getepg /etc/cron.d/ [Enter] という具合にコピーするだけで動作するでしょう。それ以外のディストリビューションをお使いの方は Debian/Ubuntu用の設定ファイルを参考に、適切にcronの設定を行ってください。 なお、設定ミスや受信データの異常によってEPGの初回受信に失敗すると番組表の表示はできません。
設定ミスが疑われる場合、インストール設定を 実行し直してください。 また、手動でEPGの受信を試みるのもひとつの方法です。コンソール上で、 $ /var/www/epgrec/getepg.php [Enter] と実行してください。 このリンクをクリックするとEPGの初回受信が 始まります |
||||||||||||||||||||||||||||||
http://xxx.xxx.xxx.xxx/install/step5.php | ||||||||||||||||||||||||||||||
初期設定が終了するとEPGデータの受信が始まります。 初めてのEPGデータの受信には20分から50分かかります。 EPGデータの受信が完了するとトップページへのリンクが表示されるのでトップページへ戻りましょう。 番組表が表示されればEPGデータの受信は成功です。 InternetExplorerを使っていて、番組表表示動作が遅いと感じたら、MozillaFirefoxなどを試してみてください。 |
||||||||||||||||||||||||||||||
録画モード「Minimum TS」について (2011/03/26追加) | ||||||||||||||||||||||||||||||
録画モードで「Minimum TS」を使う場合、テレビ朝日の録画が失敗する場合があります。これは、テレビ朝日が他の局と違うデータの送り方をしているためと、recpt1がテレビ朝日のデータ送信方法に対応できていないからです。このため、現状では、テレビ朝日番組は「Minimum
TS」録画は行わない様にするしかありません。この設定をその都度手動で変更するのは面倒なので、"do-record.sh"を下記のように変更しておきます。表示上の録画モードは「Minimum
TS」のままですが、録画は「Full TS」で実行されます。 (2011/04/17追記) テレビ東京も「Minimum TS」で不具合が出るので条件に追加しました。 |
||||||||||||||||||||||||||||||
#!/bin/bash echo "CHANNEL : $CHANNEL" echo "DURATION: $DURATION" echo "OUTPUT : $OUTPUT" echo "TUNER : $TUNER" echo "TYPE : $TYPE" echo "MODE : $MODE" echo "SID : $SID" RECORDER=/usr/local/bin/recpt1 # fail safe case $CHANNEL in 101|102|191|192|193) if [ $SID = 'hd' ]; then SID=$CHANNEL fi ;; esac if [ -z $SID ]; then SID='hd' fi if [ ${MODE} = 0 ]; then # MODE=0では必ず無加工のTSを吐き出すこと $RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT} >/dev/null elif [ ${MODE} = 1 ]; then if [ ${CHANNEL} = "43" ] || [ ${CHANNEL} = "45" ]; then # テレビ朝日とテレビ東京はFullTS $RECORDER --b25 --strip $CHANNEL $DURATION ${OUTPUT} >/dev/null else # 目的のSIDのみ残す $RECORDER --b25 --strip --sid $SID $CHANNEL $DURATION ${OUTPUT} >/dev/null fi # mode 2 example is as follows #elif [ ${MODE} = 2 ]; then # $RECORDER $CHANNEL $DURATION ${OUTPUT}.tmp.ts --b25 --strip # ffmpeg -i ${OUTPUT}.tmp.ts ... 適当なオプション ${OUTPUT} fi |
||||||||||||||||||||||||||||||
録画モードは「予約カスタマイズ」や録画キーワード設定時の「録画モード」で設定できますが、デフォルトの録画モードを「Minimum TS」にする場合は、「環境設定」→「優先する録画モード」で変更します。 | ||||||||||||||||||||||||||||||
EPGデータの受信をスケジュール化しましょう。a | ||||||||||||||||||||||||||||||
まず、サンプルファイルを編集します。 | ||||||||||||||||||||||||||||||
# vi /var/www/epgrec/cron.d/getepg SHELL=/bin/sh ↓ SHELL=/bin/bash <== シェルを変更します。 29 */2 * * * www-data /var/www/epgrec/getepg.php ↓ 29 */2 * * * apache /var/www/epgrec/getepg.php <== ユーザーを変更します。CentOSでは、apacheにします。 |
||||||||||||||||||||||||||||||
ファイルをコピーしてパーミッションを設定します。 ※cron.dに設定したファイルのパーミッションは644にすることが必要です。 ↑私はここではまりました。 getepgのデフォルトのパーミッションは755ですが、そのままではEPGデータの取得ができませんでした。 /etc/cron.d/配下に置くファイルが実行可能パーミッションを持っているとcronがエラーを起こします。 cronのログは/var/log/cronで確認できます。 |
||||||||||||||||||||||||||||||
# cp /var/www/epgrec/cron.d/getepg /etc/cron.d/ # chmod 644 /etc/cron.d/getepg |
||||||||||||||||||||||||||||||
ファイル名に使用される文字コードに関する対応 | ||||||||||||||||||||||||||||||
EPGデータは文字コードにUTF-8が使われていて、録画ファイル名に番組名を入れている場合、ファイル名にs-jisでは処理できないUTF-8専用の文字が含まれてしまうことがあります。CentOSもMySQLも文字コードがUTF-8なのでEPGrec自体で問題が発生することはありませんが、ファイル名にUTF-8専用の文字コードを含んだ録画ファイルをWindowsPCで再生しようとするとファイル名が処理できないために再生ができません。この問題を解決するため、録画ファイル名を生成するプログラムを変更して、ファイル名にUTF-8専用の文字コードが使われないようにしてみました。 この作業を行うためには、文字コードUTF-8を編集できるエディタが必要です。 |
||||||||||||||||||||||||||||||
ファイル"/var/www/epgrec/Reservation.class.php"をUTF-8の編集が可能なエディタで開きます。 | ||||||||||||||||||||||||||||||
// あると面倒くさそうな文字を全部_に の部分に追加 $filename = preg_replace("/ ![]() $filename = preg_replace("/ ![]() |
||||||||||||||||||||||||||||||
※UTF-8の文字はWindowsのキーボードからは入力できませんので、番組表などからコピーして持ってきます。 | ||||||||||||||||||||||||||||||
sambaの起動 | ||||||||||||||||||||||||||||||
WindowsPCなどにファイル共有サービスを提供するサービスを設定します。 | ||||||||||||||||||||||||||||||
# yum install samba # smbpasswd -a epgrec New SMB password: Retype new SMB password: Added user epgrec. # vi /etc/samba/smb.conf workgroup = 自ワークグループ名 <== 設定変更 server string = epgrec <== 設定変更 load printers = no <== 設定変更 [EPGREC] <== 設定追加(Windowsから見たときの表示フォルダ名) path = /var/www/epgrec/video <== 設定追加(録画ファイル保存フォルダ) browseable = yes <== 設定追加(共有フォルダを見えるようにする) guest ok = yes <== 設定追加 |
||||||||||||||||||||||||||||||
sambaサーバーを起動します。 | ||||||||||||||||||||||||||||||
# chkconfig smb on # /sbin/service smb start |
||||||||||||||||||||||||||||||
録画ファイルの自動削除 | ||||||||||||||||||||||||||||||
ディスク容量が満杯になると予約していても新たな録画ができなくなります。 いちいちファイルを削除するのは面倒なので、ディスクの容量が一定量を超えたら古いファイルから順に自動的に削除するスクリプトを作成してみました。私はサムネイルは使っていないのでサムネイルの削除には対応していません。 |
||||||||||||||||||||||||||||||
/var/www/cgi-bin/filemanage.shという名前で下記のようなファイルを作りました。(2011/03/19更新) | ||||||||||||||||||||||||||||||
#!/bin/bash # # filemanage.sh 2011.03.19 # ディスク使用率がLIMIT以上になったら # 古い順に録画ファイルを自動的に削除する。 # # 多重実行防止 SEM=${TMPDIR:-/tmp}/`basename $0` ln -s /dummy $SEM 2> /dev/null || exit trap "rm $SEM" EXIT LIM=95 EPGRECHOME="/var/www/epgrec" CONF=`grep '<spool>' ${EPGRECHOME}/settings/config.xml` # 設定ファイルから録画pathを取得する→DFPATH DFPATH=${EPGRECHOME}`expr ${CONF} : '.*<spool>\(.*\)</spool>'` # 現在のディスク使用率を取得する→$NOW NOW=`df ${DFPATH}|tail -1|awk '{print $(NF-1)}'|sed s/%//` # ディスク使用率がLIMIT以上ならループに入る while [ $NOW -ge $LIM ]; do # 一番古いファイルを削除する FILEFULL=`ls -1rt ${DFPATH}/*.ts|head -1` rm -f ${FILEFULL} # データベースからデータを削除する FILE=\"`basename \"${FILEFULL}\"` echo 'use epgrec;' >sqlcmd echo -n 'delete from Recorder_reserveTbl where complete=1 and path=' >>sqlcmd echo "${FILE};" >>sqlcmd mysql --user=epgrec --password=epgrec <sqlcmd # ディスク使用率を取得する NOW=`df ${DFPATH}|tail -1|awk '{print $(NF-1)}'|sed s/%//` done |
||||||||||||||||||||||||||||||
このファイルを/etc/cron.d/getepgに下記のように登録しました。 | ||||||||||||||||||||||||||||||
00 * * * * root batch -f /var/www/cgi-bin/filemanage.sh | ||||||||||||||||||||||||||||||
"batch"コマンドを使うとCPU使用率が低くなるのを待ってから実行されるので、他の処理への影響を抑えられます。 | ||||||||||||||||||||||||||||||
以上で録画サーバーは完成です。 | ||||||||||||||||||||||||||||||
録画に失敗して残ってしまった録画予約の削除 | ||||||||||||||||||||||||||||||
(2010/10/16追記) EPGrecは何らかの理由で録画に失敗すると"complete=0"のまま、予約がデータベースから削除されずに8日残ってしまうので、そういう不要な過去の録画予約を削除するスクリプトを作ってみました。これをcronに登録すれば不要になった過去の予約を自動的に削除してくれます。 録画が完了していない予約の録画終了日時が、スクリプト実行の1時間前より古い録画予約を削除します。尚、録画したファイルは削除しません。 (2011/12/11更新) |
||||||||||||||||||||||||||||||
/var/www/cgi-bin/deloldreserve.shという名前で下記のようなファイルを作りました。 | ||||||||||||||||||||||||||||||
#!/bin/bash #録画に失敗して残ってしまった過去の録画予約をデータベースから削除するスクリプト #今から1時間前の日時を判定値とする TD=`date -d '60 min ago' +"%Y-%m-%d %H:%M:%S"` echo 'use epgrec;' >sqlcmd2 echo 'delete from Recorder_reserveTbl where complete=0 and endtime<"'${TD}'";' >>sqlcmd2 mysql --user=epgrec --password=epgrec <sqlcmd2 exit |
||||||||||||||||||||||||||||||
"deloldreserve.sh"を/etc/cron.d/getepgに"batch"コマンドで登録しました。 | ||||||||||||||||||||||||||||||
00 0 * * * root batch -f /var/www/cgi-bin/deloldreserve.sh | ||||||||||||||||||||||||||||||
"batch"コマンドを使うとCPU使用率が低くなるのを待ってから実行されるので、他の処理への影響を抑えられます。 | ||||||||||||||||||||||||||||||
録画ファイルの再生について | ||||||||||||||||||||||||||||||
録画したファイルは、市販のネットワークメディアプレイヤーやWindowsPCなどでサーバーの共有フォルダに接続して再生することができますが...。 | ||||||||||||||||||||||||||||||
再生環境の構築はこちら | ||||||||||||||||||||||||||||||
LVMにHDDを増設して容量を拡大する。 | ||||||||||||||||||||||||||||||
LVM(Logical Volume Manager)を使うと複数のHDDに作成したパーティションを繋ぎ合わせて一つの論理ボリュームとして使用することができます。 まず、追加のHDDを取り付けて再起動します。 再起動後ハードディスクの状態を確認します。 | ||||||||||||||||||||||||||||||
# fdisk -l | ||||||||||||||||||||||||||||||
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 243201 1953407610 8e Linux LVM Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes ディスク /dev/sdb は正常な領域テーブルを含んでいません |
||||||||||||||||||||||||||||||
追加したHDDが/dev/sdbとして認識されています。 | ||||||||||||||||||||||||||||||
/dev/sdbにパーティションを作成します。 | ||||||||||||||||||||||||||||||
# fdisk /dev/sdb | ||||||||||||||||||||||||||||||
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも含んでいません 新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更はメモリ内だけに残します。 その後はもちろん以前の内容は修復不可能になります。 警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって正常になります |
||||||||||||||||||||||||||||||
コマンド (m でヘルプ): n ← n入力(新規パーティション作成) | ||||||||||||||||||||||||||||||
コマンドアクション e 拡張 p 基本領域 (1-4) |
||||||||||||||||||||||||||||||
p ← p入力(基本領域作成) 領域番号 (1-4): 1 ← 1入力(領域番号=1) 最初 シリンダ (1-243210, default 1): ← [enter]入力(先頭を指定) |
||||||||||||||||||||||||||||||
Using default value 1 | ||||||||||||||||||||||||||||||
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-243210, default 243210): ← [enter]入力(終端を指定) | ||||||||||||||||||||||||||||||
Using default value 243210 | ||||||||||||||||||||||||||||||
コマンド(mでヘルプ): t ← t入力(システムID設定へ) | ||||||||||||||||||||||||||||||
Selected partition 1 | ||||||||||||||||||||||||||||||
16進数コード (L コマンドでコードリスト表示): 8e ← 8e入力(LVMシステムID=8eを設定) | ||||||||||||||||||||||||||||||
領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました | ||||||||||||||||||||||||||||||
コマンド (m でヘルプ): p ← p入力(パーティション情報を表示) | ||||||||||||||||||||||||||||||
Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 1 243201 1953512001 8e Linux LVM |
||||||||||||||||||||||||||||||
コマンド (m でヘルプ): w ← w入力(設定した情報を書き込んでfdiskを終了) | ||||||||||||||||||||||||||||||
領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。 |
||||||||||||||||||||||||||||||
作成したLVMパーティションでPV(Phisical Volume)を作成する。 | ||||||||||||||||||||||||||||||
# pvcreate /dev/sdb1 | ||||||||||||||||||||||||||||||
Physical volume "/dev/sdb1" successfully created |
||||||||||||||||||||||||||||||
作成したPVを確認する。 | ||||||||||||||||||||||||||||||
# pvdisplay | ||||||||||||||||||||||||||||||
--- Physical volume --- PV Name /dev/sda2 VG Name VolGroup00 PV Size 1.82 TB / not usable 8.62 MB Allocatable yes (but full) PE Size (KByte) 32768 Total PE 59613 Free PE 0 Allocated PE 59613 PV UUID Jaf2fr-uKp1-PU5w-KeJV-Xauq-2Kss-coiswa "/dev/sdb1" is a new physical volume of "1019.72 MB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 1.82 TB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID liQVoJ-2tTA-11g4-dxe9-Heo6-Y9jj-25QSHj |
||||||||||||||||||||||||||||||
作成したPVをVG(Volume group)へ登録する。 | ||||||||||||||||||||||||||||||
# vgextend VolGroup00 /dev/sdb1 | ||||||||||||||||||||||||||||||
Volume group "VolGroup00" successfully extended |
||||||||||||||||||||||||||||||
作成したVGを確認する。 | ||||||||||||||||||||||||||||||
# vgdisplay | ||||||||||||||||||||||||||||||
--- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.64 TB PE Size 32.00 MB Total PE 119229 Alloc PE / Size 59613 / 1.82 TB Free PE / Size 59616 / 1.82 TB VG UUID EoDTRY-GBqE-vJr5-Rwx5-XIW7-Gmjk-nMFpKi |
||||||||||||||||||||||||||||||
Free PE / Size が空き容量を示しています。 | ||||||||||||||||||||||||||||||
LV(Logical volume)に空き容量(32MBx59616=1907712MB)を追加する。 | ||||||||||||||||||||||||||||||
# lvextend -L +1907712M /dev/VolGroup00/LogVol00 | ||||||||||||||||||||||||||||||
Extending logical volume LogVol00 to 3.64 TB Logical volume LogVol00 successfully resized |
||||||||||||||||||||||||||||||
拡大したLVを確認する。 | ||||||||||||||||||||||||||||||
# lvdisplay /dev/VolGroup00/LogVol00 | ||||||||||||||||||||||||||||||
--- Logical volume --- LV Name /dev/VolGroup00/LogVol00 VG Name VolGroup00 LV UUID v4tzip-dnEc-1gfg-klEI-QPGn-Bv38-O81KG2 LV Write Access read/write LV Status available # open 1 LV Size 3.64 TB Current LE 119115 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 |
||||||||||||||||||||||||||||||
変更後のVGを確認する。 | ||||||||||||||||||||||||||||||
# vgdisplay | ||||||||||||||||||||||||||||||
--- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 3.64 TB PE Size 32.00 MB Total PE 119229 Alloc PE / Size 119229 / 3.64 TB Free PE / Size 0 / 0 VG UUID EoDTRY-GBqE-vJr5-Rwx5-XIW7-Gmjk-nMFpKi |
||||||||||||||||||||||||||||||
空き容量(Free PE / Size)がゼロになっています。 | ||||||||||||||||||||||||||||||
最後にファイルシステムをリサイズします。 容量が大きい場合、かなりの時間を必要とします。 |
||||||||||||||||||||||||||||||
# resize2fs /dev/VolGroup00/LogVol00 | ||||||||||||||||||||||||||||||
resize2fs 1.39 (29-May-2006) Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required Performing an on-line resize of /dev/VolGroup00/LogVol00 to 1953512001 (4k) blocks. The filesystem on /dev/VolGroup00/LogVol00 is now 1953512001 blocks long. |
||||||||||||||||||||||||||||||
ファイルシステムサイズの変更が完了したら"df"で空き容量を確認してください。 | ||||||||||||||||||||||||||||||
目次へ | ||||||||||||||||||||||||||||||
ホームへ戻る | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
参考になるサイト | ||||||||||||||||||||||||||||||
tadachi-net 出張所 CentOS5.4サーバ機にPT2を入れて地デジ録画サーバにする: | ||||||||||||||||||||||||||||||
tadachi-net 出張所 CentOS5.4録画サーバ機にEPG対応録画フロントエンド(epgrec)を入れる: | ||||||||||||||||||||||||||||||
tadachi-net 出張所 PT2で録画したMPEG2-TSファイルの再生環境について&録画鯖の話: | ||||||||||||||||||||||||||||||
CentOS 5.4にPT2を導入する。 - fujitaka’s lifelog | ||||||||||||||||||||||||||||||
Linuxで作る地デジ録画サーバー(PT2)編 その2 - 男のロマン〜自宅サーバ編〜 - Yahoo!ブログ | ||||||||||||||||||||||||||||||
CentOSでホームサーバを作ろう - PT2を使って録画する(準備編) | ||||||||||||||||||||||||||||||
トップページ - 録画予約システムepgrec | ||||||||||||||||||||||||||||||
LVMにハードディスク追加 | ||||||||||||||||||||||||||||||
LVMに論理ボリューム追加 | ||||||||||||||||||||||||||||||
LVMの論理ボリュームサイズ縮小 | ||||||||||||||||||||||||||||||
LVMの論理ボリュームサイズ拡大 | ||||||||||||||||||||||||||||||
PCIスロットを2本もっているMicroATXのH55チップのマザーボード | ||||||||||||||||||||||||||||||
ASRock H55M-LE | ||||||||||||||||||||||||||||||
ASRock H55M-GE | ||||||||||||||||||||||||||||||
ASUS P7H55-M | ||||||||||||||||||||||||||||||
ASUS P7H55-M PRO | ||||||||||||||||||||||||||||||
ASUS P7H55D-M PRO | ||||||||||||||||||||||||||||||
ASUS P7H55D-M EVO | ||||||||||||||||||||||||||||||
BIOSTAR TH55B HD | ||||||||||||||||||||||||||||||
BIOSTAR TH55 HD | ||||||||||||||||||||||||||||||
BIOSTAR TH55XE | ||||||||||||||||||||||||||||||
GIGABYTE GA-H55M-S2H | ||||||||||||||||||||||||||||||
GIGABYTE GA-H55M-UD2H | ||||||||||||||||||||||||||||||
GIGABYTE GA-H55M-USB3 | ||||||||||||||||||||||||||||||