macOS SierraでUSB-RSAQ2とUSB-RSAQ5を使う

概要

USB-RSAQ2とUSB-RSAQ5のOSXドライバは10.4くらいまでしか提供されていない。 macOS Sierra (10.12)上で使うためにProlificのドライバーを導入した上でUSB-RSAQ2とUSB-RSAQ5の情報を追加する。

手順

Prolific PL2303ドライバをインストールする

ここ からドライバをダウンロードしてインストールする。 現時点では10.13用まで提供されている。 (ただし、10.13に導入する際は注意書きが付いている)

導入後は再起動を求められる。 このときに Command+R を押しながら起動してリカバリモードで起動する。

kextの署名チェックを無効化する

自己責任で実施のこと。 しかし、これをやらないとProlificのドライバーは導入できない。と思う。

リカバリモードで起動してからターミナルを開き、以下のコマンドを実行する。

$ csrutil enable --without kext

実行したら再起動する。 再起動後にcsrutilで状態を確認するとこんな感じに Kext Signingdisabled になるはず。

$ csrutil status
System Integrity Protection status: enabled (Custom Configuration).

Configuration:
        Apple Internal: disabled
        Kext Signing: disabled
        Filesystem Protections: enabled
        Debugging Restrictions: enabled
        DTrace Restrictions: enabled
        NVRAM Protections: enabled
        BaseSystem Verification: enabled

This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.

なお、 Apple Internaldisabled と表示されていても有効らしい。 なぜかは分からんので気にしたら負け。

USB-RSAQ2とUSB-RSAQ5の情報を調べる

MacにUSB-RSAQ2あるいはUSB-RSAQ5を接続する。 System Informationを起動し(Optionを押しながらメニューバー左のりんごマークを押すなどすれば)、USBの項目でProduct IDとVendor IDをメモる。

自分が確認したものは以下の通り。

USB-RSAQ2
  Product ID: 0x04bb
  Vendor ID: 0x067b

USB-RSAQ5
  Product ID: 0x0a0e
  Vendor ID: 0x04bb

16進数はbcコマンドや電卓で10進数を確認しておく。

$ echo "ibase=16; 4BB; 67B; A0E; 4BB" | bc
1211
1659
2574
1211

USB-RSAQ2とUSB-RSAQ5の情報を追加する

/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist を↓のような感じで変更する。 <key> のところは16進数のProduct IDとVendor IDを _ でつなげたものとなっているようなので、該当のものがないことを検索して確認してから追加すると良い。 idProductidVendor は先ほど調べた10進数を書く。

--- /Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist.orig      2018-06-28 08:30:29.000000000 +0900
+++ /Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist   2018-06-28 08:36:18.000000000 +0900
@@ -108,6 +108,40 @@
                     <key>idVendor</key>
                     <integer>1659</integer>
             </dict>
+            <key>067B_04BB</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>1211</integer>
+                    <key>idVendor</key>
+                    <integer>1659</integer>
+            </dict>
+            <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>
     </dict>
     <key>OSBundleLibraries</key>
     <dict>

kextload!

あとは kextload すれば幸せになれる。

$ sudo kextload /Library/Extensions/ProlificUsbSerial.kext

USB-RSAQ2などをMacにつなぐと /dev/cu.usbserial が現れる。 2つ同時につなぐと /dev/cu.usbserial6 というのも現れた。 数字がどうやって決まるのかは良く分かっていない。

$ ls /dev/cu.usb*
/dev/cu.usbserial       /dev/cu.usbserial6