2011年04月27日

M3カタログビューアー(M3Navigator)更新(4/27)

音系・メディアミックス同人即売会M3の電子カタログビューアーです。 チェックリストとコメントのセーブ、ロードに対応しました。下のリンクから直接ダウンロードするか、簡単インストーラーを使ってインストールしてください。

■ ダウンロードアイテム
■ スクリーンショット
circlemap_27B.png

マップ画面のメニューからBackupを選択。

backup.png

ファイル名一覧を表示。新規セーブファイル名は時刻から適当に生成します。

ラベル:M3Navigator android
posted by yuji_at_radiance at 23:14| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

M3カタログビューアー(M3Navigator)インストーラーのリリース

M3カタログビューアー用のインストーラーアプリを作成しました。インストーラを実行すると、現在最新のアプリケーションとカタログデータのバージョンを表示します。ボタンをクリックするとダウンロード→インストールを自動で行います。

カタログビューアーの説明はこちら。http://setupradiance.seesaa.net/article/197275216.html

■ ダウンロードアイテム
  • 本ソフトウェアを利用することにより発生するいかなる損害も補償することはできません。ご理解いただいた上で、重要なデータのバックアップを取ってからご利用ください
  • 本ソフトウェアはSDカードへの書き込みパーミッションとネットワークアクセスパーミッションを要求します。あらかじめご理解ください。ネットワークアクセスは、更新情報の確認とカタログのダウンロードに必要なものです。連絡先情報等へのアクセス要求は行いません。インストール時に異常を感じましたら速やかにインストールを中断してください
  • M3NaviInstaller_signed_110426A.apk
■ 動作確認済み機種
  • Androidエミュレータ android 2.1
  • Google Nexus One (Android 2.3.3)
  • Motorola Xoom wifi (Android 3.0)

■ スクリーンショット
installer.png
インストーラーの画面。UpdateListボタンで最新のカタログのバージョンを確認。Installボタンでカタログ、アプリケーションのダウンロードとインストール。
ラベル:android M3Navigator
posted by yuji_at_radiance at 01:07| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2011年04月26日

暫定版ワンクリックインストーラーfor M3Navigator

注意:今回アップロードするソフトウェアは動作確認用の暫定版です。エラー対策が実装されていない、カタログを更新するとサークルチェックが消えるなどの問題があります。正式版が近日中に仕上がり次第削除します。正式版が出来上がったため削除します

M3カタログビューアー用のインストーラーアプリを作成しました。インストーラを端末に入れると、最新のカタログビューアーとカタログデータをダウンロードします。

■ ダウンロードアイテム
  • M3NaviInstaller_signed_110425A.apk
posted by yuji_at_radiance at 00:55| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2011年04月23日

M3カタログビューアー for android (M3Navigator)をリリース

5/1に開催される音系・メディアミックス同人即売会「M3」の電子カタログビューアーアプリです。M3の公式サイトはこちら http://www.m3net.jp/
動かない、著作権的に問題があるなどの御意見はyuji2iskwutrt あっとまーく gmail.comまで ご連絡ください。また、twitterで#m3naviまたは#m3navigatorをつけて発信しています。

■ 機能(スクリーンショット集も参照)
  • サークルチェック、コメントの追加
  • チェックリストをマップ上で確認
  • サークルの一覧表示、絞込み検索
  • サークルの個別情報の表示
  • Twitter投稿、メール作成支援
■ 動作確認済み機種
  • Androidエミュレータ android1.6, android 2.1, android 2.2, android 2.3
  • Google Nexus One (Android 2.3.3)
  • Motorola Xoom wifi (Android 3.0)
  • Sharp IS03 (Android 2.2)
  • HTC desire Z (Android 2.2)

※Android 2.1以降で、画面解像度が800x480程度の機種を想定して開発しています。 メモリが少ない端末で実行すると強制終了しそうです(HT-03Aで動くかな?)。

お願い:
国内で販売されている機種をお持ちの方のレポートをお待ちしております。 特に、Samsung Galaxy S/Tabの動作報告をお待ちしております。

■ ダウンロードアイテム
  • 本ソフトウェアを利用することにより発生するいかなる損害も補償することはできません。ご理解いただいた上で、重要なデータのバックアップを取ってからご利用ください
  • 本ソフトウェアはSDカードへの書き込みパーミッションを要求します。あらかじめご理解ください。ネットワークへのアクセス要求・連絡先情報等へのアクセス要求は行いません。インストール時に異常を感じましたら速やかにインストールを中断してください
  • 本体:PCか標準ブラウザアプリで落としてください:M3Navigator_signed_110423A.apk
  • データ:SDカードのトップにm3naviフォルダを作って中身を展開してください。/sdcard/m3navi/m3_27ができるようにします:catalog_m3_27_110423A.zip
■ 制限事項(著作権的に、技術的に)
  • サークルカットの表示(カタログのみに記載された情報:著作物のため)ユーザがスキャン画像を「サークル名.png」の形でm3navi/m3_27/pictures以下に配置すれば表示できます
  • サークルキーワードは、書籍カタログの巻末に掲載されたものではなく、Webに掲載された簡略版が表示されます(著作物のため)
■ 表示用のデータについて

M3準備会がWebページ上で公開している「参加サークルリスト」と「会場マップ」を加工して使っています。

■ スクリーンショット
■■サークルマップ
map2.png
  • チェックしたサークルの場所を色分け表示
  • マップ上のエリアをクリックするorカラーバーのクリックでリスト表示へ
  • 左端のドラッグでズーム
  • 下端のフリックでページめくり
  • メニュー:絞込み検索
  • メニュー:カタログの切り替え
■■サークルリスト
circlelist2.png
  • 項目短押しで隠れている項目の表示
  • 項目長押しでサークル詳細へ
  • メニュー:絞込み検索
■■サークル詳細
circlespec2.png
  • チェックカラーの変更
  • ユーザコメント編集(最後にsaveボタンを押してください)
  • サークルwebページへのジャンプ
  • サークルカットの表示(サークル名と同じ名前のpngファイルを入れれば)
  • SNS、twitter、メーラーにテキスト送信
  • メニュー:SNSに送信するテキストのフォーマット編集
■■サークル検索
query2.png
  • メニューキーから検索ダイアログをポップ
  • エリアで絞込み
  • キーワードで絞込み
  • チェックカラーで絞込み
  • フリーワード検索(サークルの自己紹介文にヒットします)
