Emite tethering USB com o Verizon MiFi 7730L (Novatel)

0

A Verizon atualizou recentemente o firmware no MiFi 7730L, que faz com que o dispositivo se apresente de maneira diferente quando conectado à porta USB. Eu uso esses dispositivos como modems USB em um punhado de diferentes sistemas Linux. No CentOS 7, por exemplo, esta atualização causou uma mudança do módulo do kernel rndis_host para o módulo cdc_ether. O mesmo acontece no meu ASUS RT-AC68U.

No entanto, tenho um SDR (Ettus E310) com uma imagem do Linux aberta integrada, que agora está tendo problemas com este dispositivo. O firmware anterior do 7730L funcionou bem com o driver rndis_host, mas agora estou me deparando com um problema estranho. Quando eu conecto o 7730L no SDR, ele é detectado inicialmente e o driver cdc_ether é carregado, mas ele parece essencialmente desconectar e conectar novamente e desta vez nenhum driver é carregado. Dê uma olhada na saída relevante do dmesg e na saída dos dispositivos usb abaixo.

saída do dmesg

[  796.838413] usb 1-1.2: new high-speed USB device number 10 using zynq-ehci
[  796.988910] hid-generic 0003:1410:B020.0004: device has no listeners, quitting
[  807.352860] usb 1-1.2: USB disconnect, device number 10
[  807.608502] usb 1-1.2: new high-speed USB device number 11 using zynq-ehci
[  807.762020] cdc_ether 1-1.2:1.0 eth1: register 'cdc_ether' at usb-zynq-ehci.0-1.2, CDC Ethernet Device, 00:15:ff:41:90:41
[  807.780248] hid-generic 0003:1410:B020.0005: device has no listeners, quitting
[  817.592812] usb 1-1.2: USB disconnect, device number 11
[  817.598081] cdc_ether 1-1.2:1.0 eth1: unregister 'cdc_ether' usb-zynq-ehci.0-1.2, CDC Ethernet Device
[  817.898439] usb 1-1.2: new high-speed USB device number 12 using zynq-ehci
[  818.040818] hid-generic 0003:1410:B020.0006: device has no listeners, quitting

Note que entre 807 e 817 eu tenho um dispositivo ethernet válido presente. Eu não entendo o que solicita o "USB desconectar" no 817.

saída usb-devices inicialmente

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 15 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  3
P:  Vendor=1410 ProdID=b020 Rev=03.10
S:  Manufacturer=Novatel Wireless
S:  Product=MiFi 7730L
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=(none)
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
I:  If#= 2 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid

saída de dispositivos USB entre 807 e 817 na saída do dmesg

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 14 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  3
P:  Vendor=1410 ProdID=b020 Rev=03.10
S:  Manufacturer=Novatel Wireless
S:  Product=MiFi 7730L
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:  If#= 2 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid

Depois do 817, ele volta para a saída inicial acima (mostrando nenhum para o driver em If 0 e 1.

Para referência, quando eu conecto um 7730L que ainda está no firmware antigo, a saída dos dispositivos dmesg e usb é esta:

dmesg para firmware antigo

[ 1170.598410] usb 1-1.2: new high-speed USB device number 16 using zynq-ehci
[ 1170.760585] rndis_host 1-1.2:1.0 eth1: register 'rndis_host' at usb-zynq-ehci.0-1.2, RNDIS device, 00:15:ff:41:92:57
[ 1170.771189] usbcore: registered new interface driver rndis_host

usb-devices para firmware antigo

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 16 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=02(commc) Sub=06 Prot=00 MxPS=64 #Cfgs=  2
P:  Vendor=1410 ProdID=b020 Rev=03.10
S:  Manufacturer=Novatel Wireless
S:  Product=MiFi 7730L
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host

Eu li bastante sobre o usb_modeswitch, mas até onde eu sei, o 7730L não é realmente um modulador. Por alguma razão, é apenas conectar / reconectar, o que, por algum motivo, faz com que o driver não seja ligado ao dispositivo.

Anexei tanta informação quanto parecia relevante, mas se você estiver lendo isso e quiser mais, por favor, deixe-me saber e ficarei feliz em publicá-la. Eu vou estar batendo minha cabeça na parede tentando descobrir isso no futuro previsível. :)

    
por Justin Bennett 14.08.2018 / 21:10

0 respostas