Mac OS X 10.7 LionでUSBシリアル接続

コレガのUSBシリアル変換ケーブルCG-USBRS232Rを使用してコンソール接続しています。
corega CG-USBRS232R ケーブル

corega CG-USBRS232R ケーブル

corega CG-USBRS232R ケーブル

コレガからはWindows用ドライバしか提供されていません。
私は、OS X 10.6 Snow Leopardでは、直接FusionのWindowsイメージにUSB接続し、Windowsからコンソール接続していました。
しかしOS X 10.7 Lionにアップグレードしたところ、FusionでUSBを認識してはいるのですが、enableにできなくなりました。

そこでこの機会に、直接MacからもcoregaのCG-USBRS232Rを使用できるよう、
ProlificのMac OS Xドライバをインストールし、
Kernel EXTension(kext)をコレガのものを認識するよう書き換えました。
以下そのやり方のメモ。

1)ProlificからMac OS Xドライバをダウンロード,解凍してdmgファイルをインストール

md_PL2303_MacOSX10.6_dmg_v1.4.0.zip 2011/5/13 1.4.0 1438 KB
PL-2303 (H, HX, X chip version) Mac OS X Universal Binary Driver v1.4.0 (DMG file format), Prolific Edition
For Mac OS X 10.7 Lion and 10.6 Snow Leopard (32-bit and 64-bit kernel)
Added Driver Installation Manual

すると、/System/Library/Extensions/に"ProlificUsbSerial.kext"フォルダができます。

2)"ProlificUsbSerial.kext"のInfo.plistをコレガのものを認識するよう書き換える
Prolificから落として来たkextファイルには、コレガ製ドライバの情報が含まれていません。
Info.plistに手動でドライバの情報を追加します。
まずVIなどで/System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plistを開きます。

$ sudo vi /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist

Info.plistの中段あたり、もともと記載されている067B_2303のインデントと並列に、
以下の内容を追記し、保存します。

07aa_002a

CFBundleIdentifier
com.prolific.driver.PL2303
IOClass
com_prolific_driver_PL2303
IOProviderClass
IOUSBInterface
bConfigurationValue
1
bInterfaceNumber
0
idProduct
42
idVendor
1962

3)kextファイルのキャッシュを削除

$ sudo touch /System/Library/Extensions

または

$ kextcache -system-caches

でキャッシュを削除します。

4)MacにUSBシリアルケーブルをさす
ここでケーブルをさすと、/devにtty.usbserialが出来ます。
確認コマンド

$ ls /dev

5)Macからコンソール接続
以上により、Macからscreenコマンドでシリアルコンソール接続できるようになりました。

$ screen /dev/tty.usbserial 9600

6)Mac再起動後、VMWare FusionWindowsマシンからもコンソール接続可能に。


補足)コレガのCG-USBRS232R以外のUSBシリアル変換ケーブルを使用している場合
ProlificのPL-2303のものであれば同じ要領でMac OS X Lionで使用できるはずです。
ただし前述の2)でInfo.plistに追記した内容をお持ちのドライバのものに変更する必要があります。

お持ちのドライバ用に書き換える値は、MacにUSBシリアルケーブルを接続して
Macのアプリケーション>ユーティリティ>システム情報 から確認できます。
ハードウェア→USB→"USB-Serial Controller"または"USB-Serial Controller D"を選択します。
コレガCG-USBRS232Rの場合は、このような情報になっていました。

USB-Serial Controller D:
製品 ID:0x002a
製造元 ID:0x07aa (corega K.K.)
バージョン:3.00
速度:最高 12 Mb/秒
製造元:Prolific Technology Inc.
場所 ID:0x04100000 / 2
利用可能な電流(mA):500
必要な電流(mA):100

このなかの「製品ID」「製造元ID」の情報をもとに、
前述の2)でInfo.plistに追記する内容のうち以下3点を書き換えます。

  • XXX_XXXの値を"製造元ID_製品ID"へ(16進数のまま)(コレガの場合、07aa_002a)
  • idProductXXの値を10進数に変換した製品IDへ(コレガの場合、0x002a=42)
  • idVendorXXの値を10進数に変換した製造元IDへ(コレガの場合、0x07aa=1962)

後は前述のとおりです。


参考:
PL2303 Serial USB on OSX Lion
http://weboo-returns.com/blog/corega-usb-serial-on-mac-os-x/