私はPCに「3Gドングル」を接続し、Ubuntu 14.04でドングルのサポートソフトウェアを手動でインストールせずに自動的に接続する方法を疑問に思いましたが、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
terminalコマンドを実行すると、ドングルにインストールされているチップが表示されます。お使いのデバイスは
05c6:6001 Qualcomm, Inc.
ほとんどの場合、Linuxはチップコード12d1:1506
でドングルを識別します。
一部のデバイスは、ベンダーIDと製品IDによって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 OSには組み込まれていません。 Windowsでドングルを差し込むと、OSはドングルにあるドライバーを自動的にインストールします。