27
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OSX 10.11 El Capitan で boot-args "kext-dev-mode" は廃止されました

Last updated at Posted at 2014-12-10

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を起動するようにする。

$ sudo touch /System/Library/Extensions
$ sudo nvram boot-args="debug=0x146 kext-dev-mode=1"
$ sudo reboot

使い方

  • 標準のターミナル、もしくはターミナルアプリ 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キー で切断される)
27
26
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?