ラベル:android M3Navigator
posted by yuji_at_radiance at 10:32| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2011年04月11日

M3カタログビューアー製作中です

5/1に開催される第27回M3に向けて、Android版カタログビューアーを鋭意開発中です。書籍版のカタログが発売されたようなので、一応死んでないよアピールをしておきます。公式webにサークルリストが載ったら、こちらもアプリを公開します。もしかすると機能試験版を先に出すかも知れないけど。
■とりあえず近況:
  • 前回、前々回のイベントカタログを切り替えて表示できるようにしました。
  • MotorolaのXoom wifiを入手したので動かしてみました。ちゃんと動くけど、見た目が残念な出来に。

■アイデア(時間が充分にあったら実装するかも):
  • マップからサークル情報へ直にジャンプする
  • タブレット解像度への対応
  • チェックリストのオンライン共有
  • 上映スペースのスケジュール表示(マンパワー頼み?)

■スクリーンショット
eventIDsel.png
カタログデータ切り替えの様子
ラベル:android M3Navigator
posted by yuji_at_radiance at 23:52| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2010年10月30日

M3カタログビューアーv2をリリース

M3カタログビューアーのバグフィックス・機能アップデートです。明日の天気しだいではこれが最後のアップデートになるかも。
画像入りの説明はこちら:M3カタログビューアー(こんなもの作ってました)
■更新内容
  • バグ修正:検索ダイアログにgenreの情報を入れると必ず検索に失敗する
  • 機能追加:現在の絞込み条件を検索ダイアログに表示。追加の絞込みが容易に
  • 機能追加:テキストメッセージング(Twitterなど)との連携強化。サークル詳細ビューに共有メニューを追加。投稿内容のテンプレートをカスタマイズ可能
■ダウンロードアイテム
  • 本ソフトウェアを利用することにより発生するいかなる損害も補償することはできません。ご理解いただいた上で、重要なデータのバックアップを取ってからご利用ください
  • 本ソフトウェアはSDカードへの書き込みパーミッションを要求します。あらかじめご理解ください。ネットワークへのアクセス要求・連絡先情報等へのアクセス要求は行いません。インストール時に異常を感じましたら速やかにインストールを中断してください
  • 本体、PCか標準ブラウザアプリで落としてください:M3Navigator_signed_2_0.apk
  • データ:前回リリースから変更ありません。初回インストールの場合のみ、こちらのページからダウンロードしてください。M3カタログビューアー(こんなもの作ってました)
■制限事項(著作権的に/技術的に)
  • メニューからデータベースのエクスポート、インポート
  • サークルカットの表示(カタログのみに記載された情報:著作物のため)ユーザがスキャン画像を「サークル名.png」の形でm3navi/m3_26/pictures以下に配置すれば表示できます
  • ジャンル情報の検索(カタログのみに記載された情報:著作物のため)
  • 検索をネストして戻るキーで移動するとき、リストに表示される情報が古いままの時があります
  • android端末から直にダウンロードしてインストールしようとすると、失敗する(なぜ?)PCでダウンロードしてSDカードに転送するとインストールできます。どうやらdolphin browserのダウンロード機能で保存すると、最初の数KBしか落とせないようです。標準ブラウザにアドレスをコピペすれば端末単体でも大丈夫です。
  • android 1.5の端末で動かないとの連絡がありました(SmartQ5とかが該当)。HT03Aは、1.6になってるよ・・・ね?
ラベル:M3Navigator android
posted by yuji_at_radiance at 01:23| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2010年10月29日

M3カタログビューアー(こんなの作ってみました)

10/31に開催される音楽同人イベントM3 (ホームページはこちら)のandroid版電子カタログアプリを作ってみました。
  • とりあえずnexus oneで動作確認済み。Xperia/Desireあたりなら動くんじゃないかと。HT03-Aではちょっと画面サイズがたりないかも知れません。galaxy Sに関しては外部メモリのマウント位置が特殊なのでうまくいかないかも。android 1.5の端末で動かないとの連絡がありました(SmartQ5とかが該当)。HT03Aは、1.6になってるよ・・・ね?
  • 表示用データに、M3準備局がホームページ上で公開している「参加サークルリスト」と「開場マップ」を加工して使っています。問題がある場合はyuji2iskwutrt あっとまーく gmail.comにご連絡ください。
■ダウンロードアイテム
  • 本ソフトウェアを利用することにより発生するいかなる損害も補償することはできません。ご理解いただいた上で、重要なデータのバックアップを取ってからご利用ください
  • 本ソフトウェアはSDカードへの書き込みパーミッションを要求します。あらかじめご理解ください。ネットワークへのアクセス要求・連絡先情報等へのアクセス要求は行いません。インストール時に異常を感じましたら速やかにインストールを中断してください
  • 本体、PCか標準ブラウザアプリで落としてください:M3Navigator_signed_1_0.apk
  • データ、/sdcard/m3naviができるように展開ください:m3navi.zip
■制限事項(著作権的に/技術的に)
  • メニューからデータベースのエクスポート、インポート
  • サークルカットの表示(カタログのみに記載された情報:著作物のため)ユーザがスキャン画像を「サークル名.png」の形でm3navi/m3_26/pictures以下に配置すれば表示できます
  • ジャンル情報の検索(カタログのみに記載された情報:著作物のため)
  • 検索をネストして戻るキーで移動するとき、リストに表示される情報が古いままの時があります
  • android端末から直にダウンロードしてインストールしようとすると、失敗する(なぜ?)PCでダウンロードしてSDカードに転送するとインストールできます。どうやらdolphin browserのダウンロード機能で保存すると、最初の数KBしか落とせないようです。標準ブラウザにアドレスをコピペすれば端末単体でも大丈夫です。
■サークルマップ
map2.png
  • チェックしたサークルの場所を色分け表示
  • マップ上のエリアをクリックするorカラーバーのクリックでリスト表示へ
  • 左端のドラッグでズーム
  • 下端のフリックでページめくり
■サークルリスト
circlelist2.png
  • 項目長押しでサークル詳細へ
■サークル詳細
circlespec2.png
  • チェックカラーの変更
  • ユーザコメント編集
  • サークルカットの表示(サークル名と同じ名前のpngファイルを入れれば)
