Я подключил «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
В чем причина?
Можно ли редактировать / просматривать этот файл, а также дать некоторые дополнительные подробности относительно этого?
Если Вы работаете lsusb
терминальная команда, Вы будете видеть, какая микросхема установлена в Вашем аппаратном ключе. Ваше устройство
05c6:6001 Qualcomm, Inc.
В большинстве случаев Linux определяет аппаратный ключ кодом микросхемы 12d1:1506
.
Некоторые устройства неявно определяются в option
модуль ядра поставщиком и идентификаторами продукта, но некоторые определяются некоторыми другими параметрами.
Ваше устройство работает сетевой платой, не последовательным модемом, и оно определяется по-другому.
Вы видите в своем выводе Cls=e0(wlcon)
это означает, что устройство является a 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
У меня такое же поведение с моим 3G ключом. Ubuntu уже имеет встроенную поддержку, а ОС Windows - нет. Когда вы подключаете ключ в Windows, ОС автоматически устанавливает драйверы, которые находятся на ключе.
Linux (и поэтому Ubuntu) работает с "универсальными" устройствами. "Универсальный" означает 1 модуль (иначе "драйвер"), который поддерживает много устройств. Не каждый производитель этих аппаратных ключей имеют их собственную микросхему в этих аппаратных ключах. Они склонны покупать их в больших количествах от того же производителя поэтому внутренне, они идентичны другим аппаратным ключам с помощью той же микросхемы.
Для Linux/Ubuntu, который обычно означает, кто-то использовал аппаратный ключ с Linux с тем же чипсетом, как Вы имеете, вычисленный, как заставить его работать, и кто-то обновил тот универсальный драйвер, таким образом, это получило поддержку того чипсета. Это означает, что то устройство поддерживается из поля на Linux.
В Windows у каждого продавца того аппаратного ключа будет его собственное программное обеспечение с тем аппаратным ключом и также их собственным (но возможно просто немного отличающийся) драйвер для соглашений с ним.
Linux уже содержит все необходимые универсальные драйверы, которые требуются большинством устройств там. Это возможно, потому что Linux приводится в действие огромным сообществом разработчиков ПО с открытым исходным кодом (которые удивительно в наше время включают Microsoft также.)
Это не означает не установку собственных драйверов Вы несомненно можете.