理想未来ってなんやねん

娘可愛い。お父さん頑張る。

Mountain Lionでシリアルケーブルを使う

Mountain LionでUSBシリアル変換ケーブル(I/O DATA USB-RSAQ5)を使った際のメモ。

前書き

Snow Leopardより一部のMacで64bitカーネル起動となり、Mountain Lionより32bitカーネルモードが廃止されて完全な64bit OSとなりました。
64bit OSでデバイスを使うには64bit用のドライバーが用意されている必要があります。


特にMac用の場合顕著となりますが、古いデバイスでは余程需要がない限り新OS用のドライバーが供給されないことも多々あります。
USBシリアル変換ケーブルに関してもニーズが少ないのか、対応が遅れているようです。


これもMacを使う際の宿命といえますが、シリアルケーブルのような旧世代の化石は今日ではエンジニアしか使わないものだと思いますので、解決する方法さえあれば別に問題ないとも言えるでしょう。


さて販売元のメーカーがドライバーの供給を辞めた場合でも、チップメーカーがドライバーを提供していることがあります。
USBシリアル変換ケーブルも同様で、I/O DATA社USB-RSAQ5を含む、いくつかのUSBシリアル変換ケーブルではProlific 社の PL2303 というチップが使われています。

チップメーカーがドライバーを提供している場合は、定義ファイルを書き換えるだけで使用できるようになることがあります。
USB-RSAQ5も下記の方法で問題なくしようできるようになりました。

手順

1. 下記Prolific 社のサイトより、『Mac OS X Universal Binary Driver v1.4.0 (DMG file format)』をダウンロードする。
本社(台湾)のサイトではアカウント登録が必要になるため、USAのサイトからダウンロードする。
PL2303HX Rev. D USB to Serial/UART Bridge Controller (Internal Crystal) | Prolific USA | IC Design & Manufacturing


2. ダウンロードした『md_PL2303_MacOSX10.6_dmg_v1.4.0.zip』を解凍し、PL2303_1.4.0.dmgをマウントし、中にあるインストーラ『PL2303_1.4.0.pkg』を実行してドライバーをインストールする。

3. /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plistを書き換えて、USB-RSAQ5用の定義を追加する。
root権限での書き換えが必要。

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

下記の定義を43行目のと、44行目のの間に記載。

                <key>04BB_0A0E</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>2574</integer>
                        <key>idVendor</key>
                        <integer>1211</integer>
                </dict>

4. ドライバーを再ロードする。

$ sudo touch /System/Library/Extensions
$ sudo kextunload /System/Library/Extensions/ProlificUsbSerial.kext
$ sudo kextload /System/Library/Extensions/ProlificUsbSerial.kext
$ sudo kextcache -system-cache

5. USB-RSAQ5を繋いで認識されているか確認する。

$ ls /dev/{tty,cu}.u*
/dev/cu.usbserial  /dev/tty.usbserial


以上、ご参考になれば幸いです。