■サークル検索
query2.png
  • メニューキーから検索ダイアログをポップ
  • エリアで絞込み
  • キーワードで絞込み
  • チェックカラーで絞込み
  • ジャンルコードで絞込み(未実装)
ラベル:M3Navigator android
posted by yuji_at_radiance at 00:16| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年12月15日

ns001u with android on SmartQ

先週の速報の続き。

カーネルモジュールを無理やり突っ込んでttyデバイスの作成に成功したものの、phs dialerは動作しなかった。今週は、色々いじってみたけれどやっぱり動かなかったという報告。

phs dialerのパッケージが1.2MByteとかあるので、さぞかし難しい処理をしているのだろうと思いきや、ほとんど全ての容量はアイコン類のファイルで占められていることが判明。apkファイルは実際にはzipである。このあたりはjarと同じ。プログラム本体であるdex(dalvic classファイル)はたった一つである。おそらく、pppデーモンを立ち上げるために存在しているのだろう。

それならということで、/etc/pppディレクトリ以下をubuntuで動作実績のあるファイルで入れ替えてしまう。pppdのデバッグ出力を有効にして pppdをtelnetコンソールからダイレクトに叩く。が、無常にもダイヤル(ATDT0570xxxxxのこと)の途中でタイムアウトしてしまう。

ATDT(ダイヤル)コマンドには全くと言っていいほど反応しないが、ATZ(リセット)やAT@@LNK(電波状態)などのコマンドには普通に反応する(しないときもある)。ttyデバイスがまったくもって死んでいるというわけではないらしい。このあたりの検証も実にバカバカしく再現性安定性の欠片もない方法(echoとddを交互に打ち込む)を使っているので、良く分からないことが多い。ああ、screenコマンドを使いたい。

WSIMはRX420(青耳とか言うらしい)なのだが、こいつのリセット直後の挙動が怪しいことが、原因分析をさらに難しくしている。

posted by yuji_at_radiance at 23:25| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年12月07日

android on smartQ5にns001uをつないでみる(速報)

前エントリで紹介したとおり、ubuntuのカーネルモジュールを無理やりinsmodすることで、USB接続のCDROMドライブを動かすことが出来た。これを応用すればwillcomの通信アダプタns001uを動かすことができるんじゃ無いだろうかと考え、試してみた。結論から言うと、あと少し(?)のところで失敗した。ただひとこと言い訳をするならば、ubuntu on smartQ5では動いているので、全くの無駄銭というわけではない。

covia版androidはPHS/3G dialerというアプレットを使って、限られた種類のUSB通信ドングルを扱うことができる。ネットで流れている情報を整理すると、サポート対象のドングルは全て、pl2303というUSB-Serial変換の石を経由して無線モジュールを操作しているらしい。で、pl2303ドライバが適用されたデバイスは/dev/ttyUSB0という形で見えるらしい。

一方、ns001u他の通信ドングルはUSB-Serial変換の石を使っておらず、USB CDC ACMクラスのデバイスとして認識されるという。ちなみにCDC ACMクラスドライバはubuntuには含まれているが、covia版androidには含まれていない。

linuxにおけるネットワークの処理については全くの素人だが、大体のところ、関門は次の4つくらいではないかと考えられる。

  • ns001uがACMデバイスとして認識される。/dev/ttyACM0が作られる
  • /dev/ttyACM0を何らかの形でいじり、/dev/ttyUSB0に見せかける。おそらくPHS dialerは/dev/ttyUSBを決めうちにしているはず。
  • /dev/ttyACM0 (ns001u)をたたくコマンド(ATコマンド?)が/dev/ttyUSB0(動作実績のあるドングル)と互換性がある
  • PPPサービスが正常に動く
ACMデバイスとして認識させるのは、ubuntuからドライバをもらってくれば良いとする。実際のところ、上手く行った。次のttyUSB0を作るところはとりあえずシンボリックリンクを張るだけにした。ネットのどこかで、シンボリックリンクでごまかした事例を見たような気がする。それ以降に関しては、良く分からない。障害がおきたら都度対処するしかないだろう。

シンボリックリンクを張る前と後では、PHS dialerでconnect命令を出してからエラーするまでの時間が明らかに違う(まあ、ダメなことに変わりはないのだが)。とりあえず、何かしらのシグナルが送られているのだと思われる。ubuntuでns001uが動いたときに働いていたカーネルモジュールを手当たり次第に放り込んでみたが、上手く行かなかった。アプローチを変えて試してみる必要があるだろう。とりあえず、ATコマンドが通るかぐらいは試してみよう。

posted by yuji_at_radiance at 23:47| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年12月06日

Android on SmartQ5にUSB CDROMを接続する

covia版androidのUSBホスト機能で使えるデバイスは、USBキーボード、USBメモリ(HDD/カードリーダ)、一部の3G/PHS通信モジュール(12月度アップデートより)である。ちなみにUSBメモリを使うためにはtelnetログインしてmountする必要があり、androidの枠内で扱えるわけではない。それ以外のデバイスはlinuxで使えるものであっても認識されない。

では、USB接続のCDROMドライブはどうか?実は使えない。linuxではUSB-CDROMのデバイスドライバはUSBメモリのデバイスドライバと別扱いであり、covia版androidにはドライバがインストールされていないのである。

ではどうしたらよいか。無ければ作るか、どこからか持ってくればよいだけのこと。バージョンをそろえたカーネルソースを持ってきて、カーネルモジュールをビルドすればよいのでは? と、ここまで考えた所で天啓が浮かぶ。「SmartQ向けUbuntuのカーネルモジュールが流用できるんじゃね。」カーネルのバージョンを調べてみると、12月度リリースのandroidと最新ubuntuのバージョンが見事に一致する(どちらも2.6.24.7)。

カーネルビルド時のオプションが違うのだから、到底上手く行きそうにないが、とりあえず検証してみることにする。倉庫に眠っていたUSB-DVDROMドライブにCentOSのインストールディスクを挿して、androidに接続する。

以降、android上の作業はtelnet経由で行う。LANで接続しても良いし、telnetクライアントをandroid上で立ち上げても良い。接続が安定しているならLAN経由がオススメ。android上のクライアントとしては、「Telnet」(koushikdutta.telnet)を使う。他のターミナルソフトと違い、確実にソフトキーボードで動作する。これで履歴機能が使えれば大満足なのに。あと、ESC/Ctrlキーを渡せないので、下手にcatとかすると端末が制御を受け付けなくなる。

