1. waiha8

    No comment

    waiha8
Changes in tags
Changes in body
Source | HTML | Preview

El Capitan で CG-USBRS232R を使うのはあきらめましょう

  • System Integrity Protection Guide -- Kernel Extensions
    • El Capitan で ベンダーシグネチャ無しのkextを実行するには Recovery OS で起動して csrutil コマンドで切り換える必要があります。
      1. Recovery OS を起動する
      2. csrutil enable --without kext
      3. reboot

正規のドライバで動く USBシリアル変換ケーブルを使って

Yosemite で CG-USBRS232R を使うには

USBシリアル変換ケーブルは、Windows OS であれば挿せば勝手にドライバーをインストールしてくれるか、販売メーカーサイトでドライバをダウンロードすることで使うことができる。
しかし、Mac OSX 用のドライバーが用意されているケースは少なく、ほぼ皆無と言ってよい。
ところが、変換チップを作っている海外メーカーのサイトでドライバーが配布されていたりするので、チップメーカーからOSX用のドライバーを探し出すことが出来たりする。

corega CG-USBRS232R ケーブル
購入場所
ドライバー入手
  • Prolific から zip ファイルをダウンロード http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41

    • ZIPを展開して pkg ファイルを起動して自動でインストール/再起動
    • カーネル拡張設定ファイルの編集
    • コレガ製ケーブルの VenderID, ProductID が入っていないので追記します。
    • sudo vi /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist
    • このファイルを編集するときには root 権限が必要なので、sudoコマンドで vi を実行して編集するのが良いでしょう。
  • --- Info.plist.origin.txt   2013-10-30 12:00:36.000000000 +0900
    +++ Info.plist.ProlificUsbSerial.kext.txt   2013-10-29 19:54:14.000000000 +0900
    @@ -74,6 +74,23 @@
            <key>idVendor</key>
            <integer>1659</integer>
        </dict>
    +           <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>
    </dict>
    <key>OSBundleLibraries</key>
    <dict>
    </code></pre>
    
  • idVender と idProduct は

    • 「このMacについて」=> 「システム・レポート」からUSBの項を選んで、対象のUSBデバイスを選択すると、発見出来ます。
      • 製品ID 0x002a = 42
      • 製造元ID 0x07aa = 1962
    • スクリーンショット 2015-06-06 17.13.53.png

カーネル拡張モジュールの再構築

カーネル拡張キャッシュの再構築が必要なので、kextディレクトリを更新して再起動させるとモジュールを読み直してくれる。
ただし、kext内の設定情報を書き換えてしまっているので、Yosemiteが管理しているベンダーシグネチャと差異があるため、モジュールのロードが出来なくなってしまう。
シグネチャを作り直せれば良いのだが、それも出来ないので、おすすめしないがカーネル起動時のオプションでシグネチャチェックを無視する開発用モードでOSを起動するようにする。

使い方

  • 標準のターミナル、もしくはターミナルアプリ iTerm2 などから screen コマンドでシリアル経由でのターミナル接続が可能になります。
    • screen /dev/tty.usbserial 9600 << 数字の部分は通信速度なので接続機器によって異なります。
    • Catalyst 2960 の例
$ screen /dev/tty.usbserial 9600
cat-2960>sh run
              ^
% Invalid input detected at '^' marker.

cat-2960>en
cat-2960#sh run
Building configuration...

Current configuration : 6015 bytes
!
version 12.2
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname cat-2960

Ctrl-A, Ctrl-\ (接続を終了するかどうか y/n で尋ねられるので yキー で切断される)