Armadilloフォーラム

FTDI社のUSBデバイスでERRORについて

lee0601

2023年5月13日 19時30分

お世話になります。
FTDI社のUSBデバイスをArmadillo G3Lに接続しているのですが、数十時間経過すると、下記のエラーが発生し、USB情報(lsusb)から消えます。
May 13 06:45:01 armadillo kernel: ftdi_sio ttyUSB0: error from flowcontrol urb
May 13 06:45:01 armadillo kernel: ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
May 13 06:45:01 armadillo kernel: ftdi_sio 1-1:1.0: device disconnected

Armadillo G3Lを再起動すると、USB情報が復帰します。
Armadillo G3Lは、Debian10(Linux armadillo 4.9.133-at21)です。

発生する原因が特定できないのですが、USBのバスパワー不足で発生する可能性がありますでしょうか?
ご存知であれば、原因がご存知の方は教えてください。

また、原因が改善できる対処方法をおしえてほしい。
例えば、カーネルアップデートもしくは再起動せずにUSBの再接続処理など。

コメント

溝渕です。

> 発生する原因が特定できないのですが、USBのバスパワー不足で発生する可能性がありますでしょうか?
> ご存知であれば、原因がご存知の方は教えてください。

私は該当の現象に出会した事はありませんが、以下でバスパワーが懸念されています。
https://www.spinics.net/lists/linux-usb/msg183864.html

USBシリアル消費電力の大きなデバイスを私自身は確認した事がありませんが、もし電源が原因なのであれば、USB給電HUBを使うと改善されるかと思います。

> また、原因が改善できる対処方法をおしえてほしい。
> 例えば、カーネルアップデートもしくは再起動せずにUSBの再接続処理など。

USBデバイスを、unbind/bindすると復帰できるかもしれません。
https://armadillo.atmark-techno.com/forum/armadillo/14155

unbind/bindで復帰できない場合、恐らくUSBデバイスへのVBUS供給を一旦停止する必要があるかと思います。この場合はLinuxカーネルの変更が必要になります。

ご返信をありがとうございます。

> USBシリアル消費電力の大きなデバイスを私自身は確認した事がありませんが、もし電源が原因なのであれば、USB給電HUBを使うと改善されるかと思います。
USBに接続する機器はUSB給電で動作するため、USBシリアル消費電力+機器消費電力となります。

> USBデバイスを、unbind/bindすると復帰できるかもしれません。
> https://armadillo.atmark-techno.com/forum/armadillo/14155
上記を参考に実施してみました。

root@armadillo:/home/atmark# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Communications, Driver=cdc_ether, 480M
    |__ Port 1: Dev 2, If 1, Class=CDC Data, Driver=cdc_ether, 480M
    |__ Port 1: Dev 2, If 2, Class=Communications, Driver=cdc_acm, 480M
    |__ Port 1: Dev 2, If 3, Class=CDC Data, Driver=cdc_acm, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
root@armadillo:/home/atmark# dmesg | grep ftdi
[    2.874176] usbcore: registered new interface driver ftdi_sio
[    3.596636] ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
[14912.100124] ftdi_sio ttyUSB0: error from flowcontrol urb
[14912.105329] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[14912.113000] ftdi_sio 1-1:1.0: device disconnected
root@armadillo:/home/atmark# echo -n '1-1' | tee /sys/bus/usb/drivers/usb/unbind
1-1tee: /sys/bus/usb/drivers/usb/unbind: No such device
root@armadillo:/home/atmark# echo -n '1-1' | tee /sys/bus/usb/drivers/usb/bind
1-1tee: /sys/bus/usb/drivers/usb/bind: No such device

結論としてはコマンドを受付できませんでした。
やり方はあっておりますでしょうか?

※別途、USB給電を考えたいと思っています。

溝渕です。

ご確認ありがとうございます。解決できず、すみません。

> 結論としてはコマンドを受付できませんでした。
> やり方はあっておりますでしょうか?

はい。合っています。unbind/bindは機能しないようです。恐らく、USBシリアルがdisconnectedされる前であれば、同様のコマンドでunbind/bindが可能であると思います。

> ※別途、USB給電を考えたいと思っています。

感覚的に、電力の問題である可能性は低いですが、可能であれば確認お願いします。

また、お持であれば他のUSBシリアルで動作確認してみてください。以下のような事例があるようです。

https://ftdichip.com/anti-counterfeit-products/

お持ちのUSBシリアルを信頼できる販売元から購入したのであれば、上記のような事は無いと思います。

また、私が特別FTDI社製品が怪しい/模造品の可能性が高い等という主張をする意図が無い事をご了承ください。