ともあれ、DVDドライブを接続してdmesgをかける。デバイス「sg0」が作られたとレポートされる。これは「/dev/block/sg0」に対応する。記憶デバイス絡みは大体「/deb/block」以下に配置される。一本目のUSBメモリならば「/dev/block/sda」だ。

記憶デバイスをマウントするときは通常mountコマンドを使う。USBメモリをマウントするならば次のように打つ

mount -t ext3 /dev/block/sda /media
では、sg0をマウントできるか?マウントできない。USB CD-ROMドライブは、「USBデバイス」→「SCSIデバイス(sg0)」→「ブロックデバイスCD-ROM(sr0)」の3段階で認識することで、初めてsr0をマウントすることができる。SCSIデバイスの段階までは認識されているようなので、CD-ROMドライブとして認識するデバイスドライバが必要なのだが、covia版androidにはドライバが含まれていない。

それでは実験、ドライバをubuntu for SmartQから抽出する。このあたりの手順はThe Life with Gadgetほかが詳しい。「smartQ、デュアルブート」で検索すると、色々と知識が得られるはず。本実験に手順をリストアップすると、

  1. 北京智器のサイトからsmartQextractorと、ファームウェアをダウンロードしてくる
  2. smartQextractorで、smartQ5のインストールイメージをアンパックする。幾つかのtgzファイルが出てくるはずだが、用があるのはrootfs.tar.gzである。
  3. rootfs.tar.gzを解凍する。linuxマシンでやってもよいし、Cygwinでもよいし、windows用の解凍ソフトを使ってもよい
  4. 用があるのは、/lib/modules/2.6.24.7/kernel以下だけである。kernelのサブディレクトリをSDカードにコピーする。
これで、linux2.6.24.7 (ARM)のカーネルモジュールがandroidの/sdcard/kernel以下に置かれたはずである。

で、ふたたびtelnetに戻る。カーネルモジュールを強制的に読み込ませるコマンドはinsmod、活動中のカーネルモジュールをリストするコマンドはlsmodである。一般的なlinuxマシンでlsmodすると、「sr0」が出現するには、kernel/drivers/cdrom/cdrom.koとkernel/drivers/scsi/sr_mod.koが必要らしい。なので、足してやる。

insmod /sdcard/kernel/drivers/cdrom/cdrom.ko
insmod /sdcard/kernel/drivers/scsi/sr_mod.ko
もう一度/dev/blockディレクトリを調べると、デバイス「sr0」が追加されている。成功である。ubuntuのドライバはandroidに流用できる。

さて、ここまで来たらマウントしたくなるのが人情。DVD-ROMは読み込みデバイスなのでrオプションをつける。

mkdir /cdrom
mount -r -t iso9660 /dev/block/sr0 /cdrom
あれれ、何故かsr0は存在しないと出る。確かにあるはずなのに。-t ext3とすると、しばらくドライブが唸った後に、-tオプションの誤りを指摘する。もしかして、iso9660は有効なオプションではないのか? 賢明な方はお気づきだろうが、実はiso9660のファイルシステムを扱うドライバが欠落しているのである。対応するファイルは、kernel/fs/isofs/isofs.koである。
insmod /sdcard/kernel/fs/isofs/isofs.ko
ではもう一度。今度はmountに成功し、/media上にDVD-ROMの中身が置かれる。

本実験により、covia版android未サポートのデバイスを無理やり動かす方法に光明が見えた。次はCDC-ACMドライバを試してみたい。これはUSBデータ通信モジュールのドライバであり、上手くはまれば12月時点で未サポートのUSB通信ドングルを動かせる可能性がある。ていうか何としても動かしたいNS001U。

(注意)本稿の内容を実行した場合、そこそこ悪いケースとしてandroidの設定が破壊される可能性があります。クリーンインストールで復旧できるはずですが、重要なデータを退避した後に実験してください。また、最悪のケースとしてデバイスドライバを操作する関係上、SmartQ5に不可逆の損傷を与える可能性があります。危険性を理解したうえで実験を行ってください。
posted by yuji_at_radiance at 16:09| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年11月17日

sqlite3-rubyをrubygemsでインストールする

なんだか良く分からずにハマったのでメモを残す。

CentOS公式のRuby/Rubygemsはバージョンが古いので、sqlite3-rubyは依存解決に失敗してハネられてしまう。かといって、公式からtarを落としてきてビルドすると、yumでインストールされたものとケンカしてしまう。checkinstallツールを使うとtarをrpmに変換できるので、パッケージ管理ツールの機嫌を損ねずにrubyをアップデートできる。rubyを1.8.7、gemも最新のものにして、ようやくsqlite3-rubyが入れられると思ったのだが・・・。

教科書どおりの手順でrubygemsからインストールを試みる。

$ sudo gem install sqlite3-ruby
Building native extensions.  This could take a while...
Successfully installed sqlite3-ruby-1.2.5
1 gem installed
Installing ri documentation for sqlite3-ruby-1.2.5...

No definition for _wrap_new_CallbackData
以後数十行にわたり省略
No definition for _wrap_sqlite3_aggregate_context

実行すると山のような警告メッセージが出た。もうダメかと思ったが、どうやらdocsのインストールに不備が出ただけで、実行ファイルはインストールされているらしい。テストプログラムを書いて実行してみたところ、確かに動いた。

テストプログラムを実行するときの注意点としては、rubygemsでインストールしたパッケージを使うときにはrequire rubygemsを必ず最初に宣言すること。これをやらないと、load errorが発生して「インストール失敗?」と頭を抱えることになる。

require rubygemsの効果を実感したいならば、irbインタプリタを立ち上げて以下のコマンドを打ち込むと一目瞭然である。

irb > p $LOAD_PATH
irb > require 'rubygems'
irb > p $LOAD_PATH
posted by yuji_at_radiance at 22:36| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年10月09日

AP機能付きUSB無線LANドングル

SmartQ5 with androidが届いたのに無線環境が無いという宝の持ち腐れ状況を回避するべく、無線LAN環境の整備を始めた。

一番安全確実なのは、無線LANルータを設置することなのだが、

  • それなりに高い
  • 無線機器がLANのさらにサブネットに所属する(ブリッジ接続にすればよいが)
  • 安直過ぎて面白くない
