web-dev-qa-db-ja.com

モデムが検出されていません(なぜ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:-

だが 私 最近 正しくインストールされなかった インストールスクリプト をモバイルパートナーから実行したため、 アンインストールスクリプト も実行しましたが、残念ながら、アンインストールにもかかわらず、モデムは使用できません機能していません(適切に検出しています)。

検出に変更があり、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

ここに違いがあります-
Ealier:

バス001デバイス004:ID 12d1:1436 Huawei Technologies Co.、Ltd. E173 3Gモデム(modem-mode)

そして今:

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

そして、モデムはnm-appletで検出されません(またはnmcliでリストされません)

デフォルトのTrisquelはデバイスに問題がないので、設定をデフォルトにリセットするにはどうすればよいですか。つまり、この新しい動作の影響を受けるファイルと、以前の状態に戻す方法を教えてください。 (それ以外の場合は、OS全体を再インストールする必要があります!)


状態3 ::

私は/etc/usb_modeswitch.d/の下に12d1:1446という名前のファイルを書きました:

 DefaultVendor = 0x12d1 
 DefaultProduct = 0x1446 
 
 MessageContent = "55534243123456780000000000000011062000000100000000000000000000" 

そして私はこれをコマンドで実行します:

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

正常に機能し、lsusbが変更されます

From:

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

戻る:

バス001デバイス004:ID 12d1:1436 Huawei Technologies Co.、Ltd. E173 3Gモデム(modem-mode)

したがって、ネットワークマネージャーによって検出されます。接続できます。


状態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モデム(modem-mode)

最終的には、ネットワークマネージャー(nm-applet)を使用してモデムを正常に接続できます。


結論:-

ただし、現在の状態(State-4)は代わりに私が探しているものですが、正確ではありません(State-1)。udev-ruleとusb-モデムが接続されるたびにモードスイッチ。

言い換えればなぜusb_modeswitchが必要なのか?(以前は必要ありませんでした。また、Live DVDから起動して[インストールせずにOSを試す]を選択すると、手動でモデムを使用しなくても問題なく動作しますusb_modeswitch)。

したがって(この質問を書いたので)私の目的はState-1に戻すことです。

6
Pandya

ついに(最終的に)usb_modeの自動切り替えで問題が発生する原因を突き止めました。

ファイル - 40-usb_modeswitch.rules の下/lib/udev/rules.dに含まれるもの:

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

だから、私のモデムは自動的にusb_modeswitch 沿って 40-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(問題の説明)私Sudo chmod +x /usr/sbin/usb_modeswitchしかし/usr/sbin/usb_modeswitch_dispatcherにはまだ実行権限がありません。

だから今私はSudo chmod +x /usr/sbin/usb_modeswitch_dispatcherと私はほとんど完了しました!

その後、State-4(質問を参照)に記載されているすべての手動切り替えプロセスを削除し、モデムが次のように正常に検出されました:

バス001デバイス004:ID 12d1:1436 Huawei Technologies Co.、Ltd. E173 3Gモデム(modem-mode)

言い換えると 40-usb_modeswitch.rules正常に動作しています。

最後に、State-1に戻しました。 [解決済み]

1
Pandya

モデムを接続するたびにスクリプトを起動する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を再起動または再起動します。働かなければならない

4
elbarna

設定ファイル/etc/usb_modeswitch.conf設定しました

DisableSwitching=0

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

1
jimmij

私は同じ問題に対処しましたが、受け入れられた解決策はうまくいきませんでした。 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'を編集します。

Huawei EC315を搭載したRaspbian 8でテスト済み。

0
ralien