2012年8月15日水曜日

PC新調

とりあえずepgrec/ラジオ録音サーバと普段使いのPCを兼ねたPCとして
ATOM機を使ってきたけどそろそろ限界。
休みだしPCを新調することにした。

常時ONにするので低消費電力にしたいが、flashとか見ながらだと録画が厳しかったりするので、
それなりのスペックが欲しい。
それで、今後のことも考えると、ハードウェアエンコード・デコードも欲しい。
ということで、 core i7-3770Tを選んだ。
 
ここを見ると、VAAPIとやらで、ハードウェアエンコード・デコードが可能なようだ。
そのうちやりたいが、まずはセットアップ。ubuntuを入れる。

セットアップ

ubuntu 12.04日本語版を入れた。
とりあえずは以下を参考に入れる。
全部はやってないけど、結構やりたいことが書いてある。すばらしい。
http://netlog.jpn.org/r271-635/2012/05/ubuntu_1204_install_memo.html

とりあえず↓はやった。
LANG=C xdg-user-dirs-gtk-update

追加で入れたもの

flashplugin-installer
VLCメディアプレイヤー
SMPlayer
GVim
KeePassX
Comix
Vi Improved
lame
sox
ffmpeg
avconv
ssh
Byobu
k9copy
http://www.geocities.jp/ipa_mona/
Ubuntu restricted extras
Dropbox
GnuCash
mysql
apache2-suexec-custom
libapache2-mod-suphp
ddclient
samba

サービス停止

ubuntuのサービス的なものはupstart?とDEのautostartの仕組みをふくめて以下の3通りくらいのようだ

/etc/rc?.d/
 昔からある
 update-rc.dで止める。(手動で外してもいいと思うけど。)
/etc/init
 ubuntuのupstart?
 各confファイルのstart onをコメントにする。
/etc/xdg/autostart
 DEのautostartの仕組み?
 
止めるもの

avahi-daemon
bluetooth
zeitgeist-datahub
ubuntuone-launch

LAMP環境を整える

http://tthhfugapiyo.blogspot.jp/2012/08/apache2userdirsuexecsuphp.html


epgrec引越し

とりあえず現行PCのepgrecの予約を全部消す。
消す前に予約一覧のページを保存しておく。
(予約したままデータを移すとatジョブは移行されないから多分うまくいかない。)

mysqlデータをバックアップ

現行PC> mysqldump -u ttfugapiyo -p epgrec > epgrec.sql

新PC> mysql -u root -p
> create database epgrec;
> grant all on epgrec.* to ttfugapiyo@localhost identified by "パスワード"
> flush privileges;
> quit
 で、リストア
mysql -u ttfugapiyo -p epgrec < epgrec.sql

DVB用ツール類を/usr/local/binに

cp tssplitter_lite/tssplitter_lite/tssplitter_lite/tssplitter_lite /usr/local/bin/tssplitter_lite
cp dvb-pt1-test/newtune /usr/local/bin/tune
cp dvb-pt1-test/pt2_lnb /usr/local/bin/pt2_lnb
cp dvb-pt1-test/checksignal /usr/local/bin/checksignal
cp arib25/src/b25 /usr/local/bin/b25
cp epgdump_work/epgdumpr2/epgdump /usr/local/bin/epgdump

電源供給をPT2からやる設定

http://tthhfugapiyo.blogspot.jp/2012/07/pt2dvb_06.html

一応videoグループに追加

usermod -a -G video ttfugapiyo

nice値とかリアルタイム優先度とかを変えられるようにしておく

/etc/security/limits.conf
@video           -       nice            -20
@video          -       rtprio          99
@video          -       memlock         unlimited

ddclient

dynamic dnsを使うので、以下設定する。

パスワードはウィザードでやると''で囲まれてたが、
以前はそれだとうまく動かなかった記憶があるので、''を外した。

/etc/ddclient.conf
daemon=3600
protocol=dyndns2
use=web, web=checkip.dyndns.com, web-skip='IP Address'
server=members.dyndns.org
login=ユーザ名
password=パスワード
サーバ名


その他

DHCPサーバとして使っているのでその設定と、sshの設定をする。
そろそろ長いのでそのうち別に書く。


2012年8月14日火曜日

設定メモ: PT2(DVB)安定化検討中の続き

設定メモ: PT2(DVB)安定化検討中
の続き

カーネルプロセス[pt1]をreniceしてみたけど、効果はいまいちで、
まだドロップすることがある。
もうちょっと何とかならんかなと思って調べたところ、
リアルタイム優先度ってのがあるらしい。

ということで、

chrt -p 99 5202(←[pt1]のPID)

とやってみることにした。
とりあえずまた様子見。

2012年8月13日月曜日

apache2のuserdirとsuEXEC/suPHP

常時起動のサーバでPT2(DVB)でepgrecを使ってTVの録画をしている。
他にもrep2を動かしている。

置き場所は~/public_html
この中でwww-dataユーザのファイルがあるのは簡単に編集できないし、
録画データの扱いも面倒なので、ユーザ権限で動かしたい。

