2016年4月18日月曜日

シリアル - USB 変換モジュール FTDI232 が Debian Jessie で動作しました

メーカ不詳の シリアル - USB 変換モジュール FTDI232 が Debian Jessie で動作しました。

Debian Jessie で動作することが確認できた FTDI232 です。

経緯

以前、弊ブログにて紹介しました FTDI232 は、Windows XP や Puppy Linux 5.7.1 JP で動作することが確認出来ていました。しかし肝心な Debian Jessie では、受信のみの動作だけで、送信の動作ができない状態でした。さらに調べてみると Debian Wheezy でも同様の状況でした。
メーカ不詳 シリアル - USB 変換モジュール FTDI232
http://near-unix.blogspot.jp/2016/04/usb-ftdi232.html

その後、FTDI232 の中に使われているチップ(FT232RL)を動作させている ftdi_sio.ko のソースコードを調査してみました。問題の FTDI 社が行った偽物の対策が、Linux カーネルモジュールにも影響を与えているか?についてです。私が理解した範疇では、Windows 用ドライバによってデバイス ID を "0403:0000" に書き換えられたチップを "BRICKED" と認識して、何も動作しないように 2014 年ごろに変更が加えられているだけで、Linux のドライバ・モジュールが積極的に動作を制限することはないものと判断しました。

そうすると、余計に Debian Jessie でデータの送信が出来ない理由が解りません。

screen コマンドで動作

そこでネット上を「debian ft232rl」などといろいろと検索してみました。しかし送信だけが出来ない事例を見つけることができませんでした。チップそのものを認識出来ないなどの問題だけが発見できました。その他、多くは Debian 上での使用方法についての解説できした。そこで気づいたことは、このようなシリアル・ポートを使用するときによく使う cu コマンドを使用する事例が何故か見当たりませんでした。その代わり screen を使うものばかりでした。そこで screen コマンドで試しに FTDI232 と通信させてみました。

 すると相手先に送信していることを示す LED ランプがチカチカ点灯しているのを発見しました。急遽、玄箱のシリアルコンソールの外部端子へ接続して確認すると、ちゃんと送受信ができているのを確認しました。

中央部にある二個の LED ランプが送信と受信に対応して点滅しました。

これから判断できることは、ドライバ・モジュールの ftdi_sio.ko は正常に動作しており、何らかの理由で cu コマンドからの送信データを出力出来ない状況にあるようです。

screen で操作事例

screen での通信開始時のコマンドは次の通りです。通信速度は、玄箱用に 57600bps の事例で表記しています。一般ユーザから操作することができます。
$ screen /dev/ttyUSB0 57600
screen の終了は "Ctrl + A" の後、"\(バックスラッシュ)" です。

以下は、玄箱を制御中の端末画面のスクリーンショットを取得したものです。

玄箱起動時の様子です。
玄箱が起動してログインできる状況となりました。
従来であれば、ここで何も出来なくなっていました。
パソコンからのデータが玄箱へ届いてログインできました。
シリアル通信を終了するときには Ctrl+A と \(バックスラッシュ) です。

これでようやく Debian Jessie のマシンから FTDI232 を操作することができるようになりました。Debian Jessie で操作できないことが判明した後、ずっとモヤモヤがありましたが、これですっきりと晴れました!

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。