O modem não está sendo detectado (Por que eu tenho que usb_modeswitch?)

6

Estou usando o Trisquel 7.0 LTS e a banda larga móvel (Net-Setter) para estabelecer a conexão.

Os seguintes estados (1-4) mostram condições / situações diferentes para uma compreensão clara do problema.

Estado-1: -

Após a instalação do Trisquel 7.0 LTS, tudo está funcionando bem. Meu modem é detectado da seguinte forma ( lsusb output):

$ 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

E ele também é detectado pelo nm-applet ou digamos usando nmcli da seguinte forma:

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

Estado 2: -

Mas recentemente executou um script de instalação do Mobile Partner , que não foi devidamente instalado, e, portanto, eu também executei o script de desinstalação E, infelizmente, apesar da desinstalação, agora meu o modem não está funcionando (detectando corretamente).

Existe agora uma alteração na detecção e uma nova saída (atual) por 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

Aqui você pode ver a diferença que é-
Ealier:

Bus 001 Device 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)

E agora:

Bus 001 Device 003: ID 12d1:1446 Huawei Technologies Co., Ltd. 1552/E1800/E173 (HSPA modem)

E agora o modem não é detectado no nm-applet (nem listado pelo nmcli).

Então, como posso redefinir as configurações para o padrão porque o padrão do Trisquel não tem nenhum problema com o meu dispositivo. Em outras palavras, quais arquivos são afetados por esse novo comportamento e como reverter para condição anterior? (Caso contrário, eu tenho que reinstalar todo o meu sistema operacional!)

State3: -

Eu escrevi um arquivo chamado 12d1: 1446 em /etc/usb_modeswitch.d/ , que é:

DefaultVendor= 0x12d1 
DefaultProduct=0x1446

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

E eu corro isso por comando:

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

Que funciona bem e causa lsusb alterado

De:

Bus 001 Device 003: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800/E173 (HSPA modem)

Voltar para:

Bus 001 Device 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)

E, portanto, ele será detectado pelo gerente de rede; Eu serei capaz de se conectar.

Estado-4: (Seguindo esta resposta ) -

Eu escrevi o arquivo chamado 99-mymodem.rules em /etc/rules.d contendo:

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

E /home/pandya/usbmode contém:

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

Assim, quando liguei meu modem, 99-mymodem.rules runs /home/pandya/usbmode e consegui detectar meu modem como:

Bus 001 Device 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)

Por fim, posso conectar com sucesso o modem pelo network-manager ( nm-applet ).

Conclusão: -

No entanto, a condição atual ( State-4 ) é, alternativamente, o que estou procurando, mas não Exatamente ( State-1 ) porque estamos passando pela regra do udev e usb-modeswitch toda vez que o modem é conectado.

Em outras palavras Por que eu tenho que usb_modeswitch Now? (Anteriormente não é necessário, também Se eu inicializar do Live DVD e escolher Experimentar o SO sem instalar, o modem está funcionando bem sem manualmente usb_modeswitch ).

Portanto (desde que escrevi esta pergunta) Meu objetivo é reverter para State-1 .

    
por Pandya 24.12.2014 / 13:11

4 respostas

1

Finalmente (Ultimamente) descobri o problema causador da troca automática usb_mode.

O arquivo 40-usb_modeswitch.rules em /lib/udev/rules.d contém:

# Huawei, newer modems
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1446", RUN+="usb_modeswitch '%b/%k'"

Portanto, meu modem deve ser automaticamente usb_modeswitch por 40-usb_modeswitch.rules .

Mas o problema é que /usr/sbin/usb_modeswitch & /usr/sbin/usb_modeswitch_dispatcher não definiu chmod +x (Permitir executar o arquivo). Provavelmente o script de instalação (anexado em questão) tinha um atributo modificado.

Enquanto manualmente sudo usb_modeswitch -I -W -c /etc/usb_modeswitch.d/12d1\:1446 (explicado em questão) I sudo chmod +x /usr/sbin/usb_modeswitch Mas /usr/sbin/usb_modeswitch_dispatcher ainda não tem permissão de execução.

Então, agora eu tenho apenas sudo chmod +x /usr/sbin/usb_modeswitch_dispatcher e quase pronto!

Depois disso, removi todo o processo de troca manual indicado em State-4 (ver pergunta) e agora meu modem detectou com êxito:

Bus 001 Device 004: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)

Em outras palavras, 40-usb_modeswitch.rules funcionando bem.

Por fim, reverti para State-1 . [RESOLVIDO]

    
por 04.01.2015 / 17:03
4

Tente a regra do udev que lança um script toda vez que você ligue o modem.

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

Substitua XXXX e UUUU por vendedor e id product, coloque a regra em /etc/udev/rules.d/99-yourrule.rules e reinicialize ou reinicie o udev. Deve trabalhar

    
por 31.12.2014 / 00:37
1

Por favor, certifique-se de que no arquivo de configuração /etc/usb_modeswitch.conf você configurou

DisableSwitching=0

Caso contrário, a troca automática de modo está desativada globalmente.

    
por 03.01.2015 / 12:06
0

Eu lidei com o mesmo problema e a solução aceita não funcionou para mim. Se você tem uma distro Raspbian, há um bug conhecido discutido aqui: link .

A solução é:

  1. editar /lib/udev/rules.d/40-usb_modeswitch.rules
  2. edite ATTRS{idVendor}=="12d1", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'" , alterando '%b/%k' para '%k' .

Testado no Raspbian 8 com a Huawei EC315.

    
por 15.02.2017 / 23:27