Linux Developer Community USB Devices Driver Download



  • NVIDIA publishes source code, binary packages and USB drivers for developers and the Android open source community to use in development and to create custom OS images for SHIELD devices. Look below for links to relevant downloads. Portions of open source software are provided under license terms that require redistribution of source code, including the GNU General Public License.
  • Intel® FPGA Download Cable (formerly USB-Blaster) Driver for Linux The Intel® Quartus® Prime software and older versions of Intel Quartus development software use built-in usbdevice drivers on Linux to access the Intel FPGA Download Cable and the Intel FPGA Download Cable II. By default, root is the only user allowed to use these devices.

11/20/2004

(updated 8-May-2008 for v2.3)

Unfortunately we don't have all information easily accessible yet, but if you're, for instance, looking for a card supporting AP mode, head over to the Drivers page, look at drivers that support AP mode, and then filter on those drivers on these device pages.

License and Disclaimer¶

This program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public License aspublished by the Free Software Foundation; either version 2 ofthe License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.

You should have received a copy of the GNU General PublicLicense along with this program; if not, write to the FreeSoftware Foundation, Inc., 59 Temple Place, Suite 330, Boston,MA 02111-1307 USA.

This document and the gadget serial driver itself areCopyright (C) 2004 by Al Borchers (alborchers@steinerpoint.com).

If you have questions, problems, or suggestions for this driverplease contact Al Borchers at alborchers@steinerpoint.com.

Prerequisites¶

Versions of the gadget serial driver are available for the2.4 Linux kernels, but this document assumes you are usingversion 2.3 or later of the gadget serial driver in a 2.6Linux kernel.

This document assumes that you are familiar with Linux andWindows and know how to configure and build Linux kernels, runstandard utilities, use minicom and HyperTerminal, and work withUSB and serial devices. It also assumes you configure the Linuxgadget and usb drivers as modules.

With version 2.3 of the driver, major and minor device nodes areno longer statically defined. Your Linux based system should mountsysfs in /sys, and use “mdev” (in Busybox) or “udev” to make the/dev nodes matching the sysfs /sys/class/tty files.

Overview¶

The gadget serial driver is a Linux USB gadget driver, a USB deviceside driver. It runs on a Linux system that has USB device sidehardware; for example, a PDA, an embedded Linux system, or a PCwith a USB development card.

The gadget serial driver talks over USB to either a CDC ACM driveror a generic USB serial driver running on a host PC:

On the device-side Linux system, the gadget serial driver lookslike a serial device.

Download

On the host-side system, the gadget serial device looks like aCDC ACM compliant class device or a simple vendor specific devicewith bulk in and bulk out endpoints, and it is treated similarlyto other serial devices.

The host side driver can potentially be any ACM compliant driveror any driver that can talk to a device with a simple bulk in/outinterface. Gadget serial has been tested with the Linux ACM driver,the Windows usbser.sys ACM driver, and the Linux USB generic serialdriver.

With the gadget serial driver and the host side ACM or genericserial driver running, you should be able to communicate betweenthe host and the gadget side systems as if they were connected by aserial cable.

The gadget serial driver only provides simple unreliable datacommunication. It does not yet handle flow control or many otherfeatures of normal serial devices.

Installing the Gadget Serial Driver¶

To use the gadget serial driver you must configure the Linux gadgetside kernel for “Support for USB Gadgets”, for a “USB PeripheralController” (for example, net2280), and for the “Serial Gadget”driver. All this are listed under “USB Gadget Support” whenconfiguring the kernel. Then rebuild and install the kernel ormodules.

Then you must load the gadget serial driver. To load it as anACM device (recommended for interoperability), do this:

To load it as a vendor specific bulk in/out device, do this:

This will also automatically load the underlying gadget peripheralcontroller driver. This must be done each time you reboot the gadgetside Linux system. You can add this to the start up scripts, ifdesired.

Your system should use mdev (from busybox) or udev to make thedevice nodes. After this gadget driver has been set up you shouldthen see a /dev/ttyGS0 node:

Note that the major number (253, above) is system-specific. Ifyou need to create /dev nodes by hand, the right numbers to usewill be in the /sys/class/tty/ttyGS0/dev file.

When you link this gadget driver early, perhaps even statically,you may want to set up an /etc/inittab entry to run “getty” on it.The /dev/ttyGS0 line should work like most any other serial port.

If gadget serial is loaded as an ACM device you will want to useeither the Windows or Linux ACM driver on the host side. If gadgetserial is loaded as a bulk in/out device, you will want to use theLinux generic serial driver on the host side. Follow the appropriateinstructions below to install the host side driver.

Installing the Windows Host ACM Driver¶

To use the Windows ACM driver you must have the “linux-cdc-acm.inf”file (provided along this document) which supports all recent versionsof Windows.

When the gadget serial driver is loaded and the USB device connectedto the Windows host with a USB cable, Windows should recognize thegadget serial device and ask for a driver. Tell Windows to find thedriver in the folder that contains the “linux-cdc-acm.inf” file.

For example, on Windows XP, when the gadget serial device is firstplugged in, the “Found New Hardware Wizard” starts up. Select“Install from a list or specific location (Advanced)”, then on thenext screen select “Include this location in the search” and enter thepath or browse to the folder containing the “linux-cdc-acm.inf” file.Windows will complain that the Gadget Serial driver has not passedWindows Logo testing, but select “Continue anyway” and finish thedriver installation.

On Windows XP, in the “Device Manager” (under “Control Panel”,“System”, “Hardware”) expand the “Ports (COM & LPT)” entry and youshould see “Gadget Serial” listed as the driver for one of the COMports.

Usb

To uninstall the Windows XP driver for “Gadget Serial”, right clickon the “Gadget Serial” entry in the “Device Manager” and select“Uninstall”.

Installing the Linux Host ACM Driver¶

To use the Linux ACM driver you must configure the Linux host sidekernel for “Support for Host-side USB” and for “USB Modem (CDC ACM)support”.

Once the gadget serial driver is loaded and the USB device connectedto the Linux host with a USB cable, the host system should recognizethe gadget serial device. For example, the command:

should show something like this::

If the host side Linux system is configured properly, the ACM drivershould be loaded automatically. The command “lsmod” should show the“acm” module is loaded.

Installing the Linux Host Generic USB Serial Driver¶

To use the Linux generic USB serial driver you must configure theLinux host side kernel for “Support for Host-side USB”, for “USBSerial Converter support”, and for the “USB Generic Serial Driver”.

Once the gadget serial driver is loaded and the USB device connectedto the Linux host with a USB cable, the host system should recognizethe gadget serial device. For example, the command:

should show something like this::

You must load the usbserial driver and explicitly set its parametersto configure it to recognize the gadget serial device, like this:

The legacy way is to use module parameters:

If everything is working, usbserial will print a message in thesystem log saying something like “Gadget Serial converter nowattached to ttyUSB0”.

Testing with Minicom or HyperTerminal¶

Once the gadget serial driver and the host driver are both installed,and a USB cable connects the gadget device to the host, you shouldbe able to communicate over USB between the gadget and host systems.You can use minicom or HyperTerminal to try this out.

On the gadget side run “minicom -s” to configure a new minicomsession. Under “Serial port setup” set “/dev/ttygserial” as the“Serial Device”. Set baud rate, data bits, parity, and stop bits,to 9600, 8, none, and 1–these settings mostly do not matter.Under “Modem and dialing” erase all the modem and dialing strings.

On a Linux host running the ACM driver, configure minicom similarlybut use “/dev/ttyACM0” as the “Serial Device”. (If you have otherACM devices connected, change the device name appropriately.)

On a Linux host running the USB generic serial driver, configureminicom similarly, but use “/dev/ttyUSB0” as the “Serial Device”.(If you have other USB serial devices connected, change the devicename appropriately.)

On a Windows host configure a new HyperTerminal session to use theCOM port assigned to Gadget Serial. The “Port Settings” will beset automatically when HyperTerminal connects to the gadget serialdevice, so you can leave them set to the default values–thesesettings mostly do not matter.

