行く川の流れは絶えずして

お名前検討中(仮)の動作環境を作ろうと、10-Releaseを入れたのが半月前。使いそうなpkgをポチポチ入れたので、必要なファイルを持ってきて設定を始めたら、いろいろ引っかかったという話。
その1、mod_authz_core。
apacheの設定なんて、最後に変えたのはいつだろうって感じですが、元の環境から持ってきたものが、どうも動きがおかしい。結局答えは上だった。現行環境がapache22で、今度のがapache24で、いやー、いろいろあるよね、世の中。

Order allow,deny
Allow from all

は、ナウなヤングには

Require all granted

だそうです。あらまあ。
その2、mediainfo。
録画ファイルのbitrate計算に、mediainfoのライブラリを使ってるのだけど、現行環境を作った時のportsはライブラリをinstallせずコマンドのみ入るようになってた。しょうがないので、野良コンパイルして作ったライブラリをリンクして使ってたのでした。
今回pkgにmultimedia/libmediainfoが増えてたので、そのままリンクすればいいかと思ったらさにあらず。何故かC++ APIだけ入ってて、C APIが入ってない、かつ-DUNICODEされてるもんだから受け渡しがwchar_tになっていて、すげー使いづらい。Openするファイル名をconst wchar_t*で渡せって、何の嫌がらせだー。うがー。
といってもしょうがないので、C++ API使うように、charとwchar_tの相互変換するように書き換えたのでした。
いっそまた野良で、というのも手だったが、mediainfoのmakeもやたら面倒だった覚えがあるし。今後も考えるとpkgを使う方が楽。。。なはず。。。

やはり放送変更追従が。。

DTV板で、サイコパス2の1話の録画ミスったー、というのを見かけたので、見てみたらうちもくらってたー。あうー。
続く、四月は。。はちゃんと録れてた。担当者の方には、夜中までメンテご苦労様です。
やっぱりEPG追従は欲しいかなあ。もともとEPGから予約してたら、同じサービスIDで追いかけられそうなんだけど、しょぼかるのPIDとEPGのIDをバインドする、いい方法を思いつかないのよね。
変更かかる前のそれっぽい時間帯の番組とみなしておくかなあ。タイトルの文字列の類似度が高いものを採る?いやいや。。。

お名前検討中(仮)その2

なんか星を付けていただいた方がおられるようで、こんなチラ裏に恐縮です。
というわけで、まあ明日にはごっそり別の画面になってる可能性もあったりなかったりですが、こんな感じ。
トップに、ディスク容量、新番組、最近の録画と、これからの予約を並べてみた。
放送予定。予約の切り替えも。
録画一覧。ディスクがあっぷあっぷになったら、積み録画をばっさり消したりしたくなるのでグループ削除ボタンを置いてみた。視聴ボタンは、HLSにするか、DLNAレンダラ呼び出すか、UDPでだだ流すか、どうしよ。
予約してる番組の放送予定と予約の削除。それにしてもこの秋の予約数ときたら。

FreeBSD 10.0 Releaseインストール

いまだにお名前検討中(仮)の何か、のクリーンな環境を作ろうと、開発機に10.0-Releaseをmemstickからインストール。
いつ以来だろう。。。えらくシンプルなインストーラーになったのねえ。zfs-rootもできるようになってた。partition作成のところで、ahciのエラーを大量にはいてたけど、reboot後に問題なく動いてる。謎。
freebsd-updateして、p9に。そこから必要そうなpkgをぽろぽろ導入。
ptx-kmodが、pkgでさくっとインストールできてびびった。b25が無いのに、インストールされるrecptx.plから呼んでいるという微妙な状態やね。

ああそういえばOpenWRT

こっちも棚ざらしだったなあ。いったんビルドまで終わったんだけど、レンガ化する恐れもあって躊躇してたら、BB正式版が出ちゃったので、ビルドし直すかなあということで中断。
お名前検討中(仮)で、スマホ連動も強化しようかなあということで、いろいろ目論見中。まあ昔から目論見まではいろいろあるんだけど、なかなか実現しないという平常運転。

お名前検討中(仮)

