diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ABI/testing/sysfs-devices-platform-_UDC_-gadget | 12 | ||||
-rw-r--r-- | Documentation/usb/ehci.txt | 2 | ||||
-rw-r--r-- | Documentation/usb/gadget_multi.txt | 150 | ||||
-rw-r--r-- | Documentation/usb/gadget_serial.txt | 87 | ||||
-rw-r--r-- | Documentation/usb/hotplug.txt | 4 | ||||
-rw-r--r-- | Documentation/usb/linux-cdc-acm.inf | 107 | ||||
-rw-r--r-- | Documentation/usb/linux.inf | 228 |
7 files changed, 329 insertions, 261 deletions
diff --git a/Documentation/ABI/testing/sysfs-devices-platform-_UDC_-gadget b/Documentation/ABI/testing/sysfs-devices-platform-_UDC_-gadget index 34034027b13c..d548eaac230a 100644 --- a/Documentation/ABI/testing/sysfs-devices-platform-_UDC_-gadget +++ b/Documentation/ABI/testing/sysfs-devices-platform-_UDC_-gadget | |||
@@ -7,3 +7,15 @@ Description: | |||
7 | 0 -> resumed | 7 | 0 -> resumed |
8 | 8 | ||
9 | (_UDC_ is the name of the USB Device Controller driver) | 9 | (_UDC_ is the name of the USB Device Controller driver) |
10 | |||
11 | What: /sys/devices/platform/_UDC_/gadget/gadget-lunX/nofua | ||
12 | Date: July 2010 | ||
13 | Contact: Andy Shevchenko <andy.shevchenko@gmail.com> | ||
14 | Description: | ||
15 | Show or set the reaction on the FUA (Force Unit Access) bit in | ||
16 | the SCSI WRITE(10,12) commands when a gadget in USB Mass | ||
17 | Storage mode. | ||
18 | |||
19 | Possible values are: | ||
20 | 1 -> ignore the FUA flag | ||
21 | 0 -> obey the FUA flag | ||
diff --git a/Documentation/usb/ehci.txt b/Documentation/usb/ehci.txt index 1536b7e75134..9dcafa7d930d 100644 --- a/Documentation/usb/ehci.txt +++ b/Documentation/usb/ehci.txt | |||
@@ -9,7 +9,7 @@ compatible with the USB 1.1 standard. It defines three transfer speeds: | |||
9 | - "Low Speed" 1.5 Mbit/sec | 9 | - "Low Speed" 1.5 Mbit/sec |
10 | 10 | ||
11 | USB 1.1 only addressed full speed and low speed. High speed devices | 11 | USB 1.1 only addressed full speed and low speed. High speed devices |
12 | can be used on USB 1.1 systems, but they slow down to USB 1.1 speeds. | 12 | can be used on USB 1.1 systems, but they slow down to USB 1.1 speeds. |
13 | 13 | ||
14 | USB 1.1 devices may also be used on USB 2.0 systems. When plugged | 14 | USB 1.1 devices may also be used on USB 2.0 systems. When plugged |
15 | into an EHCI controller, they are given to a USB 1.1 "companion" | 15 | into an EHCI controller, they are given to a USB 1.1 "companion" |
diff --git a/Documentation/usb/gadget_multi.txt b/Documentation/usb/gadget_multi.txt new file mode 100644 index 000000000000..80f4ef0eb75b --- /dev/null +++ b/Documentation/usb/gadget_multi.txt | |||
@@ -0,0 +1,150 @@ | |||
1 | -*- org -*- | ||
2 | |||
3 | * Overview | ||
4 | |||
5 | The Multifunction Composite Gadget (or g_multi) is a composite gadget | ||
6 | that makes extensive use of the composite framework to provide | ||
7 | a... multifunction gadget. | ||
8 | |||
9 | In it's standard configuration it provides a single USB configuration | ||
10 | with RNDIS[1] (that is Ethernet), USB CDC[2] ACM (that is serial) and | ||
11 | USB Mass Storage functions. | ||
12 | |||
13 | A CDC ECM (Ethernet) function may be turned on via a Kconfig option | ||
14 | and RNDIS can be turned off. If they are both enabled the gadget will | ||
15 | have two configurations -- one with RNDIS and another with CDC ECM[3]. | ||
16 | |||
17 | Please not that if you use non-standard configuration (that is enable | ||
18 | CDC ECM) you may need to change vendor and/or product ID. | ||
19 | |||
20 | * Host drivers | ||
21 | |||
22 | To make use of the gadget one needs to make it work on host side -- | ||
23 | without that there's no hope of achieving anything with the gadget. | ||
24 | As one might expect, things one need to do very from system to system. | ||
25 | |||
26 | ** Linux host drivers | ||
27 | |||
28 | Since the gadget uses standard composite framework and appears as such | ||
29 | to Linux host it does not need any additional drivers on Linux host | ||
30 | side. All the functions are handled by respective drivers developed | ||
31 | for them. | ||
32 | |||
33 | This is also true for two configuration set-up with RNDIS | ||
34 | configuration being the first one. Linux host will use the second | ||
35 | configuration with CDC ECM which should work better under Linux. | ||
36 | |||
37 | ** Windows host drivers | ||
38 | |||
39 | For the gadget two work under Windows two conditions have to be met: | ||
40 | |||
41 | *** Detecting as composite gadget | ||
42 | |||
43 | First of all, Windows need to detect the gadget as an USB composite | ||
44 | gadget which on its own have some conditions[4]. If they are met, | ||
45 | Windows lets USB Generic Parent Driver[5] handle the device which then | ||
46 | tries to much drivers for each individual interface (sort of, don't | ||
47 | get into too many details). | ||
48 | |||
49 | The good news is: you do not have to worry about most of the | ||
50 | conditions! | ||
51 | |||
52 | The only thing to worry is that the gadget has to have a single | ||
53 | configuration so a dual RNDIS and CDC ECM gadget won't work unless you | ||
54 | create a proper INF -- and of course, if you do submit it! | ||
55 | |||
56 | *** Installing drivers for each function | ||
57 | |||
58 | The other, trickier thing is making Windows install drivers for each | ||
59 | individual function. | ||
60 | |||
61 | For mass storage it is trivial since Windows detect it's an interface | ||
62 | implementing USB Mass Storage class and selects appropriate driver. | ||
63 | |||
64 | Things are harder with RDNIS and CDC ACM. | ||
65 | |||
66 | **** RNDIS | ||
67 | |||
68 | To make Windows select RNDIS drivers for the first function in the | ||
69 | gadget, one needs to use the [[file:linux.inf]] file provided with this | ||
70 | document. It "attaches" Window's RNDIS driver to the first interface | ||
71 | of the gadget. | ||
72 | |||
73 | Please note, that while testing we encountered some issues[6] when | ||
74 | RNDIS was not the first interface. You do not need to worry abut it | ||
75 | unless you are trying to develop your own gadget in which case watch | ||
76 | out for this bug. | ||
77 | |||
78 | **** CDC ACM | ||
79 | |||
80 | Similarly, [[file:linux-cdc-acm.inf]] is provided for CDC ACM. | ||
81 | |||
82 | **** Customising the gadget | ||
83 | |||
84 | If you intend to hack the g_multi gadget be advised that rearranging | ||
85 | functions will obviously change interface numbers for each of the | ||
86 | functionality. As an effect provided INFs won't work since they have | ||
87 | interface numbers hard-coded in them (it's not hard to change those | ||
88 | though[7]). | ||
89 | |||
90 | This also means, that after experimenting with g_multi and changing | ||
91 | provided functions one should change gadget's vendor and/or product ID | ||
92 | so there will be no collision with other customised gadgets or the | ||
93 | original gadget. | ||
94 | |||
95 | Failing to comply may cause brain damage after wondering for hours why | ||
96 | things don't work as intended before realising Windows have cached | ||
97 | some drivers information (changing USB port may sometimes help plus | ||
98 | you might try using USBDeview[8] to remove the phantom device). | ||
99 | |||
100 | **** INF testing | ||
101 | |||
102 | Provided INF files have been tested on Windows XP SP3, Windows Vista | ||
103 | and Windows 7, all 32-bit versions. It should work on 64-bit versions | ||
104 | as well. It most likely won't work on Windows prior to Windows XP | ||
105 | SP2. | ||
106 | |||
107 | ** Other systems | ||
108 | |||
109 | At this moment, drivers for any other systems have not been tested. | ||
110 | Knowing how MacOS is based on BSD and BSD is an Open Source it is | ||
111 | believed that it should (read: "I have no idea whether it will") work | ||
112 | out-of-the-box. | ||
113 | |||
114 | For more exotic systems I have even less to say... | ||
115 | |||
116 | Any testing and drivers *are* *welcome*! | ||
117 | |||
118 | * Authors | ||
119 | |||
120 | This document has been written by Michal Nazarewicz | ||
121 | ([[mailto:mina86@mina86.com]]). INF files have been hacked with | ||
122 | support of Marek Szyprowski ([[mailto:m.szyprowski@samsung.com]]) and | ||
123 | Xiaofan Chen ([[mailto:xiaofanc@gmail.com]]) basing on the MS RNDIS | ||
124 | template[9], Microchip's CDC ACM INF file and David Brownell's | ||
125 | ([[mailto:dbrownell@users.sourceforge.net]]) original INF files. | ||
126 | |||
127 | * Footnotes | ||
128 | |||
129 | [1] Remote Network Driver Interface Specification, | ||
130 | [[http://msdn.microsoft.com/en-us/library/ee484414.aspx]]. | ||
131 | |||
132 | [2] Communications Device Class Abstract Control Model, spec for this | ||
133 | and other USB classes can be found at | ||
134 | [[http://www.usb.org/developers/devclass_docs/]]. | ||
135 | |||
136 | [3] CDC Ethernet Control Model. | ||
137 | |||
138 | [4] [[http://msdn.microsoft.com/en-us/library/ff537109(v=VS.85).aspx]] | ||
139 | |||
140 | [5] [[http://msdn.microsoft.com/en-us/library/ff539234(v=VS.85).aspx]] | ||
141 | |||
142 | [6] To put it in some other nice words, Windows failed to respond to | ||
143 | any user input. | ||
144 | |||
145 | [7] You may find [[http://www.cygnal.org/ubb/Forum9/HTML/001050.html]] | ||
146 | useful. | ||
147 | |||
148 | [8] http://www.nirsoft.net/utils/usb_devices_view.html | ||
149 | |||
150 | [9] [[http://msdn.microsoft.com/en-us/library/ff570620.aspx]] | ||
diff --git a/Documentation/usb/gadget_serial.txt b/Documentation/usb/gadget_serial.txt index eac7df94d8e3..61e67f6a20a0 100644 --- a/Documentation/usb/gadget_serial.txt +++ b/Documentation/usb/gadget_serial.txt | |||
@@ -151,88 +151,23 @@ instructions below to install the host side driver. | |||
151 | 151 | ||
152 | Installing the Windows Host ACM Driver | 152 | Installing the Windows Host ACM Driver |
153 | -------------------------------------- | 153 | -------------------------------------- |
154 | To use the Windows ACM driver you must have the files "gserial.inf" | 154 | To use the Windows ACM driver you must have the "linux-cdc-acm.inf" |
155 | and "usbser.sys" together in a folder on the Windows machine. | 155 | file (provided along this document) which supports all recent versions |
156 | 156 | of Windows. | |
157 | The "gserial.inf" file is given here. | ||
158 | |||
159 | -------------------- CUT HERE -------------------- | ||
160 | [Version] | ||
161 | Signature="$Windows NT$" | ||
162 | Class=Ports | ||
163 | ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} | ||
164 | Provider=%LINUX% | ||
165 | DriverVer=08/17/2004,0.0.2.0 | ||
166 | ; Copyright (C) 2004 Al Borchers (alborchers@steinerpoint.com) | ||
167 | |||
168 | [Manufacturer] | ||
169 | %LINUX%=GSerialDeviceList | ||
170 | |||
171 | [GSerialDeviceList] | ||
172 | %GSERIAL%=GSerialInstall, USB\VID_0525&PID_A4A7 | ||
173 | |||
174 | [DestinationDirs] | ||
175 | DefaultDestDir=10,System32\Drivers | ||
176 | |||
177 | [GSerialInstall] | ||
178 | CopyFiles=GSerialCopyFiles | ||
179 | AddReg=GSerialAddReg | ||
180 | |||
181 | [GSerialCopyFiles] | ||
182 | usbser.sys | ||
183 | |||
184 | [GSerialAddReg] | ||
185 | HKR,,DevLoader,,*ntkern | ||
186 | HKR,,NTMPDriver,,usbser.sys | ||
187 | HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" | ||
188 | |||
189 | [GSerialInstall.Services] | ||
190 | AddService = usbser,0x0002,GSerialService | ||
191 | |||
192 | [GSerialService] | ||
193 | DisplayName = %GSERIAL_DISPLAY_NAME% | ||
194 | ServiceType = 1 ; SERVICE_KERNEL_DRIVER | ||
195 | StartType = 3 ; SERVICE_DEMAND_START | ||
196 | ErrorControl = 1 ; SERVICE_ERROR_NORMAL | ||
197 | ServiceBinary = %10%\System32\Drivers\usbser.sys | ||
198 | LoadOrderGroup = Base | ||
199 | |||
200 | [Strings] | ||
201 | LINUX = "Linux" | ||
202 | GSERIAL = "Gadget Serial" | ||
203 | GSERIAL_DISPLAY_NAME = "USB Gadget Serial Driver" | ||
204 | -------------------- CUT HERE -------------------- | ||
205 | |||
206 | The "usbser.sys" file comes with various versions of Windows. | ||
207 | For example, it can be found on Windows XP typically in | ||
208 | |||
209 | C:\WINDOWS\Driver Cache\i386\driver.cab | ||
210 | |||
211 | Or it can be found on the Windows 98SE CD in the "win98" folder | ||
212 | in the "DRIVER11.CAB" through "DRIVER20.CAB" cab files. You will | ||
213 | need the DOS "expand" program, the Cygwin "cabextract" program, or | ||
214 | a similar program to unpack these cab files and extract "usbser.sys". | ||
215 | |||
216 | For example, to extract "usbser.sys" into the current directory | ||
217 | on Windows XP, open a DOS window and run a command like | ||
218 | |||
219 | expand C:\WINDOWS\Driver~1\i386\driver.cab -F:usbser.sys . | ||
220 | |||
221 | (Thanks to Nishant Kamat for pointing out this DOS command.) | ||
222 | 157 | ||
223 | When the gadget serial driver is loaded and the USB device connected | 158 | When the gadget serial driver is loaded and the USB device connected |
224 | to the Windows host with a USB cable, Windows should recognize the | 159 | to the Windows host with a USB cable, Windows should recognize the |
225 | gadget serial device and ask for a driver. Tell Windows to find the | 160 | gadget serial device and ask for a driver. Tell Windows to find the |
226 | driver in the folder that contains "gserial.inf" and "usbser.sys". | 161 | driver in the folder that contains the "linux-cdc-acm.inf" file. |
227 | 162 | ||
228 | For example, on Windows XP, when the gadget serial device is first | 163 | For example, on Windows XP, when the gadget serial device is first |
229 | plugged in, the "Found New Hardware Wizard" starts up. Select | 164 | plugged in, the "Found New Hardware Wizard" starts up. Select |
230 | "Install from a list or specific location (Advanced)", then on | 165 | "Install from a list or specific location (Advanced)", then on the |
231 | the next screen select "Include this location in the search" and | 166 | next screen select "Include this location in the search" and enter the |
232 | enter the path or browse to the folder containing "gserial.inf" and | 167 | path or browse to the folder containing the "linux-cdc-acm.inf" file. |
233 | "usbser.sys". Windows will complain that the Gadget Serial driver | 168 | Windows will complain that the Gadget Serial driver has not passed |
234 | has not passed Windows Logo testing, but select "Continue anyway" | 169 | Windows Logo testing, but select "Continue anyway" and finish the |
235 | and finish the driver installation. | 170 | driver installation. |
236 | 171 | ||
237 | On Windows XP, in the "Device Manager" (under "Control Panel", | 172 | On Windows XP, in the "Device Manager" (under "Control Panel", |
238 | "System", "Hardware") expand the "Ports (COM & LPT)" entry and you | 173 | "System", "Hardware") expand the "Ports (COM & LPT)" entry and you |
@@ -345,5 +280,3 @@ you should be able to send data back and forth between the gadget | |||
345 | side and host side systems. Anything you type on the terminal | 280 | side and host side systems. Anything you type on the terminal |
346 | window on the gadget side should appear in the terminal window on | 281 | window on the gadget side should appear in the terminal window on |
347 | the host side and vice versa. | 282 | the host side and vice versa. |
348 | |||
349 | |||
diff --git a/Documentation/usb/hotplug.txt b/Documentation/usb/hotplug.txt index f53170665f37..4c945716a660 100644 --- a/Documentation/usb/hotplug.txt +++ b/Documentation/usb/hotplug.txt | |||
@@ -10,7 +10,7 @@ immediately usable. That means the system must do many things, including: | |||
10 | 10 | ||
11 | - Bind a driver to that device. Bus frameworks do that using a | 11 | - Bind a driver to that device. Bus frameworks do that using a |
12 | device driver's probe() routine. | 12 | device driver's probe() routine. |
13 | 13 | ||
14 | - Tell other subsystems to configure the new device. Print | 14 | - Tell other subsystems to configure the new device. Print |
15 | queues may need to be enabled, networks brought up, disk | 15 | queues may need to be enabled, networks brought up, disk |
16 | partitions mounted, and so on. In some cases these will | 16 | partitions mounted, and so on. In some cases these will |
@@ -84,7 +84,7 @@ USB MODUTILS SUPPORT | |||
84 | Current versions of module-init-tools will create a "modules.usbmap" file | 84 | Current versions of module-init-tools will create a "modules.usbmap" file |
85 | which contains the entries from each driver's MODULE_DEVICE_TABLE. Such | 85 | which contains the entries from each driver's MODULE_DEVICE_TABLE. Such |
86 | files can be used by various user mode policy agents to make sure all the | 86 | files can be used by various user mode policy agents to make sure all the |
87 | right driver modules get loaded, either at boot time or later. | 87 | right driver modules get loaded, either at boot time or later. |
88 | 88 | ||
89 | See <linux/usb.h> for full information about such table entries; or look | 89 | See <linux/usb.h> for full information about such table entries; or look |
90 | at existing drivers. Each table entry describes one or more criteria to | 90 | at existing drivers. Each table entry describes one or more criteria to |
diff --git a/Documentation/usb/linux-cdc-acm.inf b/Documentation/usb/linux-cdc-acm.inf new file mode 100644 index 000000000000..612e7220fb29 --- /dev/null +++ b/Documentation/usb/linux-cdc-acm.inf | |||
@@ -0,0 +1,107 @@ | |||
1 | ; Windows USB CDC ACM Setup File | ||
2 | |||
3 | ; Based on INF template which was: | ||
4 | ; Copyright (c) 2000 Microsoft Corporation | ||
5 | ; Copyright (c) 2007 Microchip Technology Inc. | ||
6 | ; likely to be covered by the MLPL as found at: | ||
7 | ; <http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL>. | ||
8 | ; For use only on Windows operating systems. | ||
9 | |||
10 | [Version] | ||
11 | Signature="$Windows NT$" | ||
12 | Class=Ports | ||
13 | ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} | ||
14 | Provider=%Linux% | ||
15 | DriverVer=11/15/2007,5.1.2600.0 | ||
16 | |||
17 | [Manufacturer] | ||
18 | %Linux%=DeviceList, NTamd64 | ||
19 | |||
20 | [DestinationDirs] | ||
21 | DefaultDestDir=12 | ||
22 | |||
23 | |||
24 | ;------------------------------------------------------------------------------ | ||
25 | ; Windows 2000/XP/Vista-32bit Sections | ||
26 | ;------------------------------------------------------------------------------ | ||
27 | |||
28 | [DriverInstall.nt] | ||
29 | include=mdmcpq.inf | ||
30 | CopyFiles=DriverCopyFiles.nt | ||
31 | AddReg=DriverInstall.nt.AddReg | ||
32 | |||
33 | [DriverCopyFiles.nt] | ||
34 | usbser.sys,,,0x20 | ||
35 | |||
36 | [DriverInstall.nt.AddReg] | ||
37 | HKR,,DevLoader,,*ntkern | ||
38 | HKR,,NTMPDriver,,USBSER.sys | ||
39 | HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" | ||
40 | |||
41 | [DriverInstall.nt.Services] | ||
42 | AddService=usbser, 0x00000002, DriverService.nt | ||
43 | |||
44 | [DriverService.nt] | ||
45 | DisplayName=%SERVICE% | ||
46 | ServiceType=1 | ||
47 | StartType=3 | ||
48 | ErrorControl=1 | ||
49 | ServiceBinary=%12%\USBSER.sys | ||
50 | |||
51 | ;------------------------------------------------------------------------------ | ||
52 | ; Vista-64bit Sections | ||
53 | ;------------------------------------------------------------------------------ | ||
54 | |||
55 | [DriverInstall.NTamd64] | ||
56 | include=mdmcpq.inf | ||
57 | CopyFiles=DriverCopyFiles.NTamd64 | ||
58 | AddReg=DriverInstall.NTamd64.AddReg | ||
59 | |||
60 | [DriverCopyFiles.NTamd64] | ||
61 | USBSER.sys,,,0x20 | ||
62 | |||
63 | [DriverInstall.NTamd64.AddReg] | ||
64 | HKR,,DevLoader,,*ntkern | ||
65 | HKR,,NTMPDriver,,USBSER.sys | ||
66 | HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" | ||
67 | |||
68 | [DriverInstall.NTamd64.Services] | ||
69 | AddService=usbser, 0x00000002, DriverService.NTamd64 | ||
70 | |||
71 | [DriverService.NTamd64] | ||
72 | DisplayName=%SERVICE% | ||
73 | ServiceType=1 | ||
74 | StartType=3 | ||
75 | ErrorControl=1 | ||
76 | ServiceBinary=%12%\USBSER.sys | ||
77 | |||
78 | |||
79 | ;------------------------------------------------------------------------------ | ||
80 | ; Vendor and Product ID Definitions | ||
81 | ;------------------------------------------------------------------------------ | ||
82 | ; When developing your USB device, the VID and PID used in the PC side | ||
83 | ; application program and the firmware on the microcontroller must match. | ||
84 | ; Modify the below line to use your VID and PID. Use the format as shown | ||
85 | ; below. | ||
86 | ; Note: One INF file can be used for multiple devices with different | ||
87 | ; VID and PIDs. For each supported device, append | ||
88 | ; ",USB\VID_xxxx&PID_yyyy" to the end of the line. | ||
89 | ;------------------------------------------------------------------------------ | ||
90 | [SourceDisksFiles] | ||
91 | [SourceDisksNames] | ||
92 | [DeviceList] | ||
93 | %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02 | ||
94 | |||
95 | [DeviceList.NTamd64] | ||
96 | %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_0525&PID_A4AB&MI_02 | ||
97 | |||
98 | |||
99 | ;------------------------------------------------------------------------------ | ||
100 | ; String Definitions | ||
101 | ;------------------------------------------------------------------------------ | ||
102 | ;Modify these strings to customize your device | ||
103 | ;------------------------------------------------------------------------------ | ||
104 | [Strings] | ||
105 | Linux = "Linux Developer Community" | ||
106 | DESCRIPTION = "Gadget Serial" | ||
107 | SERVICE = "USB RS-232 Emulation Driver" | ||
diff --git a/Documentation/usb/linux.inf b/Documentation/usb/linux.inf index af71d87d9e94..4dee95851224 100644 --- a/Documentation/usb/linux.inf +++ b/Documentation/usb/linux.inf | |||
@@ -1,200 +1,66 @@ | |||
1 | ; MS-Windows driver config matching some basic modes of the | 1 | ; Based on template INF file found at |
2 | ; Linux-USB Ethernet/RNDIS gadget firmware: | 2 | ; <http://msdn.microsoft.com/en-us/library/ff570620.aspx> |
3 | ; | 3 | ; which was: |
4 | ; - RNDIS plus CDC Ethernet ... this may be familiar as a DOCSIS | 4 | ; Copyright (c) Microsoft Corporation |
5 | ; cable modem profile, and supports most non-Microsoft USB hosts | 5 | ; and released under the MLPL as found at: |
6 | ; | 6 | ; <http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL>. |
7 | ; - RNDIS plus CDC Subset ... used by hardware that incapable of | 7 | ; For use only on Windows operating systems. |
8 | ; full CDC Ethernet support. | ||
9 | ; | ||
10 | ; Microsoft only directly supports RNDIS drivers, and bundled them into XP. | ||
11 | ; The Microsoft "Remote NDIS USB Driver Kit" is currently found at: | ||
12 | ; http://www.microsoft.com/whdc/device/network/ndis/rmndis.mspx | ||
13 | |||
14 | 8 | ||
15 | [Version] | 9 | [Version] |
16 | Signature = "$CHICAGO$" | 10 | Signature = "$Windows NT$" |
17 | Class = Net | 11 | Class = Net |
18 | ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} | 12 | ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} |
19 | Provider = %Linux% | 13 | Provider = %Linux% |
20 | Compatible = 1 | 14 | DriverVer = 06/21/2006,6.0.6000.16384 |
21 | MillenniumPreferred = .ME | ||
22 | DriverVer = 03/30/2004,0.0.0.0 | ||
23 | ; catalog file would be used by WHQL | ||
24 | ;CatalogFile = Linux.cat | ||
25 | 15 | ||
26 | [Manufacturer] | 16 | [Manufacturer] |
27 | %Linux% = LinuxDevices,NT.5.1 | 17 | %Linux% = LinuxDevices,NTx86,NTamd64,NTia64 |
18 | |||
19 | ; Decoration for x86 architecture | ||
20 | [LinuxDevices.NTx86] | ||
21 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 | ||
28 | 22 | ||
29 | [LinuxDevices] | 23 | ; Decoration for x64 architecture |
30 | ; NetChip IDs, used by both firmware modes | 24 | [LinuxDevices.NTamd64] |
31 | %LinuxDevice% = RNDIS, USB\VID_0525&PID_a4a2 | 25 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 |
32 | 26 | ||
33 | [LinuxDevices.NT.5.1] | 27 | ; Decoration for ia64 architecture |
34 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2 | 28 | [LinuxDevices.NTia64] |
29 | %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_0525&PID_a4ab&MI_00 | ||
35 | 30 | ||
31 | ;@@@ This is the common setting for setup | ||
36 | [ControlFlags] | 32 | [ControlFlags] |
37 | ExcludeFromSelect=* | 33 | ExcludeFromSelect=* |
38 | 34 | ||
39 | ; Windows 98, Windows 98 Second Edition specific sections -------- | 35 | ; DDInstall section |
40 | 36 | ; References the in-build Netrndis.inf | |
41 | [RNDIS] | ||
42 | DeviceID = usb8023 | ||
43 | MaxInstance = 512 | ||
44 | DriverVer = 03/30/2004,0.0.0.0 | ||
45 | AddReg = RNDIS_AddReg_98, RNDIS_AddReg_Common | ||
46 | |||
47 | [RNDIS_AddReg_98] | ||
48 | HKR, , DevLoader, 0, *ndis | ||
49 | HKR, , DeviceVxDs, 0, usb8023.sys | ||
50 | HKR, NDIS, LogDriverName, 0, "usb8023" | ||
51 | HKR, NDIS, MajorNdisVersion, 1, 5 | ||
52 | HKR, NDIS, MinorNdisVersion, 1, 0 | ||
53 | HKR, Ndi\Interfaces, DefUpper, 0, "ndis3,ndis4,ndis5" | ||
54 | HKR, Ndi\Interfaces, DefLower, 0, "ethernet" | ||
55 | HKR, Ndi\Interfaces, UpperRange, 0, "ndis3,ndis4,ndis5" | ||
56 | HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" | ||
57 | HKR, Ndi\Install, ndis3, 0, "RNDIS_Install_98" | ||
58 | HKR, Ndi\Install, ndis4, 0, "RNDIS_Install_98" | ||
59 | HKR, Ndi\Install, ndis5, 0, "RNDIS_Install_98" | ||
60 | HKR, Ndi, DeviceId, 0, "USB\VID_0525&PID_a4a2" | ||
61 | |||
62 | [RNDIS_Install_98] | ||
63 | CopyFiles=RNDIS_CopyFiles_98 | ||
64 | |||
65 | [RNDIS_CopyFiles_98] | ||
66 | usb8023.sys, usb8023w.sys, , 0 | ||
67 | rndismp.sys, rndismpw.sys, , 0 | ||
68 | |||
69 | ; Windows Millennium Edition specific sections -------------------- | ||
70 | |||
71 | [RNDIS.ME] | ||
72 | DeviceID = usb8023 | ||
73 | MaxInstance = 512 | ||
74 | DriverVer = 03/30/2004,0.0.0.0 | ||
75 | AddReg = RNDIS_AddReg_ME, RNDIS_AddReg_Common | ||
76 | Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI | ||
77 | BusType = 15 | ||
78 | |||
79 | [RNDIS_AddReg_ME] | ||
80 | HKR, , DevLoader, 0, *ndis | ||
81 | HKR, , DeviceVxDs, 0, usb8023.sys | ||
82 | HKR, NDIS, LogDriverName, 0, "usb8023" | ||
83 | HKR, NDIS, MajorNdisVersion, 1, 5 | ||
84 | HKR, NDIS, MinorNdisVersion, 1, 0 | ||
85 | HKR, Ndi\Interfaces, DefUpper, 0, "ndis3,ndis4,ndis5" | ||
86 | HKR, Ndi\Interfaces, DefLower, 0, "ethernet" | ||
87 | HKR, Ndi\Interfaces, UpperRange, 0, "ndis3,ndis4,ndis5" | ||
88 | HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" | ||
89 | HKR, Ndi\Install, ndis3, 0, "RNDIS_Install_ME" | ||
90 | HKR, Ndi\Install, ndis4, 0, "RNDIS_Install_ME" | ||
91 | HKR, Ndi\Install, ndis5, 0, "RNDIS_Install_ME" | ||
92 | HKR, Ndi, DeviceId, 0, "USB\VID_0525&PID_a4a2" | ||
93 | |||
94 | [RNDIS_Install_ME] | ||
95 | CopyFiles=RNDIS_CopyFiles_ME | ||
96 | |||
97 | [RNDIS_CopyFiles_ME] | ||
98 | usb8023.sys, usb8023m.sys, , 0 | ||
99 | rndismp.sys, rndismpm.sys, , 0 | ||
100 | |||
101 | ; Windows 2000 specific sections --------------------------------- | ||
102 | |||
103 | [RNDIS.NT] | ||
104 | Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI | ||
105 | BusType = 15 | ||
106 | DriverVer = 03/30/2004,0.0.0.0 | ||
107 | AddReg = RNDIS_AddReg_NT, RNDIS_AddReg_Common | ||
108 | CopyFiles = RNDIS_CopyFiles_NT | ||
109 | |||
110 | [RNDIS.NT.Services] | ||
111 | AddService = USB_RNDIS, 2, RNDIS_ServiceInst_NT, RNDIS_EventLog | ||
112 | |||
113 | [RNDIS_CopyFiles_NT] | ||
114 | ; no rename of files on Windows 2000, use the 'k' names as is | ||
115 | usb8023k.sys, , , 0 | ||
116 | rndismpk.sys, , , 0 | ||
117 | |||
118 | [RNDIS_ServiceInst_NT] | ||
119 | DisplayName = %ServiceDisplayName% | ||
120 | ServiceType = 1 | ||
121 | StartType = 3 | ||
122 | ErrorControl = 1 | ||
123 | ServiceBinary = %12%\usb8023k.sys | ||
124 | LoadOrderGroup = NDIS | ||
125 | AddReg = RNDIS_WMI_AddReg_NT | ||
126 | |||
127 | [RNDIS_WMI_AddReg_NT] | ||
128 | HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismpk.sys" | ||
129 | |||
130 | ; Windows XP specific sections ----------------------------------- | ||
131 | |||
132 | [RNDIS.NT.5.1] | 37 | [RNDIS.NT.5.1] |
133 | Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI | 38 | Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI |
134 | BusType = 15 | 39 | BusType = 15 |
135 | DriverVer = 03/30/2004,0.0.0.0 | 40 | ; NEVER REMOVE THE FOLLOWING REFERENCE FOR NETRNDIS.INF |
136 | AddReg = RNDIS_AddReg_NT, RNDIS_AddReg_Common | 41 | include = netrndis.inf |
137 | ; no copyfiles - the files are already in place | 42 | needs = Usb_Rndis.ndi |
138 | 43 | AddReg = Rndis_AddReg_Vista | |
44 | |||
45 | ; DDInstal.Services section | ||
139 | [RNDIS.NT.5.1.Services] | 46 | [RNDIS.NT.5.1.Services] |
140 | AddService = USB_RNDIS, 2, RNDIS_ServiceInst_51, RNDIS_EventLog | 47 | include = netrndis.inf |
141 | 48 | needs = Usb_Rndis.ndi.Services | |
142 | [RNDIS_ServiceInst_51] | 49 | |
143 | DisplayName = %ServiceDisplayName% | 50 | ; Optional registry settings. You can modify as needed. |
144 | ServiceType = 1 | 51 | [RNDIS_AddReg_Vista] |
145 | StartType = 3 | 52 | HKR, NDI\params\VistaProperty, ParamDesc, 0, %Vista_Property% |
146 | ErrorControl = 1 | 53 | HKR, NDI\params\VistaProperty, type, 0, "edit" |
147 | ServiceBinary = %12%\usb8023.sys | 54 | HKR, NDI\params\VistaProperty, LimitText, 0, "12" |
148 | LoadOrderGroup = NDIS | 55 | HKR, NDI\params\VistaProperty, UpperCase, 0, "1" |
149 | AddReg = RNDIS_WMI_AddReg_51 | 56 | HKR, NDI\params\VistaProperty, default, 0, " " |
150 | 57 | HKR, NDI\params\VistaProperty, optional, 0, "1" | |
151 | [RNDIS_WMI_AddReg_51] | 58 | |
152 | HKR, , MofImagePath, 0x00020000, "System32\drivers\rndismp.sys" | 59 | ; No sys copyfiles - the sys files are already in-build |
153 | 60 | ; (part of the operating system). | |
154 | ; Windows 2000 and Windows XP common sections -------------------- | 61 | ; We do not support XP SP1-, 2003 SP1-, ME, 9x. |
155 | |||
156 | [RNDIS_AddReg_NT] | ||
157 | HKR, Ndi, Service, 0, "USB_RNDIS" | ||
158 | HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" | ||
159 | HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" | ||
160 | |||
161 | [RNDIS_EventLog] | ||
162 | AddReg = RNDIS_EventLog_AddReg | ||
163 | |||
164 | [RNDIS_EventLog_AddReg] | ||
165 | HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll" | ||
166 | HKR, , TypesSupported, 0x00010001, 7 | ||
167 | |||
168 | ; Common Sections ------------------------------------------------- | ||
169 | |||
170 | [RNDIS_AddReg_Common] | ||
171 | HKR, NDI\params\NetworkAddress, ParamDesc, 0, %NetworkAddress% | ||
172 | HKR, NDI\params\NetworkAddress, type, 0, "edit" | ||
173 | HKR, NDI\params\NetworkAddress, LimitText, 0, "12" | ||
174 | HKR, NDI\params\NetworkAddress, UpperCase, 0, "1" | ||
175 | HKR, NDI\params\NetworkAddress, default, 0, " " | ||
176 | HKR, NDI\params\NetworkAddress, optional, 0, "1" | ||
177 | |||
178 | [SourceDisksNames] | ||
179 | 1=%SourceDisk%,,1 | ||
180 | |||
181 | [SourceDisksFiles] | ||
182 | usb8023m.sys=1 | ||
183 | rndismpm.sys=1 | ||
184 | usb8023w.sys=1 | ||
185 | rndismpw.sys=1 | ||
186 | usb8023k.sys=1 | ||
187 | rndismpk.sys=1 | ||
188 | |||
189 | [DestinationDirs] | ||
190 | RNDIS_CopyFiles_98 = 10, system32/drivers | ||
191 | RNDIS_CopyFiles_ME = 10, system32/drivers | ||
192 | RNDIS_CopyFiles_NT = 12 | ||
193 | 62 | ||
194 | [Strings] | 63 | [Strings] |
195 | ServiceDisplayName = "USB Remote NDIS Network Device Driver" | ||
196 | NetworkAddress = "Network Address" | ||
197 | Linux = "Linux Developer Community" | 64 | Linux = "Linux Developer Community" |
198 | LinuxDevice = "Linux USB Ethernet/RNDIS Gadget" | 65 | LinuxDevice = "Linux USB Ethernet/RNDIS Gadget" |
199 | SourceDisk = "Ethernet/RNDIS Gadget Driver Install Disk" | 66 | Vista_Property = "Optional Vista Property" |
200 | |||