FT232Rを使用したUSBtoRJ45なコンソールケーブルが2018年終わりころになぜか手元の環境で使えなくなってたんですけど、その問題について今回調べたのでそのメモ。(解決はしてない)
環境
- macos 10.15.3
- FTDIのドライバはインストール済
状況
システムレポートでUSBデバイスを確認すると、認識されていることは確認できるものの
/dev
にttyのデバイスが出ず、任意のツールで利用できない。
windows10な環境だと問題なく動作する。
拡張一覧を確認
% kextstat | grep FTDI
%
読み込みはされてなさそう?
% kextfind | grep FTD
/Library/Extensions/FTDIKext.kext
/Library/Extensions/FTDIUSBSerialDriver.kext
/System/Library/DriverExtensions/DriverKit.AppleUSBFTDI.dext
mac内にある関連する拡張を列挙、3つあるっぽい。
署名を確認
kextloadを試すと1つ読み込みができなかった。
% sudo kextload /Library/Extensions/FTDIUSBSerialDriver.kext
/Library/Extensions/FTDIUSBSerialDriver.kext failed to load - (libkern/kext) not loadable (reason unspecified); check the system/kernel logs for errors or try kextutil(8).
コンソールを確認
Untrusted kexts are not allowed
とりあえずここの通りに拡張を確認
% codesign --display --verbose=4 /Library/Extensions/FTDIUSBSerialDriver.kext
Executable=/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/MacOS/FTDIUSBSerialDriver
Identifier=com.FTDI.driver.FTDIUSBSerialDriver
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=739 flags=0x0(none) hashes=15+5 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=40318687a974f4d412212a1a8cf2c83fe848ef39
CandidateCDHashFull sha1=40318687a974f4d412212a1a8cf2c83fe848ef39
CandidateCDHash sha256=4e631d06b5bb45827c96e1091d75e74d0f07acef
CandidateCDHashFull sha256=4e631d06b5bb45827c96e1091d75e74d0f07acef023383f64b236aa844bedf1e
Hash choices=sha1,sha256
CMSDigest=9d42ee4c4fc818307916cbf30c1a809928b5bf686f0f73fb281bee30cc588958
CMSDigestType=2
Page size=4096
CDHash=4e631d06b5bb45827c96e1091d75e74d0f07acef
Signature size=4791
Authority=(unavailable)
Info.plist=not bound
TeamIdentifier=REW97NLHMG
Sealed Resources version=2 rules=13 files=1
Internal requirements count=1 size=208
Authority=(unavailable)
とりあえず再インストール
# 削除
% sudo rm -rf /Library/Extensions/FTDIUSBSerialDriver.kext
# インストール後確認
% codesign --verify -v /Library/Extensions/FTDIUSBSerialDriver.kext
/Library/Extensions/FTDIUSBSerialDriver.kext: CSSMERR_TP_CERT_REVOKED
In architecture: x86_64
だめみたい
おわりに
特定のモジュールだけ検証を回避するようにできたらいいんだけどなぁ(全部を検証回避は流石にヤバそうだなって)