Como meu Dongle funciona automaticamente?

3

Conectei um '3G Dongle' ao meu PC e imaginei como ele se conectava automaticamente no Ubuntu 14.04 sem instalar nenhum software de suporte do Dongle manualmente, mas instalei isso enquanto estava trabalhando no Windows.

lsusb

Bus 001 Device 004: ID 05c6:6001 Qualcomm, Inc.

usb-devices | awk '/6001/' RS=

Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  4 Spd=480 MxCh= 0> Ver= 2.00
Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
Vendor=05c6 ProdID=6001 Rev=00.00
Manufacturer=Qualcomm, Incorporated
Product=Qualcomm mobile device
#Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=06 Prot=00 Driver=rndis_host

Qual é o motivo?

Podemos editar / visualizar esse arquivo e também dar alguns detalhes adicionais sobre isso?

    
por Sridhar 17.08.2015 / 09:09

4 respostas

2

Se você executar o comando lsusb terminal, verá qual chip está instalado no seu dongle. Seu dispositivo é

05c6:6001 Qualcomm, Inc.

Na maioria dos casos, o Linux identifica o dongle pelo código de chip 12d1:1506 .

Alguns dos dispositivos são definidos implicitamente no módulo do kernel option pelos IDs do fornecedor e do produto, mas alguns são identificados por alguns outros parâmetros.

O seu dispositivo funciona como uma placa de rede, não como um modem serial e é identificado de forma diferente.

Você pode ver na sua saída Cls=e0(wlcon) , o que significa que o dispositivo é um USB_CLASS_WIRELESS_CONTROLLER . Isso é definido em /include/uapi/linux/usb/ch9.h .

É gerenciado pelo driver rndis_host . Está vinculado a ele porque Sub=01 Prot=03 .

Isso é definido no /drivers/net/usb/rndis_host.c em

USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
.driver_info = (unsigned long) &rndis_info,

Não procure esses arquivos no seu computador. Eles estão na árvore de fontes do Linux. Por exemplo. rndis_host.c

    
por Pilot6 21.08.2015 / 16:03
7

O Linux (e, portanto, o Ubuntu) funciona com dispositivos "genéricos". "Genérico" significa 1 módulo (A.k.a. "driver") que suporta muitos dispositivos. Nem todo fabricante desses dongles tem seu próprio chip dentro desses dongles. Eles tendem a comprá-los em grandes quantidades do mesmo fabricante, então internamente eles são idênticos a outros dongles usando o mesmo chip.

Para Linux / Ubuntu, normalmente significa que alguém usou um dongle com o Linux com o mesmo chipset que você, descobriu como fazê-lo funcionar e alguém atualizou esse driver genérico para obter suporte para esse chipset. Isso significa que esse dispositivo é suportado fora da caixa no Linux.

No Windows, cada vendedor desse dongle terá seu próprio software com esse dongle e também seu próprio driver (mas talvez apenas um pouco diferente) para acompanhá-lo.

    
por Rinzwind 17.08.2015 / 10:20
1

O Linux já contém todos os drivers genéricos necessários que são exigidos pela maioria dos dispositivos disponíveis. Isso é possível porque o Linux é alimentado por uma enorme comunidade de desenvolvedores de software livre (o que surpreendentemente hoje inclui a Microsoft também).

Isso não significa que você não instalou seus próprios drivers, você certamente pode.

    
por akabhirav 21.08.2015 / 20:40
0

Eu tenho um comportamento idêntico ao meu dongle 3G. O Ubuntu já tem suporte embutido enquanto o Windows OS não. Quando você conecta o dongle no Windows, o SO instala os drivers que estão no dongle automaticamente.

    
por nobody 17.08.2015 / 10:15