summaryrefslogtreecommitdiff
path: root/LUFA/DoxygenPages/OSDrivers.txt
blob: 4823c5b0891b4d3f50d167732b1f6a6e1a4634e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/** \file
 *
 *  This file contains special DoxyGen information for the generation of the main page and other special
 *  documentation pages. It is not a project source file.
 */

/** \page Page_OSDrivers Operating System Drivers
 *
 *  Most of the USB classes supported by LUFA are also supported natively in
 *  most operating systems, without extra drivers being required. However, in
 *  some cases, a driver file is required in order for the device to enumerate
 *  and function correctly.
 *
 *  \section Sec_OSClassSupport Operating System USB Class Support
 *  The table below lists the supported LUFA USB classes, and their associated
 *  <i>native</i> support on modern operating systems.
 *
 *  <table>
 *  <tr>
 *   <th width="200px">USB Class</th>
 *   <th width="150px">Android</th>
 *   <th width="150px">Windows</th>
 *   <th width="150px">Linux</th>
 *   <th width="150px">OS X</th>
 *  </tr>
 *  <tr>
 *   <td>Android Open Accessory</td>
 *   <td>2.3.4+</td>
 *   <td>N/A</td>
 *   <td>N/A</td>
 *   <td>N/A</td>
 *  </tr>
 *  <tr>
 *   <td>Audio 1.0</td>
 *   <td>N/A</td>
 *   <td>XP+</td>
 *   <td>2.6.?+</td>
 *   <td>10.?+</td>
 *  </tr>
 *  <tr>
 *   <td>CDC-ACM</td>
 *   <td>N/A</td>
 *   <td>XP+</td>
 *   <td>2.6.?+</td>
 *   <td>10.?+</td>
 *  </tr>
 *  <tr>
 *   <td>HID</td>
 *   <td>3.?+</td>
 *   <td>XP+</td>
 *   <td>2.6.?+</td>
 *   <td>10.?+</td>
 *  </tr>
 *  <tr>
 *   <td>MIDI</td>
 *   <td>N/A</td>
 *   <td>XP+</td>
 *   <td>2.6.?+</td>
 *   <td>10.?+</td>
 *  </tr>
 *  <tr>
 *   <td>Mass Storage</td>
 *   <td>N/A</td>
 *   <td>XP+</td>
 *   <td>2.6.?+</td>
 *   <td>10.?+</td>
 *  </tr>
 *  <tr>
 *   <td>Printer</td>
 *   <td>N/A</td>
 *   <td>XP+</td>
 *   <td>2.6.?+</td>
 *   <td>10.?+</td>
 *  </tr>
 *  <tr>
 *   <td>RNDIS</td>
 *   <td>N/A</td>
 *   <td>XP+</td>
 *   <td>2.6.?+</td>
 *   <td>N/A</td>
 *  </tr>
 *  <tr>
 *   <td>Still Image</td>
 *   <td>N/A</td>
 *   <td>XP+</td>
 *   <td>2.6.?+</td>
 *   <td>10.?+</td>
 *  </tr>
 *  </table>
 *
 *  \section Sec_WinINFTemplates Windows INF Drivers
 *  Windows uses INF driver files to associate a USB device of a specific class,
 *  VID/PID ID pair, Windows Compatibility ID or other characteristic to a kernel
 *  driver. In most cases these files are build into the operating system, and
 *  no special user action or driver files are required for a device using a
 *  standard USB class to enumerate. However, for some classes, a specific INF
 *  driver must be created and given to the operating system for the device to
 *  enumerate.
 *
 *  Those USB classes requiring a custom INF driver file in Windows are listed
 *  below, along with a basic INF template for each class.
 *
 *  \subsection SSec_WinINF_CDC Windows CDC INF Template
 *  This template is required for all CDC-ACM devices on Windows XP or newer.
 *  \verbinclude "WindowsINF/LUFA CDC-ACM.inf"
 *
 *  \subsection SSec_WinINF_RNDIS Windows RNDIS INF Template
 *  This template is required for all RNDIS devices on Windows XP or newer.
 *  \verbinclude "WindowsINF/LUFA RNDIS.inf"
 */