Mac Book ProでUSBシリアルを使ってみる(2020年版)
内容
4.1 製品IDと製造元IDの取得
4.2 ドライバのインストール
5.まとめ
時は巡って2020年
以前、Mac Book Proで普通に接続して認識しないシリアルケーブルをどうやって認識させるかという内容でシリアルケーブルを使う記事を書いたことがある。
それから時は巡って2020年、Mac Bookも進化してインタフェースがUSBから電源も含めてUSB Type-C兼用のThunderbolt 3のみになり、旧来のUSBシリアルは使えるのか?ということで試してみた。
USBシリアルとは?
「USBシリアルって何?」という方がいるかと思うので簡単に説明すると。
通常、業務用のネットワーク機器(ルーターやスイッチ)には大抵シリアルポートというのがついており、PCとシリアルポートをケーブルでつなぐことによりPCから直接アクセスしてネットワーク機器の設定や操作を行うことができる。
最近はLANケーブルで接続してWebやSSHで接続して使うことが増えたが、何かの拍子でLAN経由で接続できなくなってしまった場合に、PCとの接続して設定やトラブルシューティングを行う手段として残っていることが多い。
PC側の接続については、昔はPC自体にシリアルポートが付いていたのだが、最近はシリアルポートの無いPCがほとんどとなってしまい、そのようなPCでネットワーク機器の設定や操作を行うためにUSBポートに接続してシリアルポートに対応した機器に接続して使うのがUSBシリアルである。
ただ、USBに接続してもその機器を認識しないという場合もあり、購入する際に注意が必要になる機器でもある。
新しくMac Book Pro購入後、業務用のネットワーク機器を使うような機会はほぼ無くなっていたのだが、自宅のネットワーク再構築でYamahaのRTX1200を購入、この機種は基本WebやSSHで設定が可能だが、シリアルポートもついており、そのため長らく使っていなかったUSBシリアルが今も使えるのか試してみることにした。
Mac対応のUSBシリアル
前回の記事を書いた後、Mac対応のUSBシリアルケーブルを購入しており、こちらのケーブルはMac対応ということで、何もしなくとも以前のMac Book Proで認識はできていたため、まずはこのケーブルから試すことに。
USBコネクタがType-Aのため、Type-Cに対応したハブ経由でMac Book Proに接続
/dev/ディレクトリでデバイスが認識されているか確認したところUSBシリアルデバイスとして認識していることが確認できた。
$ ls /dev/*usb* /dev/cu.usbserial /dev/tty.usbserial
ただ、このUSBシリアルコネクタとRTX1200のシリアルコネクタが双方同じ型のコネクタなので変換ケーブルを接続
RTX1200に接続してログインしてみたところ成功、呆気ないくらいに問題なく使うことができた。
前回使用したケーブルは?
次に、前回使ったケーブルを接続してみたのだが
ハブ経由でMac Book Proに接続したがやはり認識しなかった
$ ls /dev/*usb* ls: /dev/*usb*: No such file or directory
ということで今回も手作業で設定してみることにした。
注意:この後の手順については、自分の環境ではこう設定すると動作したという報告であり、動作を保証するものではありません。 この記事を読まれた方が同様の手順を試されて何かトラブルが発生した等については責任を負いかねますので、試される際は自己責任でお試しください。
製品IDと製造元IDの取得
まずはUSBシリアルの情報を下記の手順で確認
USBシリアルケーブルを接続
ディスプレイ左上のリンゴマークをクリック
表示されるメニューの「このマックについて」をクリック
- OS情報のウィンドウが表示されるので「システムレポート」をクリック
- システム情報一覧が表示されるので、USB→USB 3.1バス→USB2.0 Hubの下にUSB Serial-Controller D:をクリック
- 表示される「製品ID」と「製造元ID」をメモ
ドライバのインストール
USBシリアルのドライバーをここからダウンロード
http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41
ダウンロードしたzipファイルを解凍するとインストールパッケージが表示されるので、ダブルクリックしてインストールパッケージを起動してインストール。
しかし、そのままでは認識しないので
/Library/Extentions/ProlificUsbSerial.kext を ProlificUsbSerial2.kextという名でコピーする
コピーした /Library/Extentions/ProlificUsbSerial2.kext/Contents/Info.plist 内のidProductとidVendorに
- idProduct → 製品ID
- idVendor → 製造元ID
にそれぞれ先ほど確認したIDを記述する
idProductとidVendorの記述だが、/Library/Extentions/ProlificUsbSerial2.kext/Contents/Info.plistでの設定は10進数なのに対して、先ほど確認したIDは16進数なので10進数に変換する必要がある、紙に書いて計算するのもいいがMacの計算機アプリで計算するのがお手軽だと思う。
計算機アプリでの16進→10進変換方法
計算機アプリを起動
上のメニューバーにある[表示]をクリック
表示されるメニューの「プログラマ」をクリック
計算機の表示が変わる
16進の値を入力
入力値の下に表示されているバーの10をクリックして10進数に変換
/Library/Extentions/ProlificUsbSerial2.kext/Contents/Info.plistを変更したら、下記コマンドを実行
$ sudo kextcache -system-caches
コマンド実行後、Mac Book Proを再起動して、再び接続すると今度は無事に認識した。
まとめ
ということで、Thunderbolt 3のみとなった Mac Book Proだが、アダプターやHUB経由で接続できれば問題なくUSBシリアルが動作することが確認できた。
「Macでシリアルポートを使う機器を使う必要があるのか?」と思われる方もいるかもしれないが、シリアルケーブルを介した作業を行う場合、Windowsだとターミナルソフトをインストールする必要があるが、Macの場合はUSBシリアルを認識できれば特にソフトもインストールすることもなく使うことが可能で「コマンド操作に慣れていればMacの方が操作がやり易いのでは?」というのが個人的な感覚である。
いずれにせよ、MacでUSBシリアルを使う場合に何か参考していただければ有難い。