の理由でボツに。

で、代わりに買ってきたのがplanexのGW-US54GXSという無線LANドングル。これは無線LANのクライアントとして動作するほかに、「ソフトウェアAPモード」を搭載しており、無線LANの親機になることができる。ターゲットユーザーはNDS使いやPSP使いなのだそうだ。

US54GXSのうれしいところは、Linuxで動くこと。ドライバを入れればLinuxでもAPになることができる。これでネットワーク機能はルータ兼サーバ兼もろもろのradianceに集約することができるはず。

で、早速windows機に挿して予備実験。我が家のPSPもSmartQも無事にインターネットに接続することができた。あとは隙を見て(何の?)radianceを無線LANマスタに仕立て上げるだけ。上手くいくかな。

(10/12追記)無線チップzd1211のドライバは、書き直し前のドライバ(zd1211)と書き直し後のドライバ(zd1211rw)があって、アクセスポイントモード(masterモード)に対応しているのは書き直し前のものらしい。zd1211rwはカーネルソースに含まれていて、menuconfigで追加したら無線LANクライアントが使えるようになった。

書き直し前のドライバについては、カーネルヘッダのバージョンに依存するらしく、少なくとも2.6.27(おそらくもっと)前でないとダメらしい。現在のところKernel2.6.29を使っているのでコンパイルエラーが山のように出る。修正箇所があまりにも多すぎて手作業修正は絶望的であった。

posted by yuji_at_radiance at 23:38| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年09月20日

epgrecのインストール(ブラウザの設定編)

前回・前々回の手順で、epgrecのアーカイブと必要なツールがインストール・設定されているはずである。 今回は、epgrecをブラウザ経由で操作して初期設定を行う。

apacheの設定

まず、epgrecがapacheから見えるように設定を変更する。新たに/home/foltia/epgrecをドキュメントディレクトリに追加する。 既存のドキュメントディレクトリ(httpd/htdocsとかhttpd/htmlとかuser/public_htmlとか)にepgrecを置く場合この作業は不要である。 httpd.confに数行の設定を追加する。

/home/foltia/foltia_httpd/conf/httpd.conf
Alias /epgrec "/home/foltia/epgrec"

    DirectoryIndex index.php index.html
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

そしてapacheを再起動する。
# /etc/init.d/foltia_httpd restart

ブラウザベースの設定

h ttp://radiance/epgrec/index.phpにブラウザでアクセスする。 初回設定が済んでいないと自動的に対話的セットアップのページに飛ぶ。すごい。 デジタルチューナー設定については特に何もしない。 システム設定は変更が必要。少なくとも以下の項目を編集する。

  • MySQLサーバー名はlocalhost
  • MySQLユーザー名はfoltia
  • MySQLパスワードはpassword-for-foltia
  • データベース名はfoltia_epgrec
  • インストールURLはh ttp://radiance/epgrec
MySQLパスワードはepgrec以下に平文で保存されるので、他のパスワードと違う文字列にしたほうがよい。MySQLパスワードの設定については前記事(蛇足編)を参考にしていただきたい。 ちゃんと設定できると、EPGの初回受信を始める。私の場合なぜかここでepgrecがうんともすんとも言わなくなった。真面目に仕事しているかどうか、recfriioの動作状態を確認する。
$ ps -A | grep recfriio
recfriioが立ち上がっていないのにロックファイルがあると、他のプロセスの迷惑になるのでチェックして削除
$ rm -i /home/foltia/foltia_tools/perl/tool/friiodetect
上手くいかない場合、手動で試してみる。15分くらいかかる。
$ /home/foltia/foltia_php/bin/php /home/foltia/epgrec/getepg.php

cronに仕事を追加

定時に行う仕事をcrontabに追加する。例えば12時29分に番組表を取得するには次のように書く。

$ crontab -l | grep epgrec
29 12 * * *  /home/foltia/foltia_php/bin/php /home/foltia/epgrec/getepg.php

最後に・・・

videoフォルダを大容量ディスクへのシンボリックリンクに張り替える

$ rm -rf video
$ ln -s /home/shared3/foltiarec video

posted by yuji_at_radiance at 09:24| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年09月19日

epgrecのインストール:蛇足編

ここではepgrecが依存している環境、apacheとphp、MySQLのインストールと設定について説明する。これらがプリインストールされた環境でepgrecを使おうという人は読み飛ばしていただきたい。不幸にも環境に不備があった人、環境をカスタマイズしようとしている人に本記事を捧ぐ。

apacheの設定

foltiaを設定したときの記事を参考にしていただきたい。基本的にapacheのビルド設定は変更していない

MySQLのインストールと設定

MySQLはyumを使ってインストールする。らくちん。

# yum install mysql mysql-server mysql-devel
# /etc/init.d/mysqld start
コンソール作業でMySQLの初期設定を行う。もしかしたらepgrecが勝手にやってくれるかも知れないけど、手を動かそう。
ルートパスワードの設定とセキュリティーホールなユーザの削除
$mysql -u root mysql
mysql> set password for root@localhost=password("root-pass");
mysql> delete from user where user='';
mysql> delete from user where password='';
mysql> quit
foltiaユーザの作成(便利なコマンドがありそうだけど・・・)
$mysql -u root -p mysql
password: "root-pass"
mysql> insert into user set
    -> host='localhost',
    -> user='foltia',
    -> password=Password('password-for-foltia'),
    -> Select_priv='Y',
    -> Insert_priv='Y',
    -> Delete_priv='Y',
    -> Update_priv='Y',
    -> Create_priv='Y';
データベースを新規作成し、ユーザfoltiaに関連付ける
mysql> create database foltia_epgrec
mysql> grant all on foltia_epgrec to foltia@localhost 
    -> identified by 'password-for-foltia';

重大な訂正(2009/11/19)。Update_privの権限を付加するのを忘れていた。というか、書き写すときに抜けていた。権限を付与しないとupdateコマンドが使えないので、epgの更新などの作業中にこける。もうむしろ全権与えてもいいんじゃないかという気がしてきた。

php5の設定

MySQLのサポートとマルチバイト文字サポートが必要になる。最低限必要なconfigureコマンドとビルド手順は以下の通り。先にmysql-develをインストールしておくこと。

