Как мой ключ работает автоматически?

Я подключил "3G Dongle" к своему ПК, и мне было интересно, как он автоматически подключался в Ubuntu 14.04 без установки какого-либо вспомогательного программного обеспечения Dongle вручную, но я установил его, когда работал в 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

Какова причина?

Можем ли мы отредактировать / просмотреть этот файл, а также дать некоторые дополнительные сведения об этом?

4 ответа

Решение

Если вы бежите lsusb Терминальная команда, вы увидите, какой чип установлен в вашем ключе. Ваше устройство

05c6:6001 Qualcomm, Inc.

В большинстве случаев Linux идентифицирует ключ по коду чипа 12d1:1506,

Некоторые из устройств неявно определены в option модуль ядра по поставщику и идентификатору продукта, но некоторые идентифицируются некоторыми другими параметрами.

Ваше устройство работает как сетевая карта, а не как последовательный модем, и оно идентифицируется по-разному.

Вы можете увидеть в своем выводе Cls=e0(wlcon) это означает, что устройство является USB_CLASS_WIRELESS_CONTROLLER, Это определено в /include/uapi/linux/usb/ch9.h,

Управляется rndis_host Водитель. Это связано с этим, потому что Sub=01 Prot=03,

Это определено в /drivers/net/usb/rndis_host.c в

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

Не ищите эти файлы на вашем компьютере. Они находятся в дереве исходников Linux. Например, rndis_host.c

Linux (и, следовательно, Ubuntu) работает с "общими" устройствами. "Универсальный" означает 1 модуль (он же "драйвер"), который поддерживает множество устройств. Не у каждого производителя этих ключей есть свой чип внутри этих ключей. Они, как правило, закупают их в больших количествах у одного и того же производителя, поэтому внутренне они идентичны другим ключам, использующим тот же чип.

Для Linux/Ubuntu это обычно означает, что кто-то использовал ключ с Linux с тем же чипсетом, что и у вас, выяснил, как заставить его работать, и кто-то обновил этот универсальный драйвер, чтобы он получил поддержку этого чипсета. Это означает, что это устройство поддерживается в Linux из коробки.

В Windows каждый продавец этого ключа будет иметь свое собственное программное обеспечение с этим ключом, а также свой собственный (но, может быть, немного другой) драйвер, чтобы согласиться с ним.

Linux уже содержит все необходимые общие драйверы, которые требуются большинству устройств. Это возможно, потому что Linux работает на огромном сообществе разработчиков с открытым исходным кодом (к удивлению, в наши дни в него входит и Microsoft).

Это не означает, что вы не устанавливаете свои собственные драйверы, вы наверняка можете.

У меня такое же поведение с моим 3G ключом. Ubuntu уже имеет встроенную поддержку, а ОС Windows - нет. Когда вы подключаете ключ в Windows, ОС автоматически устанавливает драйверы, которые находятся на ключе.

Другие вопросы по тегам