Como habilitar a conexão de banda larga com a Huawei E3372h no Ubuntu Server

1

Nota importante: depois de inserir esta "pergunta", fiz alguns testes e percebi que posso habilitar a conexão de banda larga com a versão mais recente do Ubuntu Server - 15.10. O procedimento é descrito abaixo. De qualquer forma, o motivo pelo qual ele não funciona em 14.04.04LTS não é conhecido para mim (talvez a funcionalidade não seja coberta em sua versão do kernel)

Eu tenho Huawei E3372H que eu configurei para o modo "modem", para que ele não faça NAT e se comporte como um modem. Funciona com o Ubuntu 15.10 (desktop). O gerente de rede mostra a possibilidade de criar uma conexão de banda larga e eu preencho apenas a "internet" da APN e pronto - depois de ativar essa conexão, ela funciona perfeitamente.

Mas como conectar meu Ubuntu Server 14.04 à internet usando este pendrive quando não há um NetworkManager instalado?

Aqui estão algumas informações básicas sobre o bastão:

lsusb mostra como:

Bus 002 Device 009: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard

Esta interface está sendo criada quando o stick está conectado ao meu computador desktop Ubuntu:

wwx001e101f0000 Link encap:Ethernet  HWaddr 00:1e:10:1f:00:00  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Eu tentei seguir este procedimento ( link ), mas infelizmente eu terminou sem sucesso:

Apr  9 16:32:32 test_server pppd[20296]: pppd 2.4.5 started by jim, uid 0
Apr  9 16:32:33 test_server chat[20298]: abort on (BUSY)
Apr  9 16:32:33 test_server chat[20298]: abort on (VOICE)
Apr  9 16:32:33 test_server chat[20298]: abort on (NO CARRIER)
Apr  9 16:32:33 test_server chat[20298]: abort on (NO DIALTONE)
Apr  9 16:32:33 test_server chat[20298]: abort on (NO DIAL TONE)
Apr  9 16:32:33 test_server chat[20298]: send (ATZ^M)
Apr  9 16:32:33 test_server chat[20298]: expect (OK)
Apr  9 16:32:33 test_server chat[20298]: ^M
Apr  9 16:32:33 test_server chat[20298]: OK
Apr  9 16:32:33 test_server chat[20298]:  -- got it
Apr  9 16:32:33 test_server chat[20298]: send (AT+CGDCONT=1,"IP","internet"^M)
Apr  9 16:32:34 test_server chat[20298]: expect (OK)
Apr  9 16:32:34 test_server chat[20298]: ^M
Apr  9 16:32:34 test_server chat[20298]: ^M
Apr  9 16:32:34 test_server chat[20298]: OK
Apr  9 16:32:34 test_server chat[20298]:  -- got it
Apr  9 16:32:34 test_server chat[20298]: send (ATDT*99#^M)
Apr  9 16:32:34 test_server chat[20298]: expect (CONNECT)
Apr  9 16:32:34 test_server chat[20298]: ^M
Apr  9 16:32:34 test_server chat[20298]: ^M
Apr  9 16:32:34 test_server chat[20298]: CONNECT
Apr  9 16:32:34 test_server chat[20298]:  -- got it
Apr  9 16:32:34 test_server chat[20298]: send (^M)
Apr  9 16:32:34 test_server pppd[20296]: Script /usr/sbin/chat -v -f /etc/chatscripts/pap -T *99# finished (pid 20297), status = 0x0
Apr  9 16:32:34 test_server pppd[20296]: Serial connection established.
Apr  9 16:32:34 test_server pppd[20296]: using channel 10
Apr  9 16:32:34 test_server pppd[20296]: Using interface ppp0
Apr  9 16:32:34 test_server pppd[20296]: Connect: ppp0 <--> /dev/ttyUSB0
Apr  9 16:32:35 test_server pppd[20296]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xce74b2a1> <pcomp> <accomp>]
Apr  9 16:33:02 test_server pppd[20296]: message repeated 9 times: [ sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xce74b2a1> <pcomp> <accomp>]]
Apr  9 16:33:05 test_server pppd[20296]: LCP: timeout sending Config-Requests
Apr  9 16:33:05 test_server pppd[20296]: Connection terminated.
Apr  9 16:33:06 test_server pppd[20296]: Modem hangup