$ ./configure  --disable-debug \
  --with-apxs2=/home/foltia/foltia_httpd/bin/apxs \
  --with-pgsql=/usr/bin \
  --prefix=/home/foltia/foltia_php \
  --with-mysql --enable-mbstring --enable-mbregex
$ make
# /etc/init.d/foltia_httpd stop
# make install
--enable-mbstringを外すと、録画予約中にスクリプトがコケるので注意。画面は正しく遷移するのにデータベースが更新されないのでタチが悪い。foltia_php/lib/php.iniを編集してlog_errors=Onにしておくと、apacheのエラーログにmbライブラリの欠落が警告されるようになる。

次回は最終回、Webベースの設定とdailyスクリプトの登録。

posted by yuji_at_radiance at 00:54| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年09月18日

epgrecのインストール

テレビ王国がアクセス制限を行っているためfoltiaのEPG機能は正常に動作しない。アニメの放映情報はしょぼいカレンダーから取得しているので問題ないが、それ以外の番組を録画するには手動で入力するしかない。状況を打開するために、日経Linuxで記事になっていたepgrecを動かしてみることにした。なるべく既存のfoltia環境に相乗りする形でインストールすることを目指してトライする。

epgrecのダウンロード

配布ページから最新のアーカイブをダウンロードする。私が入手したのは8月14日版。あとTSからEPGを取り出すツールepgdumpを入手しておく。epgrec配布サイトから入手するか、DTV保管庫へ。私が使っているのはepgdumpr2 (up0027.zip)。

epgdumpのビルド・インストール

up0027.zipはunzipコマンドで解凍できない。本当の拡張子は.tarだからである(アップローダーの仕様?)。拡張子を変えてさっくりとビルドして、適当なパスに放り込む。

$ mv up0027.zip up0027.tar
$ tar -xvf up0027.tar
$ cd epgdumpr2
$ make
# cp epgdump /usr/local/bin

epgrecの解凍

既存の設定として以下の環境を想定する。

  • 全てのツールはユーザfoltiaの権限で動かす
  • チューナーはmonsterTV HDUS(F)
  • /home/foltia以下には以下のディレクトリがある
    • foltia_httpd...foltia用apache
    • foltia_php.....foltia用php5
    • foltia_tools...foltiaの録画ツール
    • src............apache/phpのビルド用ディレクトリ
本記事では、epgrecのファイル一式を/home/foltia/epgrecに解凍する。

epgrecの設定:コンソール編

まずは録画ドライバを調整し、EPGが取得できることを確認する。設定ファイルと録画ドライバのテンプレートをコピーする。

$ cd /home/foltia/epgrec
$ cp config.php.sample config.php
$ cp do-record.sh.friio do-record.sh
config.phpを編集する。自分の住んでいるエリアに対応した放送局のみコメントを外す。他はとりあえず放置。 do-record.shを編集する。foltiaと録画予約がバッティングした時にrecfriioが多重起動しないようにロックファイルを共用する。
do-record.sh
#!/bin/sh
echo "CHANNEL : $CHANNEL"
echo "DURATION: $DURATION"
echo "OUTPUT  : $OUTPUT"
echo "TUNER : $TUNER"
echo "TYPE : $TYPE"
echo "MODE : $MODE"

RECORDER=/usr/local/bin/recfriio
B25=/usr/local/bin/b25_bcas
LOCKFILENAME=/home/foltia/foltia_tools/perl/tool/friiodetect

$RECORDER --b25 --hdus --lockfile ${LOCKFILENAME} \
          ${CHANNEL} ${DURATION} ${OUTPUT} >/dev/null
ちゃんと書けているか一応試す。ついでにEPGを抽出してみる
$ OUTPUT=test.ts CHANNEL=27 DURATION=90 TUNER=0 MODE=0 TYPE=GR /var/www/epgrec/do-record.sh
$ epgdump 27 test.ts test.xml
$ cat test.xml

区切りのいいところで次回へ続く

posted by yuji_at_radiance at 23:53| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年05月28日

QtとUSBで遊ぼう

QtでGUIを作ってUSBマイコンをI/Oにして何か面白いものを作ってみたいと思う。とりあえず練習として、秋月電子のFT245ボードを動かしてみる。秋月で公開されているサンプルをQtでそれっぽく再現してみたのがコレ。

ft245demo.png

FT245のAPIライブラリのドキュメントは、肝心なところがあちこち抜けていて、結局ヘッダファイルを読まないと何がなんだかわからなかったりする。I/Oの方向を決めるAPIとBitBangモードでI/Oを読むAPIの名前が対になっている(set/get)のはどうにかならないのだろうか。これで2時間くらいハマった。タスケテ・・・。

経験値が溜まってきたらez-usb FX2も試してみたい。オプティマイズのボードとか。通信帯域が十分にあれば測定器とかも作れそう。

posted by yuji_at_radiance at 23:50| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年05月24日

ハードウェアの設定あれこれ

本来のマシンにHDDが納まったところで、ハードウェア類の設定を行う。 例を挙げると・・・

  • cpuspeedサービス
  • lm-sensorsサービス
  • データ用HDDのスリープ
などがある。


エンコードでもしない限り1.8GHzでまわす必要など全くないので、cpuspeedを使ってプロセッサの周波数を下げる。CPUはViaのC7-Dを使っており、省電力モジュールの名称はe_powersaver (Enhanced Power Saver)である。cpuspeedデーモンの設定ファイル/etc/sysconfig/cpuspeedを編集する。

/etc/sysconfig/cpuspeed
##関係ないとこ省略
DRIVER=e_powersaver
GOVERNOR=

GONERNORは設定しないとon-demandモードになる。あとは、サービスを立ち上げ、(少なくともランレベル3と5で)自動起動の設定をする。

# /etc/init.d/cpuspeed start
# /sbin/checkconfig --level 35 cpuspeed on

lm-sensorsを使うことで、温度センサ、電圧センサ、ファンの回転数制御などが使えるようになる。sensorsサービスを使うためにはまずセンサICのドライバをロードする。SN18000に搭載されたセンサはdme1737モジュールで制御する。

ちょっと厄介なのは、センサの置かれているアドレスが普通と違う(?)らしく、モジュールを起動する時に引数が必要である。

# modprobe dme1737 probe_all_addr=1
# sensors

