2021年01月19日

HighSierra上でFTDI系のUSB/Serial変換器が動作不能になる問題

ほぼ丸一日を掛けてFTDIのドライバーがHighSierra上でロードされない問題を解決した。


つまりmonomeがその煽りを受けて全く動かなかったのだが、Appleのスカタンな出来のkextファイルの所為でコンフリクトが発生したうえに、OS上の他社製品を阻害する機能が働いてドライバが受け付けられないとう最悪の状態に陥っていた。

まずは、状況を整理していく。 とりあえず、USB端子に接続されている機器は認識されているようなのだが、、、

Screen Shot 2021-01-18 at 10.32.00.png

ドライバのロードがOSによって拒否られているのが現状だ。

Screen Shot 2021-01-18 at 18.29.04.png

FTDIのシリアル変換チップは多くの製品に使用されているので、事態は深刻である。 確かに検索をかけると、あれこれと試行錯誤をした記録が散見されるのだが、これといった決め手を探し出すことが出来なかった。

その中では、こちらの記事の他、この記事を参考にすることが出来た。

問題点は2つで、まず、Apple謹製のFTDI専用ドライバー AppleUSBSerial.kext の出来が最悪だということ。 このファイルが存在するフォルダは System/Library/Extension で、同じ場所には旧いFTDIのドライバが取り残されている。 まずはこれらを排除することから作業が始まる。

正常なkextの位置は、こちらのフォルダで、インストールされたkextのヴァージョンを確かめておく。

Screen Shot 2021-01-18 at 20.08.04.png

もう一つの問題点は、他社製品のハンドリングを拒否するOSの仕様にあって、この機能を切らないと正常に働くヴァージョンのドライバを Terminal を使って読み込ませることが出来ない。

通常ドライバを手動で書き込もうとした場合、システム環境設定の Security & Privacy を開くとブロックされている旨の表示出るはずなのだが、今回のケースではこれが表示されないために一切の対処を行うことが出来ない。

作業はこの段階で躓いたのだが、解決法として以下の方法を試してみた。

まず、手作業で旧いファイルを取り除いた後、最新版のドライバーをインストールする。

次に、Terminalを開いて spctl --master-disable を実行し、アプリの実行を撥ねる機能の無効化を行う

cd /Library/Extensions で、フォルダを移動後に、kextload を使って強制的にドライバを読み込ませる

以上を実行した後、再起動を行ってドライバの読み込みを確認できた。

Screen Shot 2021-01-18 at 20.05.12.png

今は音源を組み込める時代なので、そのうちUSBHost込みでスタンドアロンな楽器に改装したいところだ。BPMに合わせてパルスっぽい音を出すKYMAで造ったオブジェクトを再現したい。 やはりスタンドアロンの方が楽器っぽいというか、GAFAの横暴(苦笑)を見るにつけ、パソコン依存は不健全だと思うようになったということもある。

140536260_3887292394634523_2982812838693762029_o.jpg

だって、OSの思惑如何で、それなりに思い入れがある・場合によっては高価なハードウエアが一瞬のうちにゴミになってしまうのだ。 そんなの許せる訳がない。

ちなみに、最新型のMacbookに於いてもFTDI関連の問題はFIXされず、あろうことか更に悪化しているという話が流れてきた。
posted by Yasuski at 17:11| FTDI

2013年11月29日

monome_Emulatorをデッチ上げる

まだ実験の途中なので実際に動くかどうかは不明だが、ひとまずMonomeを使用する前提で製作されたMaxアプリ上で、USB端子に接続したチップの認識が行われることを確認できた。

WS000466.JPG

Macで実験した場合は、接続したFT232デバイス2個をそれぞれ認識できたが、Windows上ではcomポートのコンフリクトが原因(と思われる)で、認識できたのは1個だった。

407432609.212723.jpg

以下、行った作業を今一度整理する。

1) monome系デバイスをUSB端子に接続したあと、FTProgを立ち上げてROMの設定を吸い上げる。 
2) monomeを取り外した後、デフォルト状態のFT232RをUSB端子に接続し、先に保存したファイルと同じ内容にUSB String Descriptorsを書き換える。 
3) 内容を確認した後、Programming Deviceボタンでチップ上のFlashROMを書き換えて作業は終了。

次のステップで、VinculoのシリアルポートにFT232Rを接続し、monomeからの通信を検証する。 

これで、ようやく実証試験を行うフェイズに入った。
posted by Yasuski at 23:23| FTDI

2013年11月26日

USBHOSTを作る為のSTEP

monomeをUSBHOSTで受ける場合、PC側で行われるデバイスクラス判定の内容が不明なために、mbed等でスタンドアロン版のUSBHOSTを製作する場合に認識させるのが難しいという問題があった。

特にFT245に関する情報は少なく、Webをキーワード検索していたところ、Android系の開発を行っている人(日本人)のサイトにFTDI系チップをUSB接続した場合にHOST側が受け取る情報の詳細が載っていた。 

後日mbedへの移植を前提に、これらの情報を精査する予定。 

USBHOST開発のターゲットデバイス、monomeにはパラレル接続のチップが載っていて、これをUARTにそのまま直結できるとは思えなかった。 が、件のサイトに掲載されているデバイス判定の状態を見ると、どうもHOST側ではFT232系のシリアル機器として認識されているように見える。 

従って、実機では確認していないが、VinculumIIにおいても問題なくUART接続が行えていた可能性がある。 念のため、FTDIにはFT245との互換性を確認するメイルを送っておいた。

VinculumIIの問題は、デバッガー経由で対象機器に接続する場合、電源の容量不足のために専用のドーターボードを製作する必要があったことだった。 ステージ開始のドサクサもあってその辺の手当を放置したまま現在に至っていることを反省しなければならないが、今回は年末までに電源を準備してなんとか実験まで漕ぎ着けたいところだ。


以下、FT245に関する覚え書き
posted by Yasuski at 01:47| FTDI