モデムが検出されません(なぜusb_modeswitchをする必要があるのですか?)

モデムが検出されません(なぜusb_modeswitchをする必要があるのですか?)

私はTrisquel 7.0 LTSとモバイルブロードバンド(Net-Setter)を使用して接続を確立しています。

次の状態(1-4)は、問題を明確に理解するためのさまざまな条件/状況を示しています。

状態 1:-

Trisquel 7.0 LTSをインストールした後、すべてがうまく機能します。私のモデムの検出は次のとおりです(lsusb出力)。

$ lsusb
Bus 001 Device 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

nm-appletまたは次の方法を使用して検出することもnmcliできます。

$ nmcli dev list
GENERAL.DEVICE:                         ttyUSB2
GENERAL.TYPE:                           gsm
GENERAL.VENDOR:                         HUAWEI Technology
GENERAL.PRODUCT:                        HUAWEI Mobile

状態 2:-

しかし、最近1つ走りました。インストールスクリプトモバイルパートナーから来ましたが、正しくインストールできなかったので、私も実行してみました。削除スクリプト残念ながら、削除にもかかわらず、モデムは機能しません(正常な検出)。

これで、検出と新しい(現在の)出力が変更されましたlsusb

$ lsusb
Bus 001 Device 003: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800/E173 (HSPA modem)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

ここで違いを見ることができます。
より早い:

バス 001 デバイス 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3Gモデム(モデムモード)

今:

バス 001 デバイス 003: ID 12d1:1446 Huawei Technologies Co., Ltd. 1552/E1800/E173(HSPAモデム)

モデムはnm-appletでは検出されません(nmcliにもリストされていません)。

デフォルトのTrisquelは私のデバイスに問題がないので、どのように設定をデフォルト値にリセットできますか?つまり、この新しい動作の影響を受けるファイルは何であり、どのように以前の状況に戻すことができますか? (そうでない場合は、OS全体を再インストールする必要があります!)


状態 3:-

私は12d1:1446というファイルを書きましたが、/etc/usb_modeswitch.d/その下は次のようになります。

デフォルトプロバイダ = 0x12d1
基本製品=0x1446

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

次のコマンドで実行します。

sudo usb_modeswitch -I -W -c /etc/usb_modeswitch.d/12d1\:1446

うまくいきましたが、理由がlsusb変わりました。

から:

バス 001 デバイス 003: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800/E173(HSPAモデム)

に戻る:

バス 001 デバイス 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3Gモデム(モデムモード)

これにより、ネットワーク管理者はそれを検出して接続できます。


状態4:(この回答 -

99-mymodem.rules私は次のようなファイルを作成しました/etc/rules.d

ACTION=="add", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/home/pandya/usbmode"

以下/home/pandya/usbmodeを含みます。

#!/bin/bash
sudo usb_modeswitch -I -W -c /etc/usb_modeswitch.d/12d1\:1446

そのため、モデムを接続したとき、次のようにモデムを99-mymodem.rules実行して検出しました。/home/pandya/usbmode

バス 001 デバイス 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3Gモデム(モデムモード)

結局、ネットワーク管理者()を介してモデムに正常に接続できましたnm-applet


結論として:-

しかし、現在の状況(状態4)または私が探しているものですが、正確ではありません(状態1)モデムが接続されるたびにudev-ruleとusb-modeswitchを渡すからです。

つまりなぜ今それをするべきですかusb_modeswitch(以前は必要ではなく、Live DVDから起動してインストールせずにOSを試してみると、モデムは手動操作なしでうまく機能しますusb_modeswitch)。

だから(この質問を書いて以来)私の目標は状態1

答え1

モデムが接続されるたびにスクリプトを起動するには、udevルールを試してください。

ACTION=="add", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="UUUU", RUN+="/home/user/script.sh"

XXXXとUUUUをベンダーとID製品に置き換え、ルールを/etc/udev/rules.d/99-yourrule.rulesに入れて、udevを再起動または再起動します。働かなければならない

答え2

/etc/usb_modeswitch.conf設定ファイルで設定したことを確認してください。

DisableSwitching=0

それ以外の場合、自動モード切り替えはグローバルに無効になります。

答え3

最後に(最後に)usb_mode自動切り替え問題の原因を発見しました。

文書40-usb_modeswitch.rules以下の内容が含まれています/lib/udev/rules.d

#Huawei社、最新のモデム
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1446", RUN+="usb_modeswitch '%b/%k'"

したがって、私のモデムは自動的usb_modeswitch40-usb_modeswitch.rules

しかし、問題は/usr/sbin/usb_modeswitch/usr/sbin/usb_modeswitch_dispatcherが設定されていませんchmod +x(ファイルの実行を許可)。おそらく、インストールスクリプト(問題に添付)のプロパティが変更された可能性があります。

手動でsudo usb_modeswitch -I -W -c /etc/usb_modeswitch.d/12d1\:1446(問題の説明を含む)Isudo chmod +x /usr/sbin/usb_modeswitch しかし、/usr/sbin/usb_modeswitch_dispatcherまだ実行権限がありません。

sudo chmod +x /usr/sbin/usb_modeswitch_dispatcherほぼ終わりました!

その後、説明したように、すべての手動切り替えプロセスを削除しました。状態4(質問を参照)私のモデムは次のように正常に検出されました。

バス 001 デバイス 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3Gモデム(モデムモード)

つまり、40-usb_modeswitch.rulesうまく動作します。

ついに帰ってきた状態1。 [解決済み]

答え4

私は同じ問題に対処し、受け入れられた解決策は私にはうまくいきませんでした。 Raspbianディストリビューションがある場合は、ここで説明されている既知のバグがあります。https://github.com/RPi-Distro/repo/issues/47

解決策は次のとおりです。

  1. 編集する/lib/udev/rules.d/40-usb_modeswitch.rules
  2. 編集してにATTRS{idVendor}=="12d1", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'"変更します。'%b/%k''%k'

Raspbian 8とHuawei EC315でテストされています。

関連情報