起動時オプションを指定するのが面倒なので、オプションが自動的に付加されるように設定を変更する。これで、単にmodprobeするだけでOK。起動時にロードしておきたいならば、rc.localに追加するのも手である。

/etc/modprobe.conf
options dme1737 probe_all_addr=1
/etc/rc.local
modprobe dme1737

データ用ハードディスクを停止させる手順については、以前にも取り上げた。hdparmを使ったタイムアウトの設定とsmartdの設定変更で、HDDの電源を切るようにしている。

posted by yuji_at_radiance at 23:37| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年05月23日

ネットワークの再設定

Radiance上では様々なネットワークサービスが稼動している。例えば

  • PPP接続
  • ルータ
  • ファイアウォール・NAT
  • DHCPサーバ
  • HTTPサーバ(外向き・内向き)
  • Sambaサーバ
などがある。これらのサーバをReady to useな状態に持っていかなければいけない。厄介なことに、このあたりの設定はハードウェアの構成に強く依存するのでノートPC上で設定することができない。


まずはPPP接続の修復。アクセスポイント名とパスワードがどうにも思い出せないので設定ファイルをコピーしてしまった。/etc/sysconfig/network-scripts/ifcfg-ppp0.cfgと/etc/ppp以下の全ファイルをコピーする。

接続のリース期限が切れるとIPアドレスが変わってしまう場合がある。IPアドレスが変わった時にダイナミックDNSのレコードを書き換えるサービスを走らせる。RadianceはDynDNSを使っているので、DynDNSを公式にサポートしているddclientをダウンロードした。READMEにしたがって設定ファイルを/etc/ddclient以下に配置してスクリプトファイルを/etc/init.d以下に配置する。起動時にddclientが立ち上がるようにchkconfigを使って設定する。

PPP接続をゼロから設定するときはadsl-setupコマンドを使う。手元にISPの契約書類を用意しておくこと。


ルータ・ファイアウォールの設定はiptables(今はnetfilterっていうんだっけ?)を使う。設定自体は横着して旧サーバからコピーしてしまったが、それでも結構ハマった。iptables周りは変更が激しいので、カーネルをビルドすると必ずトラブルが発生する。

CentOSのデフォルトカーネル(2.6.18)から最新カーネル(2.6.29)にスイッチしたところ、起動時に早速エラーが出た。ip_conntrack_netbios_nsが無いとのことである。とりあえずクラッシュしないので、見なかったことにして先に進む。 続いて、iptablesを再現するコマンド列をsourceコマンドで実行したところ、natチェインが使えないとの警告を食らってしまった。lsmodをかけてみると、確かにnatチェインに必要なiptable_natモジュールがロードされていない。っていうかipv4向けのiptable関連モジュールが何一つロードされていない。一方、ipv6向けのiptable関連モジュールは正常にロードされている。こうなるとカーネルの設定が怪しくなってくる。

カーネルの設定を対話的に確認・修正するにはmake menuconfigする。iptablesの設定はTOP→Networking support→Networking options→Network packet filtering framework(Netfilter)以下にある。設定を見ると多くのチェックボックスが空欄になっている。いつの間にやらディレクトリ構造自体が大分変わっているので、oldconfigに失敗したようである。IP→IP connection tracking supportやIP→Full NAT、IP→MASQUERADEなど、NATに必要なモジュール一式にチェックを入れる。いやむしろ全部入れる。どうせモジュールなんだ。 Core Netfilter Configuration以下もスイッチを入れまくる。外れているとマッチングルール類(-p tcp -m lengthとか)が効かなくなる。

Core Netfilter Configuration以下にNetwork name service protocol supportなるスイッチがあった。名前から察するに起動時にコケていた理由はこれじゃないだろうか。

あらかたスイッチを入れた後でカーネルを再コンパイルして再起動する。やっぱりip_conntrack_netbios_nsは見つからないらしい。ハズレか。でもnatチェインは使えるようになったみたいで、これまで通りのファイアウォールが展開される。最後に、起動時に現在のiptablesが再構成されるようにする。

# iptables-save > /etc/sysconfig/iptables

再起動すると、ファイアウォールは正しく構成されているみたいだが、ポートフォワード機能が働いていない。起動時に復旧されるのはiptables(またはnetfilter)の設定だけである。フォワードを有効にするには/proc/sys/net/ipv4/ip_forwardに1を書き込まなくてはならない。/etc/rc.localを編集して起動時に再設定されるようにする。

/etc/rc.local
##最後に付け加える
echo 1 > /proc/sys/net/ipv4/ip_forward

最後の仕上げ。ip_conntrack_netbios_ns.koを探して/lib/modules以下をさまよってみる。kernel-2.6.18以下には確かに存在するが、kernel-2.6.29以下には存在しない。変わりにnf_conntrack_netbios_ns.koが置かれていた。ソースを読み比べると同じ処理をしているように見える。また、チェンジログを見ると、kernel 2.6.19あたりでnf_conntrack_netbios_nsが追加された旨が書いてある。置き換わったのだろうか? /etc/sysconfig/iptables-config内のIPTABLES_MODULESを書き換えてnf_conntrack_netbios_nsをロードするように設定したら、起動時にメッセージが出なくなった。


DHCPサーバは/etc/dhcpd.confを設定する。 ぶら下がっているマシン全てにアドホックなアドレスを与えるならこんな感じ

/etc/dhcpd.conf
default-lease-time 3600;
max-lease-time 7200;
log-facility local6;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.16.255;
option routers 192.168.16.1;
option domain-name-servers 192.168.16.1;
##domain-name-serversにカンマ区切りでプロバイダのdnsサーバを入れる
ddns-update-style ad-hoc;

subnet 192.168.16.0 netmask 255.255.255.0 {
        range 192.168.16.2 192.168.16.32;
}

Sambaサーバの設定は、/etc/samba/smb.confを編集する。さらにユーザも追加する。

# smbpasswd -a yuji
Sambaのパスワードをタイプする
posted by yuji_at_radiance at 20:50| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年05月22日

今日のRuby(クオート展開の話)

何かのツールのコマンドラインをrubyで生成する時、クオート記号が混じったコマンドを生成しようとすると大変である。今回はクオート記号の展開についてちょっと書いてみようと思う。

linuxでファイルを落とすときに使うコマンドラインツールでwgetというものがある。たとえばこんなふうに使う

