Huawei E3372モデムが起動すると、USB_modeswitchが起動します。

Huawei E3372モデムが起動すると、USB_modeswitchが起動します。

Huawei Brovi E3372-325 USB LTEモデルをRaspberry Piと連携させようとしています。この製品はボックスから取り出されるとすぐに動作し、接続するとCDROMとして表示されます。 (これは明らかにWindowsでドライバのインストールを自動化するために使用されます。)

これまで私が見つけたこの投稿udev ルール構成ファイルを使用します。システムの実行中にusb_modeswitchを実行してモデムをホットプラグすると、それを有効にできます。ただし、起動時にモデムが接続されている場合は機能せず、代わりにCD ROMとして表示されます。

だから今、起動時にusb_modeswitchを実行するシステムサービスを作成しようとしています。これを達成するための手順としてモデムを接続した状態で起動し、設定ファイルでusb_modeswitchコマンドを手動で実行してみました。しかし、これは所望の効果を得ることができなかった。

コマンドは

/sbin/usb_modeswitch -v 3566 -p 2001 -W -R -w 400
/sbin/usb_modeswitch -v 3566 -p 2001 -W -R

これを行うにはどうすればよいですか? udevルール設定は、リストされている2つのコマンドよりも多くのアクションをトリガしますか?それとも、なぜ一見同じコマンドが同じ効果を持たないのでしょうか?

修正する

明らかに電源を入れた後、モデムはしばらくモデムとしてマークされてからCDROMモードに切り替えますが、モデムモードに戻すように指示することはできません。 CDROMモードは、Windowsからドライバを自動的にインストールするために使用されます。ただし、これはドライバをインストールした後できるモデムモードに戻ります。その場合、usb_modeswitchとWindowsドライバは、モデムモードに切り替えるために異なるコマンドを使用するようです。

ベストアンサー1

このコマンド自体では有用な操作は行われません。どちらもUSBポートをリセットするだけです。実際のモード切り替えはまたは-Jオプション-Xを使用して行われます(前者はCDC擬似イーサネットモードに切り替え、後者はMBIMモデムモードに切り替えます)。

しかし、モデムも同じようです。スタートRNDIS擬似イーサネットモードからCDROMモードへの切り替えは、1秒間RNDISインターフェイスにバインドされていない場合にのみ発生します。したがって、通常の接続(udevがすぐにドライバをロードする準備ができている場合)とシステム起動(USBデバイスの初期化とドライバのロードの間に少し時間がある場合)の動作は異なります。

少なくとも最初に私の製品を受け取ったときはそうでしたが、2日後にその行動は奇妙に変わりました。私はそれがファームウェアアップデート1をダウンロードしたにちがいないと思います。接続すると、1秒間だけ3566:2001に滞在し、12d1:1f01になります。 usb_modeswitchはそれを認識し、CDC falseに切り替えます。イーサネットモード。 (また、たくさん凍った。)


1 単純なモデムではなく、内部Webサーバーと自動更新を備えた完全なLinuxデバイスです。

おすすめ記事