2012年12月2日日曜日

007SH電池消費

007SH(android 2.3)を使っている。
もともとバッテリーは少ないけど、待ち受けだけなら2日はもつ。
ところが何のタイミングか分からないけど、急に電池消費が激しくなる。



電池が急降下している間、ほとんどスリープなし状態。
とにかくいろんなプロセスを終了させたらスリープなし状態は終わった。


普通だったらこんなもん。
とりあえずスリープを無効にする権限を持ってるプロセスを調べた。
どれかが怪しいはず。

全然別の原因かも知れないけど。



多分ジョルテは入れる前から現象出てたはずだから無実だと思うとして、
他をちょっとずつ調べるのめんどくさい。


電話
ジョルテ
Android Assistant
Googleサービスフレームワーク
ワンセグ
HDMI
マップ
SHARP DMS
SharpIPCService
FeliCaObex
VideoConverterService
コンテンツマネージャー
BURS
アストロ
Dropbox
Google Play ストア


関係ないけどスクリーンショットのとり方をメモっておく。
通話終了キー+ホームキーで、/mnt/sdcard/screen shotにファイルができる。

追記>
犯人はBURS

2012年11月24日土曜日

ubuntu 12.10とpt2

ubuntu 12.10で、pt2をしばらく使ってみた。
一応動きはしたけど、どうも動きが怪しい。
カーネルに組み込まれてるDVB版のドライバで動かしているけど、
微妙に動きが変わっている。

12.04のカーネル(3.2.0-31)だと、ドライバのカーネルスレッドは常時動いていた。
なので、起動後にカーネルスレッドの優先度を上げたりできた。
(PT2(DVB)安定化検討中とか設定メモ: PT2(DVB)安定化検討中の続きとか)


12.10のカーネル(3.5.0)のDVB版ドライバは録画開始でスレッドが立ち上がるように変わったらしい。
カーネルスレッドの優先度を上げておくっていうやり方が使えなくなった。

また、データをドロップする確率がかなり上がってる感じ。
優先度上げても関係ないっぽいし、lowlatencyカーネルに変えても同じ。

もうしょうがないからカーネル3.2.0をそのまま使うことにした。
このままずっと治らなそうだなあ。

追記
最近更新して(3.5.0-23-lowlatency)ここ1週間くらいつかってみてるけど、
大丈夫っぽい。
特定のバージョンでのバグかもしれん。(おかしかったときは3.5.0-18くらいだったかな?)

2012年11月20日火曜日

acrobat readerで日本語

なんか普通に入れたら日本語読めない。
ここからダウンロードして入れたらOK

2012年11月16日金曜日

ubuntu 12.10とphpmyadmin

何か動かなくなった。今まで動いていたのに。

とりあえず以下を編集
/etc/apache2/conf.d/phpmyadmin.conf

こんなこと書いてあるのを、


        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php

                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_admin_flag allow_url_fopen Off
                php_value include_path .
                php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
                php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
        </IfModule>

apache/mods-enabled/php.confから一部使ってこうする。

        <IfModule mod_php5.c>
                <FilesMatch ".+\.ph(p[345]?|t|tml)$">
                        SetHandler application/x-httpd-php
                </FilesMatch>
                AddType application/x-httpd-php .php

                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_admin_flag allow_url_fopen Off
                php_value include_path .
                php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
                php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
        </IfModule>

リスタートして終わり。
何なんだろう?AddTypeが意味なくなってんのかな?

2012年11月12日月曜日

ubuntu 12.10とepgrec

Ubuntu 12.10(Quantal Quetzal)
にアップグレードしてみた。

前に作ったPT2(DVB), epgrec用do-record.shは単体では動いたので大丈夫だろうと思って
放っておいたら、録画されてる内容が全然違ってた。
どうも録画されてるチャンネルはあってるけど時間が6時間くらいずれてるっぽい。
関係ありそうなのはatとphpで、atは問題なく動いたので、原因はphp。

何か分かんないけど、デフォルトのタイムゾーンがUTCに変わったっぽい。
(<? phpinfo(); ?>で調べたらそうなってるっぽい。)

とりあえず
/etc/php5/conf.d/5-timezone
を作って、
date.timezone = Asia/Tokyo
と書いたらOK

atのせいかとおもって予約全部消したから番組表全部ドロップして
getepg.phpを動かし直した。

