corega の USB シリアルケーブルを Mac OS X でも使えるようにする - Lion版
corega の USB シリアルケーブルを Mac OS X でも使えるようにする | Weboo! Returns. さんの記事を参考に、
同じくhttp://www.amazon.co.jp/dp/B000E6UWH6をiMacに繋げようとしてみましたが…
$ sudo touch /System/Library/Extensions # => 増えない $ sudo kextcache -k /System/Library/Extensions # => -k オプションはLionでは使えない
以下のようにすると
$ sudo kextunload -bundle-id com.prolific.driver.PL2303 $ sudo kextload -bundle-id com.prolific.driver.PL2303 $ ls /dev/tty.usb* /dev/tty.usbserial
認識しました。
参考にしたブログ記事にあるXMLですが
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> : <key>IOKitPersonalities</key> <dict> <key>067B_2303</key> <dict> : (元々あるエントリ) </dict> <!-- corega CG-USBRS232R --> <key>07aa_002a</key> <dict> <key>CFBundleIdentifier</key> <string>com.prolific.driver.PL2303</string> <key>IOClass</key> <string>com_prolific_driver_PL2303</string> <key>IOProviderClass</key> <string>IOUSBInterface</string> <key>bConfigurationValue</key> <integer>1</integer> <key>bInterfaceNumber</key> <integer>0</integer> <key>idProduct</key> <integer>42</integer> <key>idVendor</key> <integer>1962</integer> </dict> :
この "07aa_002a" は
システム情報 - USB - ... - USB-Serial Controller D の
- 0x002a : 製品ID
- 0x07aa : 製造元ID
を連結したものです。
pkg-configメモ
これのために MacPorts が要る・・・のかな? 検証できてません。
$ pkg-config --cflags --libs opencv -I/usr/local/include/opencv -I/usr/local/include \ -L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui \ -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d \ -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
動作確認
動作確認コード。
#include <cv.h> #include <highgui.h> using namespace cv; int main(int argc, char* argv[]) { VideoCapture cap(0); if(!cap.isOpened()) { return -1; } namedWindow("sample", CV_WINDOW_AUTOSIZE); for(;;) { Mat frame; cap >> frame; imshow("sample", frame); if(waitKey(30)>=0) break; } return 0; }
そしてコンパイルと実行。
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ $ g++ -O3 -Wall -o sample sample.cpp `pkg-config --cflags --libs opencv` $ ./sample
動きました\(゚∀゚)/
LionにopenCVをいれてみる
id:tamakiii:20091125 さんの記事を参考にしながらインストールしようとしたのですが、多少状況が違うようなのでメモ。
一番の違いは「MacPorts が不要っぽい」という点でしょうか。
- /usr/bin/xcodebuild のパスが合わないので修正
- Xcode4.3 から Xcode の場所が変わったのでそれに対応。
$ sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/
$ tar jxf OpenCV-2.3.1a.tar.bz2 $ mkdir OpenCV_build $ cd OpenCV_build
- cmake で設定
$ cmake -D CMAKE_CXX_COMPILER:FILE_PATH=/usr/bin/g++ -D OPENCV_BUILD_3RDPARTY_LIBS:BOOL=YES ../OpenCV-2.3.1
- make && make install
$ make $ sudo make install
D25HW用大容量バッテリをHW-01Cで使う
e-mobile Pocket WiFi D25HW用の大容量バッテリ(バスタブとか呼ばれているアレ)をDoCoMo HW-01C で使えるかについて。
結論から書くと、使えます。
詳細は以下のとおりです。
- 電池の端子の位置などは全く同一でした。
- D25HWは白色、HW-01Cは黒色なので、バスタブケースを付けるとパンダになります。
- microSDカードスロット位置/サイズは変わりません。
- ストラップホールはそのまま使えます。
- USB端子がminiB(D254HW)からmicroB(HW-01C)になるため、バスタブケースのUSB端子穴が微妙にずれています。ギリギリ挿入できますが気になる人は気になるかも。
- 本体右側のボタンの数が違います(D25HW=3個、HW-01C=1個)。が、D25HWのケースの穴の方が大きいため干渉等はありません。
最後の2件は、「D25HW用のバスタブケースはHW-01Cに使えるが、HW-01C用のバスタブケースはD25HWには使えない」ことを意味します。お気を付けください。削れば良いんですけどね。
Twitterアプリをかいてみる
かいてるなう。
アプリ認証のあたりから試してみたいんだけど、アプリケーションのウェブサイトURLが必要なので、ここにしてみる。
Ubuntu 10.10/i686 + VMWareFusion 3.1.1 でモジュールビルド失敗
vsock-only.cがダメでした。先のパッチとも微妙に違うので添付しておきます。
diff -Naur vsock-only.org//linux/af_vsock.c vsock-only//linux/af_vsock.c --- vsock-only.org//linux/af_vsock.c 2010-08-02 01:22:17.000000000 +0900 +++ vsock-only//linux/af_vsock.c 2010-12-01 17:04:10.626652052 +0900 @@ -3221,7 +3221,7 @@ * a notification of an error. */ timeout = sock_sndtimeo(sk, flags & O_NONBLOCK); - compat_init_prepare_to_wait(sk->compat_sk_sleep, &wait, TASK_INTERRUPTIBLE); + compat_init_prepare_to_wait(compat_sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); while (sk->compat_sk_state != SS_CONNECTED && sk->compat_sk_err == 0) { if (timeout == 0) { @@ -3244,7 +3244,7 @@ goto outWaitError; } - compat_cont_prepare_to_wait(sk->compat_sk_sleep, &wait, TASK_INTERRUPTIBLE); + compat_cont_prepare_to_wait(compat_sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); } if (sk->compat_sk_err) { @@ -3256,7 +3256,7 @@ } outWait: - compat_finish_wait(sk->compat_sk_sleep, &wait, TASK_RUNNING); + compat_finish_wait(compat_sk_sleep(sk), &wait, TASK_RUNNING); out: release_sock(sk); return err; @@ -3316,7 +3316,7 @@ * upon connection establishment. */ timeout = sock_sndtimeo(listener, flags & O_NONBLOCK); - compat_init_prepare_to_wait(listener->compat_sk_sleep, &wait, TASK_INTERRUPTIBLE); + compat_init_prepare_to_wait(compat_sk_sleep(listener), &wait, TASK_INTERRUPTIBLE); while ((connected = VSockVmciDequeueAccept(listener)) == NULL && listener->compat_sk_err == 0) { @@ -3332,7 +3332,7 @@ goto outWait; } - compat_cont_prepare_to_wait(listener->compat_sk_sleep, &wait, TASK_INTERRUPTIBLE); + compat_cont_prepare_to_wait(compat_sk_sleep(listener), &wait, TASK_INTERRUPTIBLE); } if (listener->compat_sk_err) { @@ -3366,7 +3366,7 @@ } outWait: - compat_finish_wait(listener->compat_sk_sleep, &wait, TASK_RUNNING); + compat_finish_wait(compat_sk_sleep(listener), &wait, TASK_RUNNING); out: release_sock(listener); return err; @@ -3464,7 +3464,7 @@ sk = sock->sk; vsk = vsock_sk(sk); - poll_wait(file, sk->compat_sk_sleep, wait); + poll_wait(file, compat_sk_sleep(sk), wait); mask = 0; if (sk->compat_sk_err) { @@ -4104,7 +4104,7 @@ goto out; } - compat_init_prepare_to_wait(sk->compat_sk_sleep, &wait, TASK_INTERRUPTIBLE); + compat_init_prepare_to_wait(compat_sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); while (totalWritten < len) { Bool sentWrote; @@ -4141,7 +4141,7 @@ goto outWait; } - compat_cont_prepare_to_wait(sk->compat_sk_sleep, + compat_cont_prepare_to_wait(compat_sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); } @@ -4194,7 +4194,7 @@ if (totalWritten > 0) { err = totalWritten; } - compat_finish_wait(sk->compat_sk_sleep, &wait, TASK_RUNNING); + compat_finish_wait(compat_sk_sleep(sk), &wait, TASK_RUNNING); out: release_sock(sk); return err; @@ -4428,7 +4428,7 @@ goto out; } - compat_init_prepare_to_wait(sk->compat_sk_sleep, &wait, TASK_INTERRUPTIBLE); + compat_init_prepare_to_wait(compat_sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); while ((ready = VSockVmciStreamHasData(vsk)) < target && sk->compat_sk_err == 0 && @@ -4468,7 +4468,7 @@ goto outWait; } - compat_cont_prepare_to_wait(sk->compat_sk_sleep, &wait, TASK_INTERRUPTIBLE); + compat_cont_prepare_to_wait(compat_sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); } if (sk->compat_sk_err) { @@ -4534,7 +4534,7 @@ err = copied; outWait: - compat_finish_wait(sk->compat_sk_sleep, &wait, TASK_RUNNING); + compat_finish_wait(compat_sk_sleep(sk), &wait, TASK_RUNNING); out: release_sock(sk); return err;