httpに限らずftpでもダウンロードできる。便利だ。 http-getメソッド(普通にブラウザにURLを打ち込むこと)のほかにhttp-postメソッド(メールフォームと実行ボタンのこと)も使うことができる。

$ wget --post-data "radio1=on&radio2=off" http://hogehoge.com/sample.cgi

postメソッドの引数は--post-dataで渡す。引数はシングルクオートもしくはダブルクオートで囲む。(シェルではアンパサンドは「複数のコマンドを連続して実行する」という意味になるので、クオートしないと困ったことになる)

クオート記号を含んだコマンドラインを生成・実行するためには例えばこんな風に書く。

commandline = "echo 'hogehoge&hagehage'";
puts(commandline);
system(commandline);
##ruby出力: 'hogehoge&hagehage'
##echo出力: hogehoge&hagehage

外側のダブルクオートは文字列定数を作るための記号なので、コンパイル時(はrubyにはないけど・・・)に消える。内側のシングルクオートは、echoコマンドが実行されるときに消える。

では、echoコマンドで'hogehoge&hagehage'と出したいときは?答えは以下のとおり。

commandline = "echo \"'hogehoge&hagehage'\"";
puts(commandline);
system(commandline);
##ruby出力: "'hogehoge&hagehage'"
##echo出力: 'hogehoge&hagehage'

echoコマンドにわたった文字列からダブルクオートが消えて、シングルクオートが画面に現れる。 こっちは間違った例。隣り合うシングルクオート同士でペアを作ってしまう(?)ので、むき出しの文字列がシェルに渡ってしまう。

commandline = "echo 'hogehoge&hagehage'";
puts(commandline);
system(commandline);
##ruby出力: ''hogehoge&hagehage''
##echo出力: hogehoge
##          hagehageというコマンドは存在しません

バックスラッシュでエスケープすればいいじゃんと思うところだが、エスケープキャラクタはrubyとシェルで2度評価されることと、シェルで評価するときにはダブルクオートで囲まれた中のダブルクオート(要するに"\""のこと)しかエスケープされないこと、シェルにおいてバックスラッシュは「複数行にわたるコマンド」をあらわすことに注意しなければならない。

posted by yuji_at_radiance at 23:37| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年05月19日

foltia録画システムのセットアップ

テレビの録画を管理するのにfoltiaを使っている。夏場は特に放送時間が突然に前後するので、自動的に開始時刻を修正してくれるのはありがたい。 ここでは、HTML版のインストールガイドに書かれていない微妙なところを説明する。

SELinuxの誤爆

postgreSQLを設定する際に設定を間違えてしまった場合、乱暴なやり方だがデータディレクトリ/var/lib/pgsql/dataを消去すれば、真っ白な状態からやりなおすことができる。このときSELinuxをEnforceモードにしておくと、postgreサービスが立ち上がらなくなることがある。postgresql.confにアクセスできないと言われたらSELinuxが誤爆してる可能性が高い。一度Permissiveモードに変更して様子を見よう

文字コード

foltiaは扱う文字コードをEUC-JPに固定している。データベースもWebサービスもスクリプトも全部EUCである。CentOSを使う私としてはUTF-8で統一されたほうが便利なので、書き換えを試みた。
まず、スクリプトをUTF-8に書き換える。書き換えはnkfを使えば簡単だ。

$ nkf -Ew eucfile.txt > utf8file.txt

データベースもUTF-8化する。データベースをinitdbコマンドで初期化する際に文字コードをUTF-8に指定する。(CentOS/Fedoraなら何も指定しない場合はUTF-8になる)
データベースに書き込みを行うスクリプトperl/getxml2db.plは内部で文字コードの変換を行っている。Jcode::convert($str, 'euc')をJcode::convert($str, 'utf8')に置き換える。

PHPスクリプトもUTF-8化する。といってもmetaタグのlanguage指定をEUC-JPからUTF-8に変更するだけであるが。

apache/phpのコンパイル

外向きのWebサーバを運用しているのでfoltiaのWebサービスを設置できない・・・という場合は、foltia用にサーバを作ってしまえばいい。
apache(httpd)のビルド・インストール
例えば、/home/foltia/foltia_httpdにインストールする場合

[foltia]$ tar -zxvf httpd-2.2.11.tar.gz
[foltia]$ cd httpd-2.2.11
[foltia]$ ./configure --prefix=/home/foltia/foltia_httpd
[foltia]$ make && make install
phpのビルド・インストール
例えば、/home/foltia/foltia_phpにインストールする場合
[foltia]$ tar -zxvf php-5.2.9.tar.gz
[foltia]$ cd php-5.2.9
[foltia]$ ./configure --prefix=/home/foltia/foltia_php \
--with-apxs2=/home/foltia/foltia_httpd/bin/apxs \
--with-pgsql=/usr/bin
[foltia]$ make && make install
[foltia]$ vi /home/foltia/foltia_httpd/conf/httpd.conf

Ifmoduleセクション内に
AddType application/x-httpd-php .php .phtmlを追加
apacheの(正確には設定ツールの)置き場所とpgsqlのインストール場所を指定する必要がある。foltiaはphpファイルばかりで構成されている。必要に応じてDirectoryIndex index.php index.htmlも書き加えておくとよいかもしれない。

apacheの起動は/home/foltia/foltia_httpd/bin/apachectl startで行う。起動時に必ず起動するように/etc/init.dか/etc/rc.localに設定を作るのもよいだろう

トラブル

  • なぜかわからないが、一件も録画予約をしていない時に放映予定のページの表示がエラーメッセージだらけになる。in_arrayのメソッドに不正な値が入っているという。確かphpの配列を扱うメソッドが空の要素を認めないことが原因で出るメッセージ。アップデート前とapache/phpのバージョンは同じなのでpostgresqlの仕様変更のせい?
  • getxml2db.plを実行する際にDBD::Pg::db do failed: ERROR: invalid input syntax for integer: ""と表示される場合がある。これはpostgresqlの仕様変更によるものらしい。空文字とNULL要素を厳密に分けるようになったのだそうな。ちなみにこのエラーはDLしてきた番組表にfoltiaが知らないTVチャンネルが入っていた場合に起こる。局名→局ID(内部的なもの)の変換がうまくいかないため、SQL文に空文字が混じってしまう。

posted by yuji_at_radiance at 23:22| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。