読者です 読者をやめる 読者になる 読者になる

xckb的雑記帳

15年ほどWeb日記をつけ続けていたのですが2012年で一旦休止、1年半ほど休んで新天地でぼちぼちのんびりまた始めてみることにしました。

El Capitan (MacOSX 10.11)におけるUSBシリアルケーブルの利用

Mac 技術

MacのOSをEl Capitanに上げた途端にUSBシリアルケーブルが使えなくなった、という人が多数いらっしゃるようなのですが、それに関して少し試してみたのでメモを残しておきます(USBシリアルって何、というカタギの方には全く縁のない話ですみません…)。

どうもその理由には2つあるようです。

  1. El Capitanからコード署名がされていないデバイスドライバが利用できなくなった
  2. Info.plistを変更して本来サポートされていないデバイスをチップメーカー製のドライバなどで利用しようとした場合、Info.plistの改変によりコード署名が無効となってしまう

ということで、手元にあるUSBシリアルケーブルの一つ、RATOCのREX-USB60Fは、以前コード署名のないドライバを使っていたのでアウト、IOデータのUSB-RSAQ5は、以前コード署名のないProlific社製ドライバでInfo.plistを変更していたのでダブルでアウトという状態でした。

f:id:xoc:20151109004828j:plain

本当は身の回りにあるUSBシリアルケーブルで一番多いのがUSB-RSAQ5なので、これが苦労なく使えると嬉しいのですが、そもそも元々のIOデータによるMacのサポートがお寒い限りで、IOデータのサイトからダウンロードできるドライバがなんと2007年製で、確かLionあたりから使えくなって久しい、という代物です(El Capitan以前にこの状況でMacサポートを名乗ってはいけないと思う)。

チップメーカーであるProlificのサイトからは新しいコード署名されたドライバがダウンロードできますが、このドライバにはUSB-RSAQ5のデバイス情報が含まれておらず、また先述のようにInfo.plistにパッチを当ててしまうとコード署名が無効となってしまいます(試してみましたが、/var/log/system.logに"ERROR: invalid signature for com.prolific.driver.PL2303, will not load"ってメッセージが出て使えませんでした)。

そこでダメ元で後継機種のUSB-RSAQ6のドライバをダウンロードしてきたのですが、こちらもコード署名のないもので利用できません。ところがこのドライバ、どうもProlificの出しているドライバの昔のバージョンそのもののようで、Info.plistもオリジナルと同じもののようでした。なので、もしかするとUSB-RSAQ6はProlificの最新ドライバを入れれば動くかもしれません(情報求む)。

REX-USB60Fは、チップメーカーのFTDI chipのページから、「MacOS 10.9 and above」のドライバをダウンロードすることで、コード署名付きのドライバを入手可能です。これをインストールしたところ、問題なく利用できました。

ラトックシステム USBシリアルコンバータ REX-USB60F

ラトックシステム USBシリアルコンバータ REX-USB60F

AmazonをProlificで検索しつつ、つらつらと眺めていて発見したのが、「Plugable USB‐9ピンRS232シリアルアダプター (Prolific社製 PL2303HX Rev Dチップセット採用)」というブツです。Plugable社のサイトを見ると、El Capitan用ドライバとかちゃんと置いてあるし、爆安ではないけれどもREX-USB60FやUSB-RSAQ6よりはだいぶ安いということで、試しにポチってみました。

で、即日届いたこいつをUSBポートに挿してみたのですが、Plugable社のドライバを入れずとも、Prolificのドライバそのもので問題なく動作しました。

ちなみに、署名の検査をスキップするっぽい対策を紹介したサイトもあるのですが、署名済みのデバイスドライバのみを許可するというのはそれなりに妥当なセキュリティ対策であるように思うため、あまり積極的にお勧めしたくはありません(しかも、多分これ実行すると、ドライバ署名だけじゃなくてrootlessのセキュリティシステム全部止まりそうだし)。どうしてもUSB-RSAQ5等を使わなくてはならないなどの理由があるならば仕方がないと思いますが、やはり上で紹介したPlugableのケーブルを買うなどして解決したほうがよいかと思います。

というわけで、現状の結論をまとめると、

  • IOデータのUSB-RSAQ5はIOデータが対応してくれない限り望み薄だが、IOデータのサポート状況がそもそも絶望的なので無理そう
  • 同じくIOデータのUSB-RSAQ6はもしかしたらProlific社の最新ドライバでいけるかもしれない
  • RATOCのREX-USB60FはFTDI chip社の最新ドライバでいける
  • Plugableのやつは何の問題もなく使えてそこそこ安くていいかも
  • 同様にProlificのドライバでInfo.plistを書き変えずに使えていたものは、最新のドライバに更新すれば使えると思うので、安いものの情報があると嬉しい(情報求む)
  • コード署名チェックの抑制による対処はあまりお勧めしない

のような感じですね。参考になれば。



しかし……まあそもそも、なんでシリアルポートなんて前世紀のレガシーすぎるものに未だに縛られていなければならないのかと。いまどき数千円前半程度のコストでシリアル→Telnet変換でDHCP吐いてくれるメンテナンス用Gigabit Ethernetポートとかできるだろうに、どうして業界標準にならないんだろう…とか思うんだけど、よく考えるとブートメッセージからしっかり読みたいのであればその部分の電源スイッチを別にしなければならないとか、色々面倒で結局シリアルポートに落ち着くもの…なのかな?

追加情報

その後、幾つかの情報がありましたので追記します。

有償のドライバでUSB-RSAQ5が使えるそうです。

こちらの製品もFTDI chipのドライバで動作するそうです。RJ45で直接出てくるのはいいですね。

【CISCO互換ケーブル】FTDI chipset USB RJ45 コンソールケーブル

【CISCO互換ケーブル】FTDI chipset USB RJ45 コンソールケーブル

(2015年12月22日 追記)