With minicom configured and running on the gadget side and withminicom or HyperTerminal configured and running on the host side,you should be able to send data back and forth between the gadgetside and host side systems. Anything you type on the terminalwindow on the gadget side should appear in the terminal window onthe host side and vice versa.

11/20/2004

(updated 8-May-2008 for v2.3)

License and Disclaimer¶

This program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public License aspublished by the Free Software Foundation; either version 2 ofthe License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.

You should have received a copy of the GNU General PublicLicense along with this program; if not, write to the FreeSoftware Foundation, Inc., 59 Temple Place, Suite 330, Boston,MA 02111-1307 USA.

This document and the gadget serial driver itself areCopyright (C) 2004 by Al Borchers (alborchers@steinerpoint.com).

If you have questions, problems, or suggestions for this driverplease contact Al Borchers at alborchers@steinerpoint.com.

Prerequisites¶

Versions of the gadget serial driver are available for the2.4 Linux kernels, but this document assumes you are usingversion 2.3 or later of the gadget serial driver in a 2.6Linux kernel.

This document assumes that you are familiar with Linux andWindows and know how to configure and build Linux kernels, runstandard utilities, use minicom and HyperTerminal, and work withUSB and serial devices. It also assumes you configure the Linuxgadget and usb drivers as modules.

With version 2.3 of the driver, major and minor device nodes areno longer statically defined. Your Linux based system should mountsysfs in /sys, and use “mdev” (in Busybox) or “udev” to make the/dev nodes matching the sysfs /sys/class/tty files.

Overview¶

The gadget serial driver is a Linux USB gadget driver, a USB deviceside driver. It runs on a Linux system that has USB device sidehardware; for example, a PDA, an embedded Linux system, or a PCwith a USB development card.

The gadget serial driver talks over USB to either a CDC ACM driveror a generic USB serial driver running on a host PC:

On the device-side Linux system, the gadget serial driver lookslike a serial device.

On the host-side system, the gadget serial device looks like aCDC ACM compliant class device or a simple vendor specific devicewith bulk in and bulk out endpoints, and it is treated similarlyto other serial devices.

The host side driver can potentially be any ACM compliant driveror any driver that can talk to a device with a simple bulk in/outinterface. Gadget serial has been tested with the Linux ACM driver,the Windows usbser.sys ACM driver, and the Linux USB generic serialdriver.

With the gadget serial driver and the host side ACM or genericserial driver running, you should be able to communicate betweenthe host and the gadget side systems as if they were connected by aserial cable.

The gadget serial driver only provides simple unreliable datacommunication. It does not yet handle flow control or many otherfeatures of normal serial devices.

Installing the Gadget Serial Driver¶

To use the gadget serial driver you must configure the Linux gadgetside kernel for “Support for USB Gadgets”, for a “USB PeripheralController” (for example, net2280), and for the “Serial Gadget”driver. All this are listed under “USB Gadget Support” whenconfiguring the kernel. Then rebuild and install the kernel ormodules.

Then you must load the gadget serial driver. To load it as anACM device (recommended for interoperability), do this:

To load it as a vendor specific bulk in/out device, do this:

This will also automatically load the underlying gadget peripheralcontroller driver. This must be done each time you reboot the gadgetside Linux system. You can add this to the start up scripts, ifdesired.

Your system should use mdev (from busybox) or udev to make thedevice nodes. After this gadget driver has been set up you shouldthen see a /dev/ttyGS0 node:

Note that the major number (253, above) is system-specific. Ifyou need to create /dev nodes by hand, the right numbers to usewill be in the /sys/class/tty/ttyGS0/dev file.

When you link this gadget driver early, perhaps even statically,you may want to set up an /etc/inittab entry to run “getty” on it.The /dev/ttyGS0 line should work like most any other serial port.

If gadget serial is loaded as an ACM device you will want to useeither the Windows or Linux ACM driver on the host side. If gadgetserial is loaded as a bulk in/out device, you will want to use theLinux generic serial driver on the host side. Follow the appropriateinstructions below to install the host side driver.