さんざん手を付け散らかして(主にPHPの方)、わけわかんなくなってきたfoltiaを、perl部分含めてCakePHPで車輪再発明中なのです。お名前検討中。
機能縮小しとるし、安定動作確認まではしばらく並行稼働やねー。

  • しょぼかる連動録画のみ。EPGは使ってないし、面倒なので後で考える。
  • UIはCakePHPのscaffoldまんま。後でいじる。
  • SQLiteのみ。dbまわりはCakePHPがPDO経由で叩いてるので、別DBに差し替えるのはそんなに手間じゃないはず。日付判定でSQLiteの独自関数使ってるけど。
  • アナログ録画とかラジオ録音処理はばっさりカット。recpt1呼び出しのみ。
  • サムネイル作成、StarLightBreaker、トラコンもカット。録画終了hookを作ったのでそこにスクリプト書けばいける。

現行環境に残ってる最古の積み録画は、2009/10/06の「そらのおとしもの #1 ユウシャ世界に起つ!」だった。いろんなのを録っては消し、録っては消しだけど、いったん積むとなかなかまとめて見る機会が無くてにゃー。それにしてもfoltiaには5年以上お世話になってるのね。ありがたや。

OpenWRT for Nexx WT1520

目標は、WT1520に挿したUSBメモリに入ってる地デジTSを、Androidで快適に観ること。多少面倒で良ければ、そのままでもOKだけど、

  • SMBだと激遅
  • FTPだとFFW/RWDが今いち、また(プレイヤーのせいかもしれんが)途中で固まる
  • DLNAは動いてない(backdoorのtelnetでログインしてみたら、upnpdは動いてるがこれはたぶんポート解放絡み、minidlna.confはあるけどminidlnaバイナリが無い)

というわけで、いつものオレオレDLNAサーバを組み込んだfirmwareを作ってみたい。ひとまずは普通のHTTPサーバが動けばいいかな。

環境構築

VirtualBox上に、lubuntu-14.04.1_x86をインストール。特に工夫もなし。

Synapticで、make、git、subversion、openssh-serverを追加。
一度リブートして、puttyからsshして続き。

レポジトリ展開

勝手が判らんので、素直にWiKiの通り
http://wiki.openwrt.org/doc/howto/buildroot.exigence

$ sudo apt-get install git-core build-essential

$ git clone git://git.openwrt.org/openwrt.git

$ cd openwrt
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a

WT1520向けのパッチをあてる。ただしpastebinにあるパッチは、何故か向きが逆。
パッチを眺めながら手で編集した。
https://forum.openwrt.org/viewtopic.php?pid=246678#p246678

オリジナルの方も参考に。
https://github.com/hackruu/nexx-wt1520-openwrt

ビルド準備の準備

さて

$ make defconfig
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'getopt'... ok.
Checking 'fileutils'... ok.
Checking 'working-gcc'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses'... failed.
Checking 'zlib'... failed.
Checking 'gawk'... failed.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'perl'... ok.
Checking '/usr/bin/python2.7'... ok.
Checking 'wget'... ok.
Checking 'git'... ok.
Checking 'gnutar'... ok.
Checking 'svn'... ok.
Checking 'openssl'... ok.
Checking 'gnu-find'... ok.
Checking 'getopt-extended'... ok.
Checking 'file'... ok.
Checking 'non-root'... ok.

Build dependency: Please install ncurses. (Missing libncurses.so or ncurses.h)
Build dependency: Please install zlib. (Missing libz.so or zlib.h)
Build dependency: Please install GNU awk.

Prerequisite check failed. Use FORCE=1 to override.
make: *** [tmp/.prereq-build] エラー 1

無いものは、Synapticから適当に検索して、libncurses5-dev、zlib1g-dev、gawkを追加。
もう一度 defconfigして。。OK

$ make prereq
$ make menuconfig

う。Target Profileに、NEXX WT-1520が出てこない。。。Wikiの下の方に、

After add a new board, you may should clean the tmp folder first.

とあるので、tmpを消してmake menuconfigすると選択肢に出てきた。
http://wiki.openwrt.org/doc/devel/add.new.device

ビルド準備

Target System: Ralink RT288x/RT3xxx
Subtarget: RT3x5x/RT5350 base board
Target Profile: NEXX WT-1520

パッケージは下記を参考に適当に。
https://github.com/hackruu/nexx-wt1520-openwrt/blob/master/build.sh

ビルド

$ make kernel-menuconfig

良く分からんので、そのまま終了して保存。

https://github.com/hackruu/nexx-wt1520-openwrt
のFILES_1520の下を、openwrt/filesとしてコピー。

$ make defconfig
$ make V=99