Trisquel 7.0 LTSとモバイルブロードバンド(Net-Setter)を使用して接続を確立しています。
次の状態(1〜4)は、問題を明確に理解するためのさまざまな条件/状況を示しています。
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
だが 私 最近 正しくインストールされなかった インストールスクリプト をモバイルパートナーから実行したため、 アンインストールスクリプト も実行しましたが、残念ながら、アンインストールにもかかわらず、モデムは使用できません機能していません(適切に検出しています)。
検出に変更があり、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全体を再インストールする必要があります!)
私は/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)
したがって、ネットワークマネージャーによって検出されます。接続できます。
以下を含む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に戻すことです。
ついに(最終的に)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に戻しました。 [解決済み]
モデムを接続するたびにスクリプトを起動する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を再起動または再起動します。働かなければならない
設定ファイル/etc/usb_modeswitch.conf
設定しました
DisableSwitching=0
それ以外の場合、自動モード切り替えはグローバルに無効になります。
私は同じ問題に対処しましたが、受け入れられた解決策はうまくいきませんでした。 Raspbianディストリビューションを使用している場合、ここで説明されている既知のバグがあります: https://github.com/RPi-Distro/repo/issues/47 。
解決策は次のとおりです。
/lib/udev/rules.d/40-usb_modeswitch.rules
ATTRS{idVendor}=="12d1", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'"
を'%b/%k'
に変更して'%k'
を編集します。Huawei EC315を搭載したRaspbian 8でテスト済み。