Installing the Windows Host ACM Driver¶

To use the Windows ACM driver you must have the “linux-cdc-acm.inf”file (provided along this document) which supports all recent versionsof Windows.

When the gadget serial driver is loaded and the USB device connectedto the Windows host with a USB cable, Windows should recognize thegadget serial device and ask for a driver. Tell Windows to find thedriver in the folder that contains the “linux-cdc-acm.inf” file.

For example, on Windows XP, when the gadget serial device is firstplugged in, the “Found New Hardware Wizard” starts up. Select“Install from a list or specific location (Advanced)”, then on thenext screen select “Include this location in the search” and enter thepath or browse to the folder containing the “linux-cdc-acm.inf” file.Windows will complain that the Gadget Serial driver has not passedWindows Logo testing, but select “Continue anyway” and finish thedriver installation.

On Windows XP, in the “Device Manager” (under “Control Panel”,“System”, “Hardware”) expand the “Ports (COM & LPT)” entry and youshould see “Gadget Serial” listed as the driver for one of the COMports.

To uninstall the Windows XP driver for “Gadget Serial”, right clickon the “Gadget Serial” entry in the “Device Manager” and select“Uninstall”.

Installing the Linux Host ACM Driver¶

To use the Linux ACM driver you must configure the Linux host sidekernel for “Support for Host-side USB” and for “USB Modem (CDC ACM)support”.

Once the gadget serial driver is loaded and the USB device connectedto the Linux host with a USB cable, the host system should recognizethe gadget serial device. For example, the command:

should show something like this::

If the host side Linux system is configured properly, the ACM drivershould be loaded automatically. The command “lsmod” should show the“acm” module is loaded.

Installing the Linux Host Generic USB Serial Driver¶

To use the Linux generic USB serial driver you must configure theLinux host side kernel for “Support for Host-side USB”, for “USBSerial Converter support”, and for the “USB Generic Serial Driver”.

Once the gadget serial driver is loaded and the USB device connectedto the Linux host with a USB cable, the host system should recognizethe gadget serial device. For example, the command:

should show something like this::

You must load the usbserial driver and explicitly set its parametersto configure it to recognize the gadget serial device, like this:

The legacy way is to use module parameters:

If everything is working, usbserial will print a message in thesystem log saying something like “Gadget Serial converter nowattached to ttyUSB0”.

Testing with Minicom or HyperTerminal¶

Once the gadget serial driver and the host driver are both installed,and a USB cable connects the gadget device to the host, you shouldbe able to communicate over USB between the gadget and host systems.You can use minicom or HyperTerminal to try this out.

Linux Developer Community Usb Devices Driver Downloads

On the gadget side run “minicom -s” to configure a new minicomsession. Under “Serial port setup” set “/dev/ttygserial” as the“Serial Device”. Set baud rate, data bits, parity, and stop bits,to 9600, 8, none, and 1–these settings mostly do not matter.Under “Modem and dialing” erase all the modem and dialing strings.

On a Linux host running the ACM driver, configure minicom similarlybut use “/dev/ttyACM0” as the “Serial Device”. (If you have otherACM devices connected, change the device name appropriately.)

Linux Developer Community Usb Devices Driver Download Pc

On a Linux host running the USB generic serial driver, configureminicom similarly, but use “/dev/ttyUSB0” as the “Serial Device”.(If you have other USB serial devices connected, change the devicename appropriately.)

On a Windows host configure a new HyperTerminal session to use theCOM port assigned to Gadget Serial. The “Port Settings” will beset automatically when HyperTerminal connects to the gadget serialdevice, so you can leave them set to the default values–thesesettings mostly do not matter.

What Is A Usb Devices

With minicom configured and running on the gadget side and withminicom or HyperTerminal configured and running on the host side,you should be able to send data back and forth between the gadgetside and host side systems. Anything you type on the terminalwindow on the gadget side should appear in the terminal window onthe host side and vice versa.