€•Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”(hhŒparent”hubaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ"/translations/zh_CN/usb/text_files”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”(hhhh2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/zh_TW/usb/text_files”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”(hhhhFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/it_IT/usb/text_files”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”(hhhhZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ja_JP/usb/text_files”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”(hhhhnubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ko_KR/usb/text_files”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”(hhhh‚ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/sp_SP/usb/text_files”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒLinux CDC ACM inf”h]”hŒLinux CDC ACM inf”…””}”(hhªhh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒ. ; For use only on Windows operating systems. [Version] Signature="$Windows NT$" Class=Ports ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} Provider=%Linux% DriverVer=11/15/2007,5.1.2600.0 [Manufacturer] %Linux%=DeviceList, NTamd64 [DestinationDirs] DefaultDestDir=12 ;------------------------------------------------------------------------------ ; Windows 2000/XP/Vista-32bit Sections ;------------------------------------------------------------------------------ [DriverInstall.nt] include=mdmcpq.inf CopyFiles=DriverCopyFiles.nt AddReg=DriverInstall.nt.AddReg [DriverCopyFiles.nt] usbser.sys,,,0x20 [DriverInstall.nt.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,USBSER.sys HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" [DriverInstall.nt.Services] AddService=usbser, 0x00000002, DriverService.nt [DriverService.nt] DisplayName=%SERVICE% ServiceType=1 StartType=3 ErrorControl=1 ServiceBinary=%12%\USBSER.sys ;------------------------------------------------------------------------------ ; Vista-64bit Sections ;------------------------------------------------------------------------------ [DriverInstall.NTamd64] include=mdmcpq.inf CopyFiles=DriverCopyFiles.NTamd64 AddReg=DriverInstall.NTamd64.AddReg [DriverCopyFiles.NTamd64] USBSER.sys,,,0x20 [DriverInstall.NTamd64.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,USBSER.sys HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" [DriverInstall.NTamd64.Services] AddService=usbser, 0x00000002, DriverService.NTamd64 [DriverService.NTamd64] DisplayName=%SERVICE% ServiceType=1 StartType=3 ErrorControl=1 ServiceBinary=%12%\USBSER.sys ;------------------------------------------------------------------------------ ; Vendor and Product ID Definitions ;------------------------------------------------------------------------------ ; When developing your USB device, the VID and PID used in the PC side ; application program and the firmware on the microcontroller must match. ; Modify the below line to use your VID and PID. Use the format as shown ; below. ; Note: One INF file can be used for multiple devices with different ; VID and PIDs. For each supported device, append ; ",USB\VID_xxxx&PID_yyyy" to the end of the line. ;------------------------------------------------------------------------------ [SourceDisksFiles] [SourceDisksNames] [DeviceList] %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02, USB\VID_1D6B&PID_0106&MI_00 [DeviceList.NTamd64] %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02, USB\VID_1D6B&PID_0106&MI_00 ;------------------------------------------------------------------------------ ; String Definitions ;------------------------------------------------------------------------------ ;Modify these strings to customize your device ;------------------------------------------------------------------------------ [Strings] Linux = "Linux Developer Community" DESCRIPTION = "Gadget Serial" SERVICE = "USB RS-232 Emulation Driver" ”h]”hX ; Windows USB CDC ACM Setup File ; Based on INF template which was: ; Copyright (c) 2000 Microsoft Corporation ; Copyright (c) 2007 Microchip Technology Inc. ; likely to be covered by the MLPL as found at: ; . ; For use only on Windows operating systems. [Version] Signature="$Windows NT$" Class=Ports ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} Provider=%Linux% DriverVer=11/15/2007,5.1.2600.0 [Manufacturer] %Linux%=DeviceList, NTamd64 [DestinationDirs] DefaultDestDir=12 ;------------------------------------------------------------------------------ ; Windows 2000/XP/Vista-32bit Sections ;------------------------------------------------------------------------------ [DriverInstall.nt] include=mdmcpq.inf CopyFiles=DriverCopyFiles.nt AddReg=DriverInstall.nt.AddReg [DriverCopyFiles.nt] usbser.sys,,,0x20 [DriverInstall.nt.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,USBSER.sys HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" [DriverInstall.nt.Services] AddService=usbser, 0x00000002, DriverService.nt [DriverService.nt] DisplayName=%SERVICE% ServiceType=1 StartType=3 ErrorControl=1 ServiceBinary=%12%\USBSER.sys ;------------------------------------------------------------------------------ ; Vista-64bit Sections ;------------------------------------------------------------------------------ [DriverInstall.NTamd64] include=mdmcpq.inf CopyFiles=DriverCopyFiles.NTamd64 AddReg=DriverInstall.NTamd64.AddReg [DriverCopyFiles.NTamd64] USBSER.sys,,,0x20 [DriverInstall.NTamd64.AddReg] HKR,,DevLoader,,*ntkern HKR,,NTMPDriver,,USBSER.sys HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" [DriverInstall.NTamd64.Services] AddService=usbser, 0x00000002, DriverService.NTamd64 [DriverService.NTamd64] DisplayName=%SERVICE% ServiceType=1 StartType=3 ErrorControl=1 ServiceBinary=%12%\USBSER.sys ;------------------------------------------------------------------------------ ; Vendor and Product ID Definitions ;------------------------------------------------------------------------------ ; When developing your USB device, the VID and PID used in the PC side ; application program and the firmware on the microcontroller must match. ; Modify the below line to use your VID and PID. Use the format as shown ; below. ; Note: One INF file can be used for multiple devices with different ; VID and PIDs. For each supported device, append ; ",USB\VID_xxxx&PID_yyyy" to the end of the line. ;------------------------------------------------------------------------------ [SourceDisksFiles] [SourceDisksNames] [DeviceList] %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02, USB\VID_1D6B&PID_0106&MI_00 [DeviceList.NTamd64] %DESCRIPTION%=DriverInstall, USB\VID_0525&PID_A4A7, USB\VID_1D6B&PID_0104&MI_02, USB\VID_1D6B&PID_0106&MI_00 ;------------------------------------------------------------------------------ ; String Definitions ;------------------------------------------------------------------------------ ;Modify these strings to customize your device ;------------------------------------------------------------------------------ [Strings] Linux = "Linux Developer Community" DESCRIPTION = "Gadget Serial" SERVICE = "USB RS-232 Emulation Driver" ”…””}”(hhhh¹ubah}”(h]”h ]”h"]”h$]”h&]”Œsource”Œ#Documentation/usb/linux-cdc-acm.inf”Œ xml:space”Œpreserve”uh1h·h Khh£hžhhŸh¶ubeh}”(h]”Œlinux-cdc-acm-inf”ah ]”h"]”Œlinux cdc acm inf”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒ Linux inf”h]”hŒ Linux inf”…””}”(hhØhhÖhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hhÓhžhhŸh¶h Kubh¸)”}”(hXÔ; Based on template INF file found at ; ; which was: ; Copyright (c) Microsoft Corporation ; and released under the MLPL as found at: ; . ; For use only on Windows operating systems. [Version] Signature = "$Windows NT$" Class = Net ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} Provider = %Linux% DriverVer = 06/21/2006,6.0.6000.16384 [Manufacturer] %Linux% = LinuxDevices,NTx86,NTamd64,NTia64 ; Decoration for x86 architecture [LinuxDevices.NTx86] %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ; Decoration for x64 architecture [LinuxDevices.NTamd64] %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ; Decoration for ia64 architecture [LinuxDevices.NTia64] %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ;@@@ This is the common setting for setup [ControlFlags] ExcludeFromSelect=* ; DDInstall section ; References the in-build Netrndis.inf [RNDIS.NT.5.1] Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI BusType = 15 ; NEVER REMOVE THE FOLLOWING REFERENCE FOR NETRNDIS.INF include = netrndis.inf needs = Usb_Rndis.ndi AddReg = Rndis_AddReg_Vista ; DDInstal.Services section [RNDIS.NT.5.1.Services] include = netrndis.inf needs = Usb_Rndis.ndi.Services ; Optional registry settings. You can modify as needed. [RNDIS_AddReg_Vista] HKR, NDI\params\VistaProperty, ParamDesc, 0, %Vista_Property% HKR, NDI\params\VistaProperty, type, 0, "edit" HKR, NDI\params\VistaProperty, LimitText, 0, "12" HKR, NDI\params\VistaProperty, UpperCase, 0, "1" HKR, NDI\params\VistaProperty, default, 0, " " HKR, NDI\params\VistaProperty, optional, 0, "1" ; No sys copyfiles - the sys files are already in-build ; (part of the operating system). ; We do not support XP SP1-, 2003 SP1-, ME, 9x. [Strings] Linux = "Linux Developer Community" LinuxDevice = "Linux USB Ethernet/RNDIS Gadget" Vista_Property = "Optional Vista Property" ”h]”hXÔ; Based on template INF file found at ; ; which was: ; Copyright (c) Microsoft Corporation ; and released under the MLPL as found at: ; . ; For use only on Windows operating systems. [Version] Signature = "$Windows NT$" Class = Net ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} Provider = %Linux% DriverVer = 06/21/2006,6.0.6000.16384 [Manufacturer] %Linux% = LinuxDevices,NTx86,NTamd64,NTia64 ; Decoration for x86 architecture [LinuxDevices.NTx86] %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ; Decoration for x64 architecture [LinuxDevices.NTamd64] %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ; Decoration for ia64 architecture [LinuxDevices.NTia64] %LinuxDevice% = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00 ;@@@ This is the common setting for setup [ControlFlags] ExcludeFromSelect=* ; DDInstall section ; References the in-build Netrndis.inf [RNDIS.NT.5.1] Characteristics = 0x84 ; NCF_PHYSICAL + NCF_HAS_UI BusType = 15 ; NEVER REMOVE THE FOLLOWING REFERENCE FOR NETRNDIS.INF include = netrndis.inf needs = Usb_Rndis.ndi AddReg = Rndis_AddReg_Vista ; DDInstal.Services section [RNDIS.NT.5.1.Services] include = netrndis.inf needs = Usb_Rndis.ndi.Services ; Optional registry settings. You can modify as needed. [RNDIS_AddReg_Vista] HKR, NDI\params\VistaProperty, ParamDesc, 0, %Vista_Property% HKR, NDI\params\VistaProperty, type, 0, "edit" HKR, NDI\params\VistaProperty, LimitText, 0, "12" HKR, NDI\params\VistaProperty, UpperCase, 0, "1" HKR, NDI\params\VistaProperty, default, 0, " " HKR, NDI\params\VistaProperty, optional, 0, "1" ; No sys copyfiles - the sys files are already in-build ; (part of the operating system). ; We do not support XP SP1-, 2003 SP1-, ME, 9x. [Strings] Linux = "Linux Developer Community" LinuxDevice = "Linux USB Ethernet/RNDIS Gadget" Vista_Property = "Optional Vista Property" ”…””}”(hhhhäubah}”(h]”h ]”h"]”h$]”h&]”Œsource”ŒDocumentation/usb/linux.inf”hÉhÊuh1h·h KhhÓhžhhŸh¶ubeh}”(h]”Œ linux-inf”ah ]”h"]”Œ linux inf”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒ!USB devfs drop permissions source”h]”hŒ!USB devfs drop permissions source”…””}”(hjhhÿhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hhühžhhŸh¶h Kubh¸)”}”(hXQ #include #include #include #include #include #include #include #include #include #include /* For building without an updated set of headers */ #ifndef USBDEVFS_DROP_PRIVILEGES #define USBDEVFS_DROP_PRIVILEGES _IOW('U', 30, __u32) #define USBDEVFS_CAP_DROP_PRIVILEGES 0x40 #endif void drop_privileges(int fd, uint32_t mask) { int res; res = ioctl(fd, USBDEVFS_DROP_PRIVILEGES, &mask); if (res) printf("ERROR: USBDEVFS_DROP_PRIVILEGES returned %d\n", res); else printf("OK: privileges dropped!\n"); } void reset_device(int fd) { int res; res = ioctl(fd, USBDEVFS_RESET); if (!res) printf("OK: USBDEVFS_RESET succeeded\n"); else printf("ERROR: reset failed! (%d - %s)\n", -res, strerror(-res)); } void claim_some_intf(int fd) { int i, res; for (i = 0; i < 4; i++) { res = ioctl(fd, USBDEVFS_CLAIMINTERFACE, &i); if (!res) printf("OK: claimed if %d\n", i); else printf("ERROR claiming if %d (%d - %s)\n", i, -res, strerror(-res)); } } int main(int argc, char *argv[]) { uint32_t mask, caps; int c, fd; fd = open(argv[1], O_RDWR); if (fd < 0) { printf("Failed to open file\n"); goto err_fd; } /* * check if dropping privileges is supported, * bail on systems where the capability is not present */ ioctl(fd, USBDEVFS_GET_CAPABILITIES, &caps); if (!(caps & USBDEVFS_CAP_DROP_PRIVILEGES)) { printf("DROP_PRIVILEGES not supported\n"); goto err; } /* * Drop privileges but keep the ability to claim all * free interfaces (i.e., those not used by kernel drivers) */ drop_privileges(fd, -1U); printf("Available options:\n" "[0] Exit now\n" "[1] Reset device. Should fail if device is in use\n" "[2] Claim 4 interfaces. Should succeed where not in use\n" "[3] Narrow interface permission mask\n" "Which option shall I run?: "); while (scanf("%d", &c) == 1) { switch (c) { case 0: goto exit; case 1: reset_device(fd); break; case 2: claim_some_intf(fd); break; case 3: printf("Insert new mask: "); scanf("%x", &mask); drop_privileges(fd, mask); break; default: printf("I don't recognize that\n"); } printf("Which test shall I run next?: "); } exit: close(fd); return 0; err: close(fd); err_fd: return 1; } ”h]”hXQ #include #include #include #include #include #include #include #include #include #include /* For building without an updated set of headers */ #ifndef USBDEVFS_DROP_PRIVILEGES #define USBDEVFS_DROP_PRIVILEGES _IOW('U', 30, __u32) #define USBDEVFS_CAP_DROP_PRIVILEGES 0x40 #endif void drop_privileges(int fd, uint32_t mask) { int res; res = ioctl(fd, USBDEVFS_DROP_PRIVILEGES, &mask); if (res) printf("ERROR: USBDEVFS_DROP_PRIVILEGES returned %d\n", res); else printf("OK: privileges dropped!\n"); } void reset_device(int fd) { int res; res = ioctl(fd, USBDEVFS_RESET); if (!res) printf("OK: USBDEVFS_RESET succeeded\n"); else printf("ERROR: reset failed! (%d - %s)\n", -res, strerror(-res)); } void claim_some_intf(int fd) { int i, res; for (i = 0; i < 4; i++) { res = ioctl(fd, USBDEVFS_CLAIMINTERFACE, &i); if (!res) printf("OK: claimed if %d\n", i); else printf("ERROR claiming if %d (%d - %s)\n", i, -res, strerror(-res)); } } int main(int argc, char *argv[]) { uint32_t mask, caps; int c, fd; fd = open(argv[1], O_RDWR); if (fd < 0) { printf("Failed to open file\n"); goto err_fd; } /* * check if dropping privileges is supported, * bail on systems where the capability is not present */ ioctl(fd, USBDEVFS_GET_CAPABILITIES, &caps); if (!(caps & USBDEVFS_CAP_DROP_PRIVILEGES)) { printf("DROP_PRIVILEGES not supported\n"); goto err; } /* * Drop privileges but keep the ability to claim all * free interfaces (i.e., those not used by kernel drivers) */ drop_privileges(fd, -1U); printf("Available options:\n" "[0] Exit now\n" "[1] Reset device. Should fail if device is in use\n" "[2] Claim 4 interfaces. Should succeed where not in use\n" "[3] Narrow interface permission mask\n" "Which option shall I run?: "); while (scanf("%d", &c) == 1) { switch (c) { case 0: goto exit; case 1: reset_device(fd); break; case 2: claim_some_intf(fd); break; case 3: printf("Insert new mask: "); scanf("%x", &mask); drop_privileges(fd, mask); break; default: printf("I don't recognize that\n"); } printf("Which test shall I run next?: "); } exit: close(fd); return 0; err: close(fd); err_fd: return 1; } ”…””}”(hhhj ubah}”(h]”h ]”h"]”h$]”h&]”Œsource”ŒI/var/lib/git/docbuild/linux/Documentation/usb/usbdevfs-drop-permissions.c”hÉhÊŒforce”‰Œlanguage”Œc”Œhighlight_args”}”Œ linenostart”Ksuh1h·hŸh¶h Khhühžhubeh}”(h]”Œ!usb-devfs-drop-permissions-source”ah ]”h"]”Œ!usb devfs drop permissions source”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒCredits”h]”hŒCredits”…””}”(hj0hj.hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj+hžhhŸh¶h Kubh¸)”}”(hXÀCredits for the Simple Linux USB Driver: The following people have contributed to this code (in alphabetical order by last name). I'm sure this list should be longer, it's difficult to maintain, add yourself with a patch if desired. Georg Acher David Brownell Alan Cox Randy Dunlap Johannes Erdfelt Deti Fliegl ham Bradley M Keryan Greg Kroah-Hartman Pavel Machek Paul Mackerras Petko Manlolov David E. Nelson Vojtech Pavlik Bill Ryder Thomas Sailer Gregory P. Smith Linus Torvalds Roman Weissgaerber Special thanks to: Inaky Perez Gonzalez for starting the Linux USB driver effort and writing much of the larger uusbd driver. Much has been learned from that effort. The NetBSD & FreeBSD USB developers. For being on the Linux USB list and offering suggestions and sharing implementation experiences. Additional thanks to the following companies and people for donations of hardware, support, time and development (this is from the original THANKS file in Inaky's driver): The following corporations have helped us in the development of Linux USB / UUSBD: - 3Com GmbH for donating a ISDN Pro TA and supporting me in technical questions and with test equipment. I'd never expect such a great help. - USAR Systems provided us with one of their excellent USB Evaluation Kits. It allows us to test the Linux-USB driver for compliance with the latest USB specification. USAR Systems recognized the importance of an up-to-date open Operating System and supports this project with Hardware. Thanks!. - Thanks to Intel Corporation for their precious help. - We teamed up with Cherry to make Linux the first OS with built-in USB support. Cherry is one of the biggest keyboard makers in the world. - CMD Technology, Inc. sponsored us kindly donating a CSA-6700 PCI-to-USB Controller Board to test the OHCI implementation. - Due to their support to us, Keytronic can be sure that they will sell keyboards to some of the 3 million (at least) Linux users. - Many thanks to ing büro h doran [http://www.ibhdoran.com]! It was almost impossible to get a PC backplate USB connector for the motherboard here at Europe (mine, home-made, was quite lousy :). Now I know where to acquire nice USB stuff! - Genius Germany donated a USB mouse to test the mouse boot protocol. They've also donated a F-23 digital joystick and a NetMouse Pro. Thanks! - AVM GmbH Berlin is supporting the development of the Linux USB driver for the AVM ISDN Controller B1 USB. AVM is a leading manufacturer for active and passive ISDN Controllers and CAPI 2.0-based software. The active design of the AVM B1 is open for all OS platforms, including Linux. - Thanks to Y-E Data, Inc. for donating their FlashBuster-U USB Floppy Disk Drive, so we could test the bulk transfer code. - Many thanks to Logitech for contributing a three axis USB mouse. Logitech designs, manufactures and markets Human Interface Devices, having a long history and experience in making devices such as keyboards, mice, trackballs, cameras, loudspeakers and control devices for gaming and professional use. Being a recognized vendor and seller for all these devices, they have donated USB mice, a joystick and a scanner, as a way to acknowledge the importance of Linux and to allow Logitech customers to enjoy support in their favorite operating systems and all Linux users to use Logitech and other USB hardware. Logitech is official sponsor of the Linux Conference on Feb. 11th 1999 in Vienna, where we'll will present the current state of the Linux USB effort. - CATC has provided means to uncover dark corners of the UHCI inner workings with a USB Inspector. - Thanks to Entrega for providing PCI to USB cards, hubs and converter products for development. - Thanks to ConnectTech for providing a WhiteHEAT usb to serial converter, and the documentation for the device to allow a driver to be written. - Thanks to ADMtek for providing Pegasus and Pegasus II evaluation boards, specs and valuable advices during the driver development. And thanks go to (hey! in no particular order :) - Oren Tirosh , for standing so patiently all my doubts'bout USB and giving lots of cool ideas. - Jochen Karrer , for pointing out mortal bugs and giving advice. - Edmund Humemberger , for his great work on public relationships and general management stuff for the Linux-USB effort. - Alberto Menegazzi is starting the documentation for the UUSBD. Go for it! - Ric Klaren for doing nice introductory documents (competing with Alberto's :). - Christian Groessler , for his help on those itchy bits ... :) - Paul MacKerras for polishing OHCI and pushing me harder for the iMac support, giving improvements and enhancements. - Fernando Herrera has taken charge of composing, maintaining and feeding the long-awaited, unique and marvelous UUSBD FAQ! Tadaaaa!!! - Rasca Gmelch has revived the raw driver and pointed bugs, as well as started the uusbd-utils package. - Peter Dettori is uncovering bugs like crazy, as well as making cool suggestions, great :) - All the Free Software and Linux community, the FSF & the GNU project, the MIT X consortium, the TeX people ... everyone! You know who you are! - Big thanks to Richard Stallman for creating Emacs! - The people at the linux-usb mailing list, for reading so many messages :) Ok, no more kidding; for all your advises! - All the people at the USB Implementors Forum for their help and assistance. - Nathan Myers , for his advice! (hope you liked Cibeles' party). - Linus Torvalds, for starting, developing and managing Linux. - Mike Smith, Craig Keithley, Thierry Giron and Janet Schank for convincing me USB Standard hubs are not that standard and that's good to allow for vendor specific quirks on the standard hub driver. ”h]”hXCredits for the Simple Linux USB Driver: The following people have contributed to this code (in alphabetical order by last name). I'm sure this list should be longer, it's difficult to maintain, add yourself with a patch if desired. Georg Acher David Brownell Alan Cox Randy Dunlap Johannes Erdfelt Deti Fliegl ham Bradley M Keryan Greg Kroah-Hartman Pavel Machek Paul Mackerras Petko Manlolov David E. Nelson Vojtech Pavlik Bill Ryder Thomas Sailer Gregory P. Smith Linus Torvalds Roman Weissgaerber Special thanks to: Inaky Perez Gonzalez for starting the Linux USB driver effort and writing much of the larger uusbd driver. Much has been learned from that effort. The NetBSD & FreeBSD USB developers. For being on the Linux USB list and offering suggestions and sharing implementation experiences. Additional thanks to the following companies and people for donations of hardware, support, time and development (this is from the original THANKS file in Inaky's driver): The following corporations have helped us in the development of Linux USB / UUSBD: - 3Com GmbH for donating a ISDN Pro TA and supporting me in technical questions and with test equipment. I'd never expect such a great help. - USAR Systems provided us with one of their excellent USB Evaluation Kits. It allows us to test the Linux-USB driver for compliance with the latest USB specification. USAR Systems recognized the importance of an up-to-date open Operating System and supports this project with Hardware. Thanks!. - Thanks to Intel Corporation for their precious help. - We teamed up with Cherry to make Linux the first OS with built-in USB support. Cherry is one of the biggest keyboard makers in the world. - CMD Technology, Inc. sponsored us kindly donating a CSA-6700 PCI-to-USB Controller Board to test the OHCI implementation. - Due to their support to us, Keytronic can be sure that they will sell keyboards to some of the 3 million (at least) Linux users. - Many thanks to ing büro h doran [http://www.ibhdoran.com]! It was almost impossible to get a PC backplate USB connector for the motherboard here at Europe (mine, home-made, was quite lousy :). Now I know where to acquire nice USB stuff! - Genius Germany donated a USB mouse to test the mouse boot protocol. They've also donated a F-23 digital joystick and a NetMouse Pro. Thanks! - AVM GmbH Berlin is supporting the development of the Linux USB driver for the AVM ISDN Controller B1 USB. AVM is a leading manufacturer for active and passive ISDN Controllers and CAPI 2.0-based software. The active design of the AVM B1 is open for all OS platforms, including Linux. - Thanks to Y-E Data, Inc. for donating their FlashBuster-U USB Floppy Disk Drive, so we could test the bulk transfer code. - Many thanks to Logitech for contributing a three axis USB mouse. Logitech designs, manufactures and markets Human Interface Devices, having a long history and experience in making devices such as keyboards, mice, trackballs, cameras, loudspeakers and control devices for gaming and professional use. Being a recognized vendor and seller for all these devices, they have donated USB mice, a joystick and a scanner, as a way to acknowledge the importance of Linux and to allow Logitech customers to enjoy support in their favorite operating systems and all Linux users to use Logitech and other USB hardware. Logitech is official sponsor of the Linux Conference on Feb. 11th 1999 in Vienna, where we'll will present the current state of the Linux USB effort. - CATC has provided means to uncover dark corners of the UHCI inner workings with a USB Inspector. - Thanks to Entrega for providing PCI to USB cards, hubs and converter products for development. - Thanks to ConnectTech for providing a WhiteHEAT usb to serial converter, and the documentation for the device to allow a driver to be written. - Thanks to ADMtek for providing Pegasus and Pegasus II evaluation boards, specs and valuable advices during the driver development. And thanks go to (hey! in no particular order :) - Oren Tirosh , for standing so patiently all my doubts'bout USB and giving lots of cool ideas. - Jochen Karrer , for pointing out mortal bugs and giving advice. - Edmund Humemberger , for his great work on public relationships and general management stuff for the Linux-USB effort. - Alberto Menegazzi is starting the documentation for the UUSBD. Go for it! - Ric Klaren for doing nice introductory documents (competing with Alberto's :). - Christian Groessler , for his help on those itchy bits ... :) - Paul MacKerras for polishing OHCI and pushing me harder for the iMac support, giving improvements and enhancements. - Fernando Herrera has taken charge of composing, maintaining and feeding the long-awaited, unique and marvelous UUSBD FAQ! Tadaaaa!!! - Rasca Gmelch has revived the raw driver and pointed bugs, as well as started the uusbd-utils package. - Peter Dettori is uncovering bugs like crazy, as well as making cool suggestions, great :) - All the Free Software and Linux community, the FSF & the GNU project, the MIT X consortium, the TeX people ... everyone! You know who you are! - Big thanks to Richard Stallman for creating Emacs! - The people at the linux-usb mailing list, for reading so many messages :) Ok, no more kidding; for all your advises! - All the people at the USB Implementors Forum for their help and assistance. - Nathan Myers , for his advice! (hope you liked Cibeles' party). - Linus Torvalds, for starting, developing and managing Linux. - Mike Smith, Craig Keithley, Thierry Giron and Janet Schank for convincing me USB Standard hubs are not that standard and that's good to allow for vendor specific quirks on the standard hub driver. ”…””}”(hhhj<ubah}”(h]”h ]”h"]”h$]”h&]”Œsource”ŒDocumentation/usb/CREDITS”hÉhÊuh1h·h Khj+hžhhŸh¶ubeh}”(h]”Œcredits”ah ]”h"]”Œcredits”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jwŒerror_encoding”ŒUTF-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œ embed_images”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(hÐhÍhùhöj(j%jQjNuŒ nametypes”}”(hÐNhùNj(NjQNuh}”(hÍh£höhÓj%hüjNj+uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.