以前やったことがあるものとして、ユーザ権限でCGIを動かすことができる
suEXECを入れたことがある。
これだけだと、rubyとかperlとかのスクリプトはユーザ権限で動くようになるが、
phpはwebサーバ権限のまま。
phpにとってのsuEXECのようなものとしてsuPHPと言うのがある。
これらを、userdir上で動かそうとすると、ちょっと作業が必要だった。

設定とかはまったく覚えてないけど、一応関係ありそうなことをメモしておく。

新しく買ったパソコンに入れるついでに作業メモを残しておく。

入れるもの

apache2-suexec-custom
libapache2-mod-suphp
userdirは勝手に入った様な気がする。


userdir

まず、suexec/suphpとちょっと関係ある感じのuserdirを設定する。

a2enmod userdir

public_htmlのなかでcgiが動くように&シンボリックリンクしたものを有効に。

/etc/apache2/mods-enabled/userdir.conf
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                #AllowOverride FileInfo AuthConfig Limit Indexes
                AllowOverride All
                #Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI FollowSymLinks
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                </LimitExcept>
        </Directory>
</IfModule>

suphp


とりあえずこれでuserdirで動くようになった。
でもこれでsuphpで動かそうとすると何か動かない。

a2enmod suphp
a2enmod suexec

[Mon Aug 13 02:36:12 2012] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.2
 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 13 02:36:27 2012] [error] [client 127.0.0.1] SoftException in Applicati
on.cpp:221: File "/home/ttfugapiyo/public_html/rep2/index.php" is not in document r
oot of Vhost "/var/www", referer: http://localhost/~ttfugapiyo/
[Mon Aug 13 02:36:27 2012] [error] [client 127.0.0.1] Premature end of script he
aders: index.php, referer: http://localhost/~ttfugapiyo/
phpがdocument rootにないそうで。。。
でも色々入れたいし、直置きしたくないので、suphpの設定で回避する。

/etc/suphp/suphp.conf
;Check wheter script is within DOCUMENT_ROOT
;check_vhost_docroot=true
check_vhost_docroot=false

.htaccessで、
Options +ExecCGI
<FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-suphp
</FilesMatch>

 apache2再起動
service apache2 stop
service apache2 start

あれ、動かない。

[Mon Aug 13 02:51:06 2012] [error] [client 127.0.0.1] SoftException in Applicati
on.cpp:564: Directory "/home/ttfugapiyo/public_html" is writeable by group, referer
: http://localhost/~ttfugapiyo/
[Mon Aug 13 02:51:06 2012] [error] [client 127.0.0.1] Premature end of script he
aders: index.php, referer: http://localhost/~ttfugapiyo/

グループ書き込み権限はダメみたいだな。

chmod -R g-w public_html

動いた。

suexec

suexecも似たようなもんで、cgi-binでしか動かさない設定になっているけど、
自宅サーバでは色々試したい。
なので、以下のようにする。
/etc/apache2/suexec/www-data

#public_html/cgi-bin
public_html
.htaccessで以下の設定。
Options +ExecCGI
AddHandler cgi-script .cgi .rb

で、apache2再起動して試す。

[Mon Aug 13 03:15:38 2012] [error] [client 127.0.0.1] suexec policy violation: see
suexec log for more details, referer: http://localhost/~ttfugapiyo/rt/
[Mon Aug 13 03:15:38 2012] [error] [client 127.0.0.1] Premature end of script heade
rs: test.cgi, referer: http://localhost/~ttfugapiyo/rt/
あれ、また動かない。おかしいな。前は動いてた様な。。。
suexec.logには以下のようなエラー。

[2012-08-13 03:15:38]: userdir suffix disabled in /etc/apache2/suexec/www-data
よく見たら、/etc/apache2/suexec/www-dataに何か注意書きが。

# The first two lines contain the suexec document root and the suexec userdir
# suffix. If one of them is disabled by prepending a # character, suexec will
# refuse the corresponding type of request.
思いっきり引っかかってた。
コメントを止めて、apache2再起動。無事動作確認完了。
関係ないけどInsertキー押そうとしてprint screen押して、シャッター音が鳴ってびびった。
深夜作業中には恐ろしい機能だ。

2012年8月4日土曜日

どうも地デジの番組表がとれてない

どうも地デジの番組表がとれてないってことに出張先で気づいた。
番組表は一週間分とられるから、おかしくなったのは一週間前ということになる。
 とりあえずスマホだけもって出張いってたのでConnectBot入れてsshでなおそうとする。
→何かログインできない。


どうも東横インのネットは何か遮断されているような感じ。
→とりあえず3G回線でつないで何とか修正した。
(サーバの設定のせいだと思ってたので3日くらい放置、いくつか撮り逃してしまった。)


番組表の問題は
最初はCSのチャンネル変更のせいかなと思ったけどそんなことなかった。
一週間前くらいに、録画の最初あたりで録画が乱れるので、
一分前から録画開始、録画終了を一分早めるように変更したせいだ。
録画時間を短くするのはdo-record.shに入れたので、getepgでも60秒短くなる。→地デジの取得時間は60秒から0秒に
→番組表とれない。

という原因。


スマホのタッチでちまちま修正すんのはイライラするな。
タブが無いと不便過ぎる。
bluetoothのキーボード買っとこうかなあ。