2012年6月14日木曜日

ようやくマウスパッドのドライバを更新

先日のcal_days_in_montの対処として適当なコードで対処しました。(本来はきちんと対処する必要があるのですが目の前の対処だけで済ませました。

その後ふとしたきっかけでノートのマウスパッドのドライバがあるのではないかと感じたのでまた少し検索してみました。

ALPS DRIVERで検索してみるといくつか気になるページがありましたがそれらしいページがAcerのページにありました。

Acer TREIBER

Acer Aspire 5320 Notebook (TouchPad ALPS) Treiber
Version: 7.0.1101.14
Typ: Notebooktreiber
Datum: 2009-06-11 14:40:01
Hersteller Home/Support: Acer
http://www.treiberupdate.de/treiber-download/download-176893-treiber-Acer-Aspire5320Notebook(TouchPadALPS).html

ALPSのデバイスは基本的に実際に販売している側で公開されているのみでALPS側からはリリースされていないので面倒なデバイスですね。

現状一番困っているのはFirefoxが旧バージョンでのいい加減なドライバのサポートを行わない方針になってマウスパッド側でのスクロールが不自由になったのでずいぶん前から探していました。

以前に探したときは旧バージョンの表記ミスや広告表示のためのダミーページばかりでしたがようやくまともそうなページを開くことができました。

WindowsXP 32bit用のドライバもあったのでウィルスチェックを行ったあと入れてみました。

PCの再起動を行うとマウスパットが色々なマウスメッセージをハンドリングするためのダミーウィンドウ用のアプリやベースとなる設定プログラムが起動された。
zip圧縮形式のなかに未圧縮の実行ファイルが格納されていたためか再起動時に何度か起動確認のためのメッセージが表示された.

早速試してみるとようやくまともにFirefoxが動作するようになった。

2012年6月2日土曜日

cal_days_in_month はどこで定義されているのだろう?

<?php
$num 
= cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31echo "2003 年 8 月の日数は $num 日です";?>
 
Fatal error: Call to undefined function cal_days_in_month() in /home/htdocs/test_cal.php on line 2
 ちょっと使いたかったんですが、見当たらないようです。
どこで定義されているんでしょうかねぇ? 

2012年5月31日木曜日

ppBlog: 写真のアップロードから動かなくなる

写真のアップロードがとても重たい。
そもそもルータに対してやらせる処理ではないということは明らかですけど(笑)
最初は時間がかかりすぎて処理が止まって編集画面がうんともすんとも言わなくなり勘でタイムアウトかな?ということで/etc/php.ini のmax_execution_timeoutの設定値を30→300に変更しました。
アップロードは行われるようになったのですが、やはり時間が…。
luciの表示が行われなくなるのでターミナルからtopを叩いて直接見てみると。
Mem: 28296K used, 1132K free, 0K shrd, 128K buff, 2944K cached
CPU:  99% usr   0% sys   0% nic   0% idle   0% io   0% irq   0% sirq
Load average: 1.10 0.69 0.45 2/49 8774
  PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
 8774  1435 root     R    40808 139%  97% /usr/bin/php-cgi /www/blog/upload.php
 1443  1442 root     S     5096  17%   3% motion
 4017  2378 root     R     1380   5%   0% top
 1438     1 root     R     5096  17%   0% motion
 1444  1442 root     S     5096  17%   0% motion
 1442  1438 root     S     5096  17%   0% motion
 1476     1 root     S N   2632   9%   0% smbd -D
 1478     1 root     S     2132   7%   0% nmbd -D
 1487     1 nobody   S     1960   7%   0% proftpd: (accepting connections)
 1006     1 root     S     1516   5%   0% wpa_supplicant -B -P /var/run/wifi-wl
  387     1 root     S     1500   5%   0% syslogd -C128
 2378  2377 root     S     1392   5%   0% -ash
 1279     1 root     S     1388   5%   0% udhcpc -t 0 -i wlan0 -b -p /var/run/d
    1     0 root     S     1384   5%   0% init
  367     1 root     S     1384   5%   0% init
  529     1 root     S     1380   5%   0% udhcpc -t 0 -i eth1 -b -p /var/run/dh
 1498     1 root     S     1380   5%   0% watchdog -t 5 /dev/watchdog
  369   366 root     S     1376   5%   0% logger -s -p 6 -t sysinit
  366     1 root     S     1376   5%   0% /bin/sh /etc/init.d/rcS S boot
  389     1 root     S     1372   5%   0% klogd
こんな感じでメモリーも完全にスワップアウトしてシステムがロックしてる感じになってしまいます。
アップロードのオプションでリサイズ指定があるのがあるのに指定しても使用量は小さくなりません。
ソースを見ていませんが、一度jpegをメモリー展開してから処理に入っている感じがします。
とりあえず画像の扱い方を内部展開しないでファイルとしてそのまま処理できるように改良するのがよいのかも。

参考
PHPのタイムアウト対策 http://kikky.net/pc/php_timeout.html

2012年5月28日月曜日

D850GB ビープ音が鳴ってOSが起動しなくなった

ちょっとコンセントを抜いてしばらく経ってから差し込んでみると、本体からビープ音が鳴り続けて画面はBIOSの初期画面(この頃のものは起動時の画面が段々派手になっていった)が表示されたままHDDからの読み込みが行われなくなった。

最初はキーボードがおかしいだけかと思って抜いてみても効果なし。
あとはMBのバックアップバッテリが怪しい気がします。

インテルのページでは次のように書かれていました。
インテル® デスクトップ・ボード D850GB: ビープ音が鳴り続け、システムが起動しない (映像出力も行なわれない)
ビープ音が鳴り続け、システムが起動しない (映像出力も行なわれない) 場合、ビープ音が鳴る回数を確認することで、POST (Power On Self Test) 時に発生した問題が判ります。
ビープ音で表現されるエラー・コードは、下記のリストを参照してください。
なお、いくつかのエラー・コードは RAM に関連しています。
RAM に関するエラーが発生している場合、まずシステム・メモリと必要な全ての CRIMM* (Continuity RIMM*) モジュールが正しく装着されているか、また RIMM モジュールが インテル® デスクトップ・ボード D850GB のテスト済みメモリ・リストに挙げられているかを確認してください。

ビープ音によるエラー・コード

  1. リフレッシュに失敗しました
  2. パリティがリセットできません
  3. 64KB のメモリ領域を確保できません
  4. システム・タイマ・エラー
  5. 未使用
  6. 8042
  7. 割り込みエラー
  8. メモリのリード / ライト エラー
  9. 未使用
  10. レジスタ・テスト・エラー
  11. BIOS データが不正 (例: POST 用のモジュールが見つからない)
http://www.intel.com/jp/support/motherboards/desktop/d850gb/beep.htm
と、言うことらしいですがちょっとよくわかりません。

全般的なインテルのマザーボードではこのようになっているらしいです。
デスクトップ・ボード
BIOS のビープ音コード

このページは、システム起動時に ビープ音が鳴り、正常に起動完了しない場合のトラブルシューティングに使用してください。
現行デスクトップ・ボードのビープ音
ビープ音 / 点滅の状態 シーケンス / パターン 意味 システムが起動 / 終了できない場合のトラブルシューティング手順
ビープ音 1 回 長く継続するビープ音 外付けグラフィックス・カードに補助電源が接続されていない場合がある 取り付けられている外付けグラフィックス・カードの説明書で、補助電源の接続に関する情報を参照してください。
ビープ音 2 回 ビープ音、ビープ音 [中断]、ビープ音、ビープ音

その後に BIOS の起動が継続します。
ビデオが検出されません
  • アドイン・グラフィックス・カードを使用している場合、そのカードを差し直してください。
  • 互換性のあるプロセッサーが取り付けられていることを確認してください。
関連トピック:
起動中ビープ音が 2 回鳴り画面が表示されない
インテル® プロセッサーおよびボードの互換性ツール
ビープ音 3 回 ビープ音、ビープ音、ビープ音 [中断]

このパターンのビープ音は、システムをオフにするまで続きます。
メモリーエラー
  • メモリーを挿し直してください。
  • メモリーとソケットのコンタクト部分に汚れやごみがないか確認してください。
  • 複数のメモリーを取り付けている場合、一度取り外して確認してください。(システムによってはバンク 0 にメモリー・モジュールを取り付けなければならない可能性があります。)
  • RAM を使用している場合には、同じメーカーの同じ部品番号、転送速度の製品である事を確認してください。
  • 他の正常に動作しているシステムに、メモリーを使用して正常に動作するか確認してください。
高 / 低のビープ音 ビープ音のパターン:
高、低、高、低、高、低、高、低

高低それぞれのビープ音に対応してフロントパネル LED が合計 16 回点滅します。
CPU 温度エラー
  • プロセッサーのヒートシンク / ファンが正常に取り付けられていることを確認してください。
  • サーマル・インターフェイス・マテリアルが十分均一に塗布されていることを確認してください。
過去のデスクトップ・ボードのビープ音
ビープ音 / 点滅の状態 意味
長いビープ音 1 回、短いビープ音 2 回 ビデオ構成エラー (ビデオカードの故障またはビデオが付けられていない) または外付け ROM モジュールのチェックサムが正常に 0 にならない
1 更新エラー
2 パリティーがリセットできない
3 先頭 64K のメモリーエラー
4 タイマーが動作していない
5 プロセッサー・エラー (予約、未使用)
6 8042 GateA20 をトグルできない (メモリーエラーまたはメモリーがない)
7 例外割り込みエラー
8 ディスプレイ・メモリー R/W エラー
9 (予約、未使用)
10 CMOS シャットダウン登録テストエラー
11 BIOS 無効 (POST モジュールが見つからないなど)
http://www.intel.com/jp/support/motherboards/desktop/sb/cs-010249.htm?wapkw=%28%E3%83%93%E3%83%BC%E3%83%97%E9%9F%B3%29


2012年5月24日木曜日

そうかmountという手があったのか

今までも何度も困ったことが多かったのでproftpdならできるだろうと思ったらできませんでした。

ほんとに色々調べたのですが解決策が一向にうまく行かなく途方にくれていましたがようやく解決できそうです。
一体何が?という話ですが、具体的に
/
+--home/
|  +--siriuth/
|     +--dev/
|        +--openwrt/
|           +--backfire_10.03.1
+--srv/
   +--ftp/
      +--(ここにbackfire_10.03.1の内容を見せたい)
と、たったこれだけなのですが、シンボリックリンクを作成してもアクセスできないとか。
proftpdに接続後、chrootされてftpがrootとなっているのでそれより上位のディレクトリにはアクセスできない設定になっているので、当然といえば当然なのですができれば公開してほかのPCからいつでも参照できるようにしておきたいという欲求があります。

現状では単純にファイルコピーなどで適当に回避したりしていますがやはりスマートな対応じゃありません。

chrootで内容を見せたい階層群に設定すればいいのですが、複数に分散されたり開発環境と公開環境でディレクトリ構成が異なる場合などの対応がとれないわけで、ほんとに何とかならないかと感じていました。

いままでもwebサーバーでこのようなジレンマが多かったのですが小手先で切り抜けてたり割り切ってしまったりで逃げていましたが今回こそはと粘りに粘り調べた結果
「mount」すればいいんだよ と。

 なるほど!という感じでその言葉でストンと解決できました。
予め内容を見せたい部分にフォルダを作成(今回は/srv/ftp/backfire/10.03.1を作成)して
sudo mount -B /home/siriuth/dev/openwrt/backfire_10.03.1 /srv/ftp/backfire/10.03.1
再起動後にもmountさせるためには多分fstabとかに設定しなければならないとは思いますが、大筋でこれで完了です。