LANDISK (kernel 2.4) で QcamPro 4000 を動かす

[戻る]

ひょんなことから Logicool の QCamPro 4000 というカメラを手にいれました, 早速 LANDISK (HDL-160U) に繋げて遊んでみようと思いました,

LANDISK のカーネルは 2.4.21 ですし CPU は SH4 ですので普通とはちょっと違います, でも LANDISK に USB カメラを繋げるノウハウは この辺に書いてますし, QcamPro4000 を Linux に繋げるノウハウは この辺とかに書いてます, まとめると,

  1. カーネルコンパイル時に "Video For Linux" をモジュール化するようにする,
  2. こちらから, pwc-9.0.2 と pwcx-9.0 を入手し, pwc 及び pwcx のモジュール化もするようにする,
  3. videodev.o, pwc.o, pwcx.o を順にカーネルにロードする,
といいようです, pwc は 2.4.25 用のパッチで LANDISK の 2.4.21 より新しいですが, まぁなんとかなるでしょう,

という訳で上記手順でやってみたのですが, videodev 及び pwc のモジュールロード までは成功し,

vidcat -f jpeg -o aaa.jpeg -s 176x144 -p y
とかで小さいですが画像取得は成功しました, しかし, もっと大きな画像をと pwcx をロードしてみると pwcx_init_decompress_Nala などの関数が無いと怒られます, どうもソース開示をしてない部分とのリンクが上手くいってないようです,

いろいろ調べたのですが, 対策は分かりませんでしたが, こちらの方に pwcx を使わなくても 640x480 の画像が取れる pwc (pwc-10.0.7) があることが分かりました, 乗り換えることにします,

しかし, pwc-10.0.7 は kernel2.6 用で 2.4 ではテストしてないとのこと, 案の定 LANDISK の 2.4.21 ではコンパイルできませんでした, でも幸い pwc-9.0.2 には 2.6 用のコードと 2.4 用のコードがあったので, 2.4 と 2.6 ではどのように変わったのかを調べて修正し, コンパイルが通る ようにしてみた所, 一見

vidcat -f jpeg -o aaa.jpeg -s 640x480 -p y
というコマンドで動くようになりました,

まぁ適当にやったんで動作保障はしませんが, 一応 10.0.7 に対するパッチを こちら に置いておきます,

また, 作るのが結構大変なんで LANDISK 用のコンパイル済オブジェクトも こちらに置いておきます, 展開して入手後

  1. /dev で 'mknod video0 c 81 0' と実行
  2. さらに 'ln -s video0 video' と実行
  3. 'chmod 666 video0' と実行
  4. 展開して得た videodev.o を /lib/modules/2.4.21/kernel/drivers/media/video にコピー (ディレクトリが無ければ掘る)
  5. 上記ディレクトリで '/sbin/insmod videodev.o' と実行
  6. さらに pwc.o を /lib/modules/2.4.21/kernel/drivers/usb にコピー
  7. 上記ディレクトリで '/sbin/insmod pwc.o' と実行
としてください, テスト用として vidcat も入れてますので, カメラを繋いだ後撮れるかどうか試してみるといいでしょう,

なお, 私の環境ではカメラを繋いだことにより USB に繋いだ外付け HDD が見えなくなったということが起きました, 普段は繋いでないので詳細は不明ですが, もしかしてどこかで何か悪さしているのかもしれません,


2005.4