それとは別にphpmyadminが動かなくなってしまったので、また調べないと。
多分userdirでsuphp使ってるところとmod_php5が何かあるんじゃないかと予想。

なんかアップグレードごとに毎回トラブルがあるなあ。
何か日本語変換が頭悪くなってる感じもするし。
いい加減にしてほしい。(LTSなのにアップグレードした自分が悪いんだけど)

2012年10月28日日曜日

設定メモ: android端末とfirefoxのブックマーク同期

設定メモ: android端末とfirefoxのブックマーク同期
で書いたPCのfirefoxとのブックマーク同期について、

よく考えたらPCは常時電源ONにしてwebサーバにしているので、
firefoxのブックマークデータを読んでhtmlで出力できるCGIを作れば、
事が足りるような気がしたので作った

firefoxのユーザプロファイルのディレクトリ(~/.mozilla/firefox/*.default)
にあるbookmarkbackupsの中のjsonファイルを読み取る。
(でも、どうもここにあるものはバックアップであって
最新のブックマークになってるわけじゃないっぽい。まあいいか。)

見た目かなりしょぼい。
同期はできない。一方通行。
ブックマークの数が多いから折りたたみをやろうとしてちょっと苦労した。
jqueryとjquery-collapseが必要。

2012年10月27日土曜日

android端末とfirefoxのブックマーク同期

デスクトップではfirefoxをつかってて、ノートPCとか会社のPCとか
全部firefox sync使って同期している。
携帯でも使いたいけど、携帯のブラウザは標準のやつがいい。
ということで探したらあった。

Shaman

シャーマン?かな。もうちょっとそれらしい名前をつけてくれれば見つけやすかったのに。
007sh使ってるので、キーだけで操作できてたら完璧だったんだけど。惜しいなあ。
もうちょっと別の方法を探す。

もう一つFirefox sync pro?とかいうのもあったけど、

それはfirefox側に拡張を入れて、googledocにデータを書き出して同期する感じだった。
有料な上にちょっとイメージと違う。

2012年9月22日土曜日

ニコニコ動画のローカルストレージ容量

なんかニコニコ動画のローカルストレージ容量が増えたっぽい。
linuxのflashplayerは何かおかしくて容量増加を要求してくるのに
クリックに反応しないので許可できない。

とりあえず右クリック→グローバル設定から、
Webサイトの記憶領域設定パネル
でres.nimg.jpの上限を増やしたらOKだった。

2012年9月15日土曜日

ibusインプットメソッド

ubuntu 12.04
ibusのインジケータが出てこない。
前のバージョンでは問題なかったのに。

とりあえず起動したら
ibus-daemon -r -d -x

とすると治る。
覚えておくためにメモ


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のキーボード買っとこうかなあ。

2012年7月25日水曜日

epgrec BS/CSチャンネル変更追従(DVB) テスト

前に改造したやつ。
(設定メモ: epgrec BS/CSチャンネル変更追従(DVB))
 またCSチャンネルが変わったみたいなのでテスト。

s2scan -a 2  -c > cs_channels.txt

diff /usr/local/etc/cs_channels.txt cs_channels.txt
< 時代劇専門チャンネル:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1693000|DTV_ISDBS_TS_ID=0x7060:292
24d22
< テレ朝チャンネル:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1813000|DTV_ISDBS_TS_ID=0x70c0:303
27c25
< 朝日ニュースター:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1813000|DTV_ISDBS_TS_ID=0x70c0:352
---
> キッズステーション:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1813000|DTV_ISDBS_TS_ID=0x70c0:330
29a28,30
> 時代劇専門chHD:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1853000|DTV_ISDBS_TS_ID=0x70e0:292
> ファミリー劇場HD:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1853000|DTV_ISDBS_TS_ID=0x70e0:293
> スーパー!ドラマHD:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1853000|DTV_ISDBS_TS_ID=0x70e0:310
32d32
< スーパードラマ:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1893000|DTV_ISDBS_TS_ID=0x7100:310
43,44d42
< ファミリー劇場:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=2013000|DTV_ISDBS_TS_ID=0x7160:293
< TBSチャンネル:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=2013000|DTV_ISDBS_TS_ID=0x7160:301

sudo cp cs_channels.txt /usr/local/etc/
チャンネル追加と、前に変わったときの旧チャンネルが消えたみたい。
とりあえず、getepg.phpを実行。

キッズステーションが、同じ名前でダブってる。
同じ名前だけどチャンネル番号が違うからチャンネルでキーワード予約してたらやり直さないといけない。それ以外は大丈夫そう。

s2scanをcronで定期実行しようかとも思ったけど、
scan失敗したらチャンネル全部消えるみたいなことになりそうだから止めとこ。

2012年7月22日日曜日

PT2(DVB)安定化検討中

温泉行って血行がよくなったせいか、昨日の夜は何か頭痛がひどかった。
久々に早寝早起きだったので、pt2の検討。
 今は/dev/dvb/adapter?/dvr0から、ddで取り込んでいる。
(設定メモ: PT2(DVB), epgrec用do-record.sh)

dd -> b25 -> tssplitter_lite -> dd -> file
とりあえず最初のddにconv=noerrorを入れてあるので、途中で多少データが落ちても止まらない。
ただ、複数チャンネル録画とかすると、ちょくちょくデータを落とす。

dd: reading `/dev/dvb/adapter0/dvr0': Value too large for defined data type

で、負荷が高いときにドライバからのリードが追いつかないような気がしているので、
最初のddの優先度を高くして、後の処理はnice値大きめにしてある。

これでしばらく動かしてみたけど、闇雲に最初のddの優先度を高くしてみてもあまり効果がないようだった。
とくに一番最初にドライバからデータがとれない場合、完全にダメになってしまう。
どうもドライバの方が間に合って無いのかなという気がしてきた。
なのでreniceでカーネルのpt1ドライバのスレッドの優先度を上げてみることにした。

root       556  0.0  0.0      0     0 ?        S    Jul09   0:57  \_ [jbd2/sda1-8]
root       559  0.0  0.0      0     0 ?        S<   Jul09   0:00  \_ [ext4-dio-unwrit]
root       605  0.0  0.0      0     0 ?        S<   Jul09   0:00  \_ [hd-audio0]
root       723  2.1  0.0      0     0 ?        S<   Jul09 420:43  \_ [pt1]
root     29253  0.0  0.0      0     0 ?        S    Jul14   1:01  \_ [flush-8:16]
root     14602  0.0  0.0      0     0 ?        S    04:12   0:04  \_ [kworker/0:3]
root     28225  0.0  0.0      0     0 ?        S    07:34   0:00  \_ [kworker/1:1]

になっているから、

renice -n -20 -p 723
とやってみた。
ちょっとはマシになったような気もするけど。うーん。どうだろう。
あんまり変わらないような気もする。


録画はじめてしばらくすると大丈夫っぽいので、マシンスペックのせいでも無いと思うんだけど。

まだちょっと頭が痛いのでもう休もう。

2012年7月19日木曜日

screenでマウススクロール

~/.screenrcに以下を書いておくといいらしい。忘れないうちにメモ。
(http://osdir.com/ml/screen-users-gnu/2010-01/msg00005.html)

termcapinfo linux ti@:te@
termcapinfo xterm ti@:te@
termcapinfo xterm-color ti@:te@

ubuntu 12.04のbyobuはどうもデフォルトtmuxみたいだけど、エスケープキーが^Aから変えられない。
UIで変更できたように見せかけて実際は変わってなくてイラついたので (本当は何かやり方があるんだろうけど)

backendをscreenに変更して使用中。
12.04より前だとmake menuconfigとかが激しく崩れてたと思うけど、12.04では問題無し。

byobuでscreenつかってても~/.screenrcは読み込まれるみたいなので、
上の設定は~/.screenrcに書いておく。

2012年7月16日月曜日

epgrecの録画済みファイルをmplayerで見る

うちのPCだとvlcは重すぎでまともに見れない。
ローカルでしか見ない(見れない)のに、HTTP経由で見るのも負担。
なのでローカルで直接mplayerで見るように変える。

とりあえずダウンロードされるasxファイルを直接ローカルを指すように変える。
diff --git a/viewer.php b/viewer.php
index 4db8f17..fc4623c 100755
--- a/viewer.php
+++ b/viewer.php
@@ -37,8 +37,9 @@ try{
        echo "<ASX version = \"3.0\">";
        echo "<PARAM NAME = \"Encoding\" VALUE = \"UTF-8\" />";
        echo "<ENTRY>";
-       if( ! $rrec->complete ) echo "<REF HREF=\"".$settings->install_url."/sendstream.php?reserve_id=".$rrec->id ."\" />";
-       echo "<REF HREF=\"".$settings->install_url.$settings->spool."/".$rrec->path ."\" />";
+       #if( ! $rrec->complete ) echo "<REF HREF=\"".$settings->install_url."/sendstream.php?reserve_id=".$rrec->id ."\" />";
+       #echo "<REF HREF=\"".$settings->install_url.$settings->spool."/".$rrec->path ."\" />";
+       echo "<REF HREF=\"".INSTALL_PATH.$settings->spool."/".$rrec->path ."\" />";
        echo "<TITLE>".$title."</TITLE>";
        echo "<ABSTRACT>".$abstract."</ABSTRACT>";
        echo "<DURATION VALUE=";
@@ -49,4 +50,4 @@ try{
 catch(exception $e ) {
        exit( $e->getMessage() );
 }
-?>
\ No newline at end of file
+?>

asxファイルを受け取って再生させるスクリプトを作って適当な名前でパスを通す。
(邪魔なので見た後はasxファイルを消すようにした。)

listmplayer.sh
#!/bin/bash
mplayer -xy 720 -fs -playlist "$1"
DIRNAME=`dirname "$1"`
rm -f ${DIRNAME}/*.ts*.asx

firefoxとかでasxファイルを開くときに↑のスクリプトを関連付ける。
とりあえずこれで録画済一覧ページからクリックでmplayerで再生できる。


.mplayer/configは今のところ以下。なんでこうなったかは覚えてない。
つまんない番組は]キーで加速する。(見なきゃいいんだけど)
音の高さが変わって聞き取れなくなっちゃうのでaf=scaletempoをいれてある。


[default]
# Write your default config options here!
#hardframedrop=1
framedrop=1
#hardframedrop=1
cache=8192
lavdopts=fast=1:threads=2
noslices=1
quiet=1
nocorrect-pts=1
ao=pulse
af=scaletempo

TV録画しながらTV見ながらラジオ録音しながらrep2動かしたりしてると
さすがにATOMだと重いような気がしてきた。
とくにtssplitter_lite通すと録画開始してしばらくドロップが激しい時がある。
本当にPCスペックのせいかどうかは分からんけど、
ハードウェア支援のあるPCで低消費電力なやつをそろそろ探したい。


2012年7月10日火曜日

epgrecの録画済み一覧

epgrecの録画済み一覧にthumbnailがでるけど、
jpgが作られたり作られなかったり、作られててもphpから正しくリンクされなかったり、
怪しい。

とりあえずの調べてみた結果、

1. gen-thumbnail.sh
 OUTPUTファイル名がスペースを含むと、コマンドが失敗するのではないか。
 ということで、

${FFMPEG} -i "${OUTPUT}" -r 1 -s 160x90 -ss ${offset} -vframes 1 -f image2 "${THUMB}"
 と言う感じで、OUTPUTとTHUMBを""で囲った。
 まだあまり試してないので様子見。

2. urlencodeの問題
 ファイル名はurlencodeされてブラウザへ送られてくる。
 どうも、#つきのファイル等、記号を含んだファイル名のものは、jpgファイルがあるのに
 サムネイルが表示されない。

 サムネイルのURLの生成に使われているhtmlentities($r->path, ENT_QUOTES, "UTF-8")の結果、
 #記号が処理されずに途中で切れているように見える。
 とりあえず全部UTF-8なので、rawurlencode($r->path)とすることで、ある程度解決したかもしれない。
 まだあまり試してないので様子見。

2012年7月8日日曜日

epgrec BS/CSチャンネル変更追従(DVB)

CSは何かチャンネル変更が頻繁に起こるみたい。
chardev版は多分色々やる人がいるだろうけど、
DVB版でepgrec使う人はそんなにいないだろうから、自分で何とかする必要がある。

チャンネル情報は、s2scanでスキャンすればとってこれる。

s2scan -a 2 -b > bs_channels.txt
BS朝日1:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:151
BS朝日2:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:152
BS朝日3:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:153
BS−TBS:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4011:161
...

s2scan -a 2 -c > cs_channels.txt
TBSチャンネルHD:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1613000|DTV_ISDBS_TS_ID=0x6020:296
テレ朝チャンネルHD:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1613000|DTV_ISDBS_TS_ID=0x6020:298
朝日ニュースターHD:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1613000|DTV_ISDBS_TS_ID=0x6020:299
ザ・シネマ:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1653000|DTV_ISDBS_TS_ID=0x7040:227
ホームドラマCH:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1653000|DTV_ISDBS_TS_ID=0x7040:294
...

取ってきたファイルを/usr/local/etcに置くことにして、
とりあえず以下3つに対処が必要。
それぞれs2scanで取ってきたデータを使うように変更すればいいんじゃないか。

  • tune
  • epgdump
  • epgrec
tune/epgdump

どっちもcで書かれてて、チャンネルテーブルをコード直書きで定義しているだけなので、
s2scanで作ったファイルを読んでテーブルを置き換えればいい。
ただ、tuneはCSも読めるように改造する必要がある。

newtune.c
readchannels.c

epgdumpの方は、上のreadchannelsをリンクして、
ひととおりテーブルが読み終わった後にすげ替えればいい。

475     pStas = calloc(1, sizeof(STATION));
476     pStas->tsId = svtcur->transport_stream_id ;
477     pStas->onId = svtcur->original_network_id ;
478     pStas->svId = svtcur->event_id ;
479     pStas->ontv = arg_onTV ;
480     pStas->name = svtcur->servicename ;
481     staCount = 1;
482   }
483   read_channels_epgdump(arg_onTV, &pStas, &staCount);
484
485   fprintf(outfile, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
486   fprintf(outfile, "<!DOCTYPE tv SYSTEM \"xmltv.dtd\">\n\n");
487   fprintf(outfile, "<tv generator-info-name=\"tsEPG2xml\" generator-info-url=\"http://localhost/\">\n");

epgrec

epgrecもテーブルがあるだけなので、同じようにファイルを読んで置き換えればいいはずだけど、
正直phpは分からん。 文字コードの扱いがうまくいってない気がするけど、とりあえず動く状態。

readchannels.php

config.phpの$BS_CHANNELS_MAP, $CS_CHANNELS_MAPを作り終わった後に読み込んですげ替えればいい。

include_once( INSTALL_PATH . '/readchannels.php');

ontvjapan.comの番号はとくに意味ないみたいなのでBSは4000番台, CSは5000番台にした。

チャンネル番号はすべてプログラム番号に変えて、プログラム番号を受け取ったらtuneの方で対応する。
なので、BS/CSの取得チャンネルは以下のように変更。

// BS/CSでEPGを取得するチャンネル
// 通常は変える必要はありません
// BSでepgdumpが頻繁に落ちる場合は、受信状態のいいチャンネルに変えることで
// 改善するかもしれません

define( "BS_EPG_CHANNEL",  "211"  );    // BS
define( "CS1_EPG_CHANNEL", "CS55"  );   // CS1
define( "CS2_EPG_CHANNEL", "CS300" );   // CS2
チャンネルがガラッと変わるので、mysqlの方は旧チャンネルのデータを落とした。
どんなコマンドを実行したかは忘れた。

追記:とりあえずまとめて以下
http://tthhfugapiyo.blogspot.jp/2014/06/epgrecdvb.html

PT2(DVB), epgrec用do-record.sh

TVの録画にepgrecを使いたい。
ただ、chardev版はカーネルのバージョンアップごとに更新しないといけない(頻繁にUPするのでめんどい)し、
ubuntu 12.10でやってみたら入らなかったので除外。
DVB版で使うことにする。

DVB版でepgrecを使うには、do-record.shに工夫が必要。
まず、epgrecから渡されるTUNERは適当なので、無視する。
TYPEによって、/dev/dvb/adapter0-3のどれを使うか決め、同じadapterを使うことが無いように
排他制御をする必要がある。

TSの取り込み部分は、fuse_b25を使ってやってみた時期もあったけど、
0byteのファイルが出来る頻度が多くて動きが怪しいという印象。
よって、/dev/dvb/adapter?/dvr0からddで取り出し、b25コマンドで復号するというローテクで。
録画失敗率は下がったと思う。


シェルスクリプトで色々やってたが、細かい制御が面倒になったのでrubyでやることにした。起動まではrubyだけど、実際に録画に使用されるのはmkfifoで作ったfifoと各種コマンドなので
処理的には大丈夫だと思いたい。


https://sites.google.com/site/tthhfugapiyo/home/tv.rb

spawnを使っているのでruby1.9系が必要。
直接TVを見るときも排他が必要なので、コマンドラインからも実行できるようにした。

mplayerで見る。
 tv.rb 211 -p

mplayerで見ながらfileに落とす。
 tv.rb 211 -o file -p

do-record.shとして使う。
 ln -s tv.rb do-record.sh
 CHANNEL=211 DURATION=1800 TYPE=BS OUTPUT=file.ts do-record.sh

デフォルトでBSとCSはtssplitter_liteをかけるようにしたので、
epgdumpで使うときはMODE=-1になるようにgetepg.phpの方を改造する必要がある。

追記:色々変更したのでまとめて以下
http://tthhfugapiyo.blogspot.jp/2014/06/epgrecdvb.html

2012年7月7日土曜日

PT2信号レベル測定(DVB)3

天気悪すぎ。
電波が弱い。

信号レベル測定のプログラムを使って調整しようとおもったけど、
チューニングが成功しないと信号レベルが出てこないから使えないな。
あと値がふらふらするからいまいち分からない。一次遅れを入れよう。
(本当はalsamixerみたいな棒グラフにしたいけど)


で、調整しようとしたけど、天気が悪かったらいくら調整しても無駄だということが分かった。
あきらめた。

2012年7月6日金曜日

PT2信号レベル測定(DVB)2

今日大雨だったので動かしてみた。
(前回の投稿にリンクするのはどうやるんだろう)

激しい雨のとき
$ ./checksignal 2 CS333
Successfully tuned to AT−X .
     494,      494,      494
     451,      494,      451
     458,      494,      451
     472,      494,      451
     465,      494,      451
     398,      494,      398

ちょっと収まったとき


$ ./checksignal 2 CS333
Successfully tuned to AT−X .
    2529,     2529,     2529
    2529,     2529,     2529
    2533,     2533,     2529
    2527,     2533,     2527
    2524,     2533,     2524
    2515,     2533,     2515
    2516,     2533,     2515
激しく違う。

PT2の電源供給(DVB版)

今のところ以下のような構成。

アンテナ

分配器(両通電)
↓ ↓
TV PC

  • PT2を入れたPCは常時電源ONにしている。
  • TVはたまにしかつけないので電源OFF。

分配器の両通電タイプにしたので、問題ないと思ってたけど、
分配器の説明に、「両方電源入れたら壊れるかもしれんからやめて」みたいなことがかいてある。
TVつけたときにPC落としたりしないし。両通電の意味無いんじゃ。。

仕方ないから↓のようにする。

  • TVからは電源供給しない。
  • PCから常時電源供給。

 問題は、dvbでどうやって常時LNBをONにするか。
とりあえずtuneコマンドのioctlを改造して、ioctlでpt2のLNBをONにするものを作った?
(改造したのか、dvb-pt1-testの中に元々あったか忘れた。もしかしたら誰かが作ったものかも)
https://sites.google.com/site/tthhfugapiyo/home/pt2_lnb.c


ただ、プログラムを終わらせるとLNBがOFFになってしまう。
ずっと動かしっぱなしだとその間デバイスが使用中になるのでよくない。
よって、モジュールオプションdvb_powerdown_on_sleepでOFFにならないようにする。

/etc/modprobe.d/mod_dvb.conf:
 options dvb-core dvb_powerdown_on_sleep=0
つぎに、モジュール読み込み時にONにする方法。
/etc/rc.localに入れようかと思ったけど、いまいち確実でないので、udevを使う。

/etc/udev/rules.d/90-pt2-lnb.rules:
SUBSYSTEM=="dvb", ACTION=="add", ENV{DVB_DEVICE_TYPE}=="frontend", RUN+="/usr/local/bin/pt2_lnb 2"
これでOKになったはず。

2012年7月5日木曜日

PT2信号レベル測定(DVB)

もらったアンテナで衛星放送を見てるけど、ちゃんと設置してなくてただ置いているだけ。最近雨が多くてなんか電波が悪いようなそうでもないような。

アンテナの調整をしようと思ったけど、信号レベルの測定のためにテレビを持っていくのは面倒くさすぎる。
なんとかノートPCですませたい。

chardev版で信号レベルを測っている人はいる模様なのでやってみた。
(トラックバックのやり方がよくわからんけどおぼえてたら後でリンクする)
(Bloggerにはトラックバックというのはないらしいので参考URLhttp://blog.lwlv.net/archives/677)
 [  426.395992] lowmem_reserve[]: 0 0 0 0
[  426.396080] DMA: 5*4kB 7*8kB 5*16kB 5*32kB 1*64kB 1*128kB 1*256kB 0*512kB 1*1024kB 1*2048kB 0*4096kB = 3836kB
[  426.396112] Normal: 0*4kB 1*8kB 0*16kB 1*32kB 1*64kB 0*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB = 1384kB
[  426.396142] HighMem: 19*4kB 6*8kB 2*16kB 1*32kB 0*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 316kB
[  426.396172] 158201 total pagecache pages
[  426.396178] 49 pages in swap cache
[  426.396184] Swap cache stats: add 66, delete 17, find 3/4
[  426.396190] Free swap  = 9767276kB
[  426.396195] Total swap = 9767516kB
[  426.405931] 260016 pages RAM
[  426.405941] 32706 pages HighMem
[  426.405947] 5955 pages reserved
[  426.405952] 140035 pages shared
[  426.405957] 179903 pages non-shared
[  426.405965] PT1:DMA ALLOC ERROR
[  426.412817] pt1-pci: probe of 0000:02:00.0 failed with error -5
むりだった。
DMAの領域確保に失敗しているのか?
試しに減らしてみたらpanic状態になってsysrqキーに助けられる。(キーはよく知らないのであとでメモっとこう)
しかもロード失敗してるのに/dev/pt1video0とか残ってるし。

PT2はDVBで使ってるので、chardev版はさっと諦めて、DVBで何とか信号測定する方法を探す。

 recpt1/checksignal.c
249     if(ioctl(fd, GET_SIGNAL_STRENGTH, &rc) < 0) {
250         fprintf(stderr, "Tuner Select Error\n");
251         return ;
252     }
から調査、i2cで0x8c,0x8dあたりをどうのこうのしているらしい。
同じようにDVB版に入れれば何とかなりそうと思ったら入ってた。


pt1/va1j5jf8007t.cのva1j5jf8007t_read_snr関数でやっているようだ。
dvb_frontend_opsのread_snrに登録されている。
dvb_frontend.cを見るとioctlのFE_READ_SNRでいけそう。

~/work/dvb-pt1-test$ ./checksignal 2 CS333
Successfully tuned to AT−X .
    2855,     2855,     2855
    2832,     2855,     2832
    2839,     2855,     2832
    2815,     2855,     2815
    2814,     2855,     2814
    2799,     2855,     2799
いけた。(のかな?)
dbの計算式とかrecpt1と違うみたいなので数値の比較は出来なそう。
暇な時にアンテナ調整してみる予定。


Bloggerって添付ファイルはっつけらんねーのかな。
ファイル添付無理っぽい。他に作ってリンクするしかないようだ。面倒くさいな。



以下、dvb-pt1-testのtuneを改造したもの。使用頻度は低いので超適当。
地上波は岡山設定。
s2scanの結果を/usr/local/etc/cs_channels.txt, /usr/local/etc/bs_channels.txt
に置いておくと読むようにしたはず。

checksignal.c
readchannels.c


とりあえず

色々メモを記録していくことにしようかな。
忘れたときのために。
あとデータが飛んだときのために。

まずは最近PCの時計が10年くらいとんでfirefox syncで拡張が一部消えてしまったので再インストールメモ

  • Adblock Plus
    • 重い広告がおおいから
  • Clear Cache Button
    • niconicoとかでキャッシュを消せと言われたときに
  • Evernote Web Clipper
    • あんまりつかってない
  • FireGestures
    • 必須
  • Gmail Watcher
    • 一応
  • Google Reader Watcher
    • 必須
    • 会社用と家用でラベルフィルタで分けて見る(日本語ラベルは使えない)
  • QuickDrag
    • いちいち選択して右クリックして検索とかめんどくさいので
  • SearchBox Sync
    • 検索した時にgoogleのアドレスから検索ボックスへ検索ワードが入る。
    • googleが動的になったのでいまいち
    • google toolbarの代わり
  • SearchWP
    • 検索ボックスの単語をハイライト
    • google toolbarの代わり 
 リンクはまあ貼らなくていいか。

書き込みテスト

書き込みテスト