Editar: Eu descobri o procedimento de trabalho, mas infelizmente funciona apenas no meu desktop com o Ubuntu 15.10 :

echo -e "AT^NDISDUP=1,1,\"internet\"\r" > /dev/ttyUSB0
dhclient -v wwx001e101f0000

- > Usando os comandos acima, será criada a banda larga móvel na interface Ethernet wwx001e101f0000.

Infelizmente no meu Ubuntu Server 14.04 via comando dhclient -v wwan0 um endereço IP não é fornecido embora o modem esteja conectado à rede LTE (luz azul acesa). É muito estranho.

Edit2: Eu descobri que o problema é mais provável na versão do kernel do Ubuntu 14.04. Eu fiz um teste - instalei o novo "teste" Ubuntu Server 14.04 apenas para este teste - o comportamento era exatamente o mesmo que na minha "produção" Ubuntu Server 14.04 - nenhum IP adquirido usando dhclient wwan0 .

Então eu instalei o novo "teste" Ubuntu Server 15.10 e nesta instalação ele funciona perfeitamente. Então eu suponho que por algum motivo essa interface ncm não funcione corretamente. Eu notei essa diferença entre os dois servidores:

Ubuntu 14.04 Dmesg:

Apr  9 19:32:13 ubuntu kernel: [27410.720039] usb 1-4: new high-speed USB device number 18 using ehci-pci
Apr  9 19:32:13 ubuntu kernel: [27410.861148] usb 1-4: New USB device found, idVendor=12d1, idProduct=1506
Apr  9 19:32:13 ubuntu kernel: [27410.861154] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Apr  9 19:32:13 ubuntu kernel: [27410.861159] usb 1-4: Product: HUAWEI_MOBILE
Apr  9 19:32:13 ubuntu kernel: [27410.861163] usb 1-4: Manufacturer: HUAWEI_MOBILE
Apr  9 19:32:13 ubuntu kernel: [27410.898395] option 1-4:1.0: GSM modem (1-port) converter detected
Apr  9 19:32:13 ubuntu kernel: [27410.898552] usb 1-4: GSM modem (1-port) converter now attached to ttyUSB0
Apr  9 19:32:13 ubuntu kernel: [27410.943023] huawei_cdc_ncm 1-4:1.1: MAC-Address: 00:1e:10:1f:00:00
Apr  9 19:32:13 ubuntu kernel: [27410.943029] huawei_cdc_ncm 1-4:1.1: setting rx_max = 16384
Apr  9 19:32:13 ubuntu kernel: [27410.968250] huawei_cdc_ncm 1-4:1.1: cdc-wdm0: USB WDM device
Apr  9 19:32:13 ubuntu kernel: [27410.968657] huawei_cdc_ncm 1-4:1.1 wwan0: register 'huawei_cdc_ncm' at usb-0000:00:1a.7-4, Huawei CDC 
NCM device, 00:1e:10:1f:00:00

Ubuntu 15.10 Dmesg:

Apr  9 22:29:20 ubuntu kernel: [   64.269728] usb 2-1.2: new high-speed USB device number 7 using ehci-pci
Apr  9 22:29:20 ubuntu kernel: [   64.367373] usb 2-1.2: New USB device found, idVendor=12d1, idProduct=1506
Apr  9 22:29:20 ubuntu kernel: [   64.367379] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Apr  9 22:29:20 ubuntu kernel: [   64.367382] usb 2-1.2: Product: HUAWEI_MOBILE
Apr  9 22:29:20 ubuntu kernel: [   64.367384] usb 2-1.2: Manufacturer: HUAWEI_MOBILE
Apr  9 22:29:21 ubuntu kernel: [   64.459900] usbcore: registered new interface driver usbserial
Apr  9 22:29:21 ubuntu kernel: [   64.459910] usbcore: registered new interface driver usbserial_generic
Apr  9 22:29:21 ubuntu kernel: [   64.459918] usbserial: USB Serial support registered for generic
Apr  9 22:29:21 ubuntu kernel: [   64.507601] usbcore: registered new interface driver option
Apr  9 22:29:21 ubuntu kernel: [   64.507614] usbserial: USB Serial support registered for GSM modem (1-port)
Apr  9 22:29:21 ubuntu kernel: [   64.507691] option 2-1.2:1.0: GSM modem (1-port) converter detected
Apr  9 22:29:21 ubuntu kernel: [   64.507963] usb 2-1.2: GSM modem (1-port) converter now attached to ttyUSB0
Apr  9 22:29:21 ubuntu kernel: [   64.535895] usbcore: registered new interface driver cdc_ncm
Apr  9 22:29:21 ubuntu kernel: [   64.542625] usbcore: registered new interface driver cdc_wdm
Apr  9 22:29:21 ubuntu kernel: [   64.579935] huawei_cdc_ncm 2-1.2:1.1: MAC-Address: 00:1e:10:1f:00:00
Apr  9 22:29:21 ubuntu kernel: [   64.579940] huawei_cdc_ncm 2-1.2:1.1: setting rx_max = 16384
Apr  9 22:29:21 ubuntu kernel: [   64.587318] huawei_cdc_ncm 2-1.2:1.1: NDP will be placed at end of frame for this device.
Apr  9 22:29:21 ubuntu kernel: [   64.587427] huawei_cdc_ncm 2-1.2:1.1: cdc-wdm1: USB WDM device
Apr  9 22:29:21 ubuntu kernel: [   64.587579] huawei_cdc_ncm 2-1.2:1.1 wwan0: register 'huawei_cdc_ncm' at usb-0000:00:1d.0-1.2, Huawei CDC NC
M device, 00:1e:10:1f:00:00

Portanto, no Ubuntu 15.10 existem entradas adicionais "usbcore" e "usbserial" registradas e também a interface eth wwan0 está sendo renomeada para wwx001e101f0000. Vou tentar atualizar o kernel do meu Ubuntu 14.04 para a versão superior e verificar se ele funcionará lá.

Nota importante: Ao fazer meus testes, instalei a imagem iso do Ubuntu Server 14.04.2. Este tinha uma versão mais antiga do kernel 3.x. Agora eu baixei o 14.04.4 do site do Ubuntu e após a instalação eu posso ver que ele tinha o kernel 4.2. Interessante é no meu servidor de "produção" Eu tenho o Ubuntu Server versão 14.04.4, mas o Kernel lá é 3.16: Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.16.0-53-generic x86_64) . Eu atualizo o servidor regularmente, mas parece que por algum motivo o linux-generci-lts-wily está incluído no 14.04.4 baixado, mas não está presente no meu 14.04.4 que foi atualizado várias vezes.

Nova instalação de 14.04.4:

$ sudo dpkg -l linux-generic-lts-*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                          Version             Architecture        Description
+++-=============================-===================-===================-================================================================
ii  linux-generic-lts-wily        4.2.0.27.21         amd64               Complete Generic Linux kernel and headers

Então apt-get install o linux-generic-lts-wily resolveu o problema no meu Ubuntu Server - ele instalou o kernel 4.2 e com este ele funciona corretamente.

    
por user241281 09.04.2016 / 14:38

1 resposta

3

Após mais testes, descobri que eu tinha a versão 3.16 do kernel no meu Ubuntu Server 14.04.4. Com esta versão do kernel, o Huawei E3372H não funcionou corretamente no modo cdc_ncm. A solução é atualizar o kernel para 4.2. Em seguida, a conexão com a Internet pode ser feita com esses comandos simples (assumindo que o modem tenha criado / dev / ttyUSB0, o APN é "internet"):

Este comando irá conectar o stick ao NetWare LTE (internet é um APN, então outros provedores podem usar um nome APN diferente):

echo -e "AT^NDISDUP=1,1,\"internet\"\r" > /dev/ttyUSB0

Este comando irá adquirir o endereço IP para a interface wwan0:

dhclient wwan0
    
por user241281 10.04.2016 / 07:23