CH340G USB/シリアルコンバーターは、カーネルを 5.4.0-88-generic にアップグレードした後、Espressif esptool との通信を停止します。

CH340G USB/シリアルコンバーターは、カーネルを 5.4.0-88-generic にアップグレードした後、Espressif esptool との通信を停止します。

新しいカーネル 5.4.0-88-generic にアップグレードした後、チップ CH340G (USB シリアル コンバータ) を使用する ESP266 開発ボードが、Ubuntu 20.04 Dell ラップトップ上の Espressif フラッシュ ツール "esptool" との通信を停止します。このツールは Python で記述されており、コマンド ラインで実行するように設計されています。5.4.0-86 で起動するように grub を変更することで、一時的にこの問題を解決しましたが、次のカーネル アップグレードでもこの障害が続くと問題になります。簡単なシリアル ターミナル (moserial) を使用して、USB/シリアル直接通信をテストする簡単なコードを作成しましたが、この場合、CH340G チップは両方向で正常に動作しているようです。したがって、新しいカーネルでは、Python がチップ ドライバーにアクセスするときに問題が発生しているのではないかと思います。カーネルの問題をどこに報告すればよいか分からないため、このフォーラムでこの問題について言及することにしました。もしここが適切な場所でない場合は、適切なチャネルにこれを報告する最善の方法を教えていただければ幸いです。

答え1

私も同じカーネルで同じ問題が発生しています。

デュアルブート ポータブルで Windows を使用してチップをプログラムすることができ、Ubuntu 19.04 からプログラムすることができました。

アップデート後、プログラムする方法がありません。チップは認識され、シリアル インターフェイスで通信できますが、プログラム モードに進む方法がありません。

CH341 モジュールをカーネル バージョン 5.4.0-86 のモジュールに戻しても動作します。

モジュールをアンロードするだけです:

modprobe -r ch341

オリジナルの名前を変更します:

mv /lib/modules/5.4.0-88-generic/kernel/drivers/usb/serial/ch341.ko /lib/modules/5.4.0-88-generic/kernel/drivers/usb/serial/ch341.ko.ori

そして、以前のカーネルからのものを取得します(まだオンボードにあることを願っています)

cp /lib/modules/5.4.0-86-generic/kernel/drivers/usb/serial/ch341.ko /lib/modules/5.4.0-88-generic/kernel/drivers/usb/serial/ch341.ko

そして最後に:

modprobe ch341

これでチップをフラッシュできるようになります。

答え2

ありがとうございます! 前述したように、カーネルを一時的に 5.4.0-86 にダウングレードし、次のバージョンで問題が解決されるかどうかを確認しますが、あなたの非常に良い提案を部分的に取り入れて、次のカーネルでも障害が続く場合に備えて、動作する CH341 ドライバーを /lib/modules/5.4.0-86-generic/kernel/drivers/usb/serial からホームにコピーしました。

関連情報