모뎀이 감지되지 않습니다(왜 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

또한 nmclinm-applet이나 다음 방법을 사용하여 감지할 수도 있습니다.

$ 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

여기서 차이점을 볼 수 있습니다.
더 일찍:

버스 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:

# 화웨이, 최신 모뎀
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(문제 설명 포함) 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에서 테스트되었습니다.

관련 정보