€•¢‡Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ%/translations/zh_CN/usb/gadget_serial”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/zh_TW/usb/gadget_serial”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/it_IT/usb/gadget_serial”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/ja_JP/usb/gadget_serial”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/ko_KR/usb/gadget_serial”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/pt_BR/usb/gadget_serial”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/sp_SP/usb/gadget_serial”Œ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 Gadget Serial Driver v2.0”h]”hŒLinux Gadget Serial Driver v2.0”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ?/var/lib/git/docbuild/linux/Documentation/usb/gadget_serial.rst”h´KubhŒ paragraph”“”)”}”(hŒ 11/20/2004”h]”hŒ 11/20/2004”…””}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hŒ(updated 8-May-2008 for v2.3)”h]”hŒ(updated 8-May-2008 for v2.3)”…””}”(hhÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubh¶)”}”(hhh]”(h»)”}”(hŒLicense and Disclaimer”h]”hŒLicense and Disclaimer”…””}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhéh²hh³hÊh´K ubhÌ)”}”(hŒïThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.”h]”hŒïThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.”…””}”(hhúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hhéh²hubhÌ)”}”(hŒéThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.”h]”hŒéThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubhÌ)”}”(hŒÆYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.”h]”hŒÆYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubhÌ)”}”(hŒvThis document and the gadget serial driver itself are Copyright (C) 2004 by Al Borchers (alborchers@steinerpoint.com).”h]”(hŒYThis document and the gadget serial driver itself are Copyright (C) 2004 by Al Borchers (”…””}”(hj$h²hh³Nh´NubhŒ reference”“”)”}”(hŒalborchers@steinerpoint.com”h]”hŒalborchers@steinerpoint.com”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ"mailto:alborchers@steinerpoint.com”uh1j,hj$ubhŒ).”…””}”(hj$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubhÌ)”}”(hŒzIf you have questions, problems, or suggestions for this driver please contact Al Borchers at alborchers@steinerpoint.com.”h]”(hŒ^If you have questions, problems, or suggestions for this driver please contact Al Borchers at ”…””}”(hjHh²hh³Nh´Nubj-)”}”(hŒalborchers@steinerpoint.com”h]”hŒalborchers@steinerpoint.com”…””}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ"mailto:alborchers@steinerpoint.com”uh1j,hjHubhŒ.”…””}”(hjHh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubeh}”(h]”Œlicense-and-disclaimer”ah ]”h"]”Œlicense and disclaimer”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubh¶)”}”(hhh]”(h»)”}”(hŒ Prerequisites”h]”hŒ Prerequisites”…””}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjrh²hh³hÊh´K#ubhÌ)”}”(hŒ½Versions of the gadget serial driver are available for the 2.4 Linux kernels, but this document assumes you are using version 2.3 or later of the gadget serial driver in a 2.6 Linux kernel.”h]”hŒ½Versions of the gadget serial driver are available for the 2.4 Linux kernels, but this document assumes you are using version 2.3 or later of the gadget serial driver in a 2.6 Linux kernel.”…””}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K$hjrh²hubhÌ)”}”(hXThis document assumes that you are familiar with Linux and Windows and know how to configure and build Linux kernels, run standard utilities, use minicom and HyperTerminal, and work with USB and serial devices. It also assumes you configure the Linux gadget and usb drivers as modules.”h]”hXThis document assumes that you are familiar with Linux and Windows and know how to configure and build Linux kernels, run standard utilities, use minicom and HyperTerminal, and work with USB and serial devices. It also assumes you configure the Linux gadget and usb drivers as modules.”…””}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjrh²hubhÌ)”}”(hŒùWith version 2.3 of the driver, major and minor device nodes are no longer statically defined. Your Linux based system should mount sysfs in /sys, and use "mdev" (in Busybox) or "udev" to make the /dev nodes matching the sysfs /sys/class/tty files.”h]”hXWith version 2.3 of the driver, major and minor device nodes are no longer statically defined. Your Linux based system should mount sysfs in /sys, and use “mdev†(in Busybox) or “udev†to make the /dev nodes matching the sysfs /sys/class/tty files.”…””}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K/hjrh²hubeh}”(h]”Œ prerequisites”ah ]”h"]”Œ prerequisites”ah$]”h&]”uh1hµhh·h²hh³hÊh´K#ubh¶)”}”(hhh]”(h»)”}”(hŒOverview”h]”hŒOverview”…””}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjµh²hh³hÊh´K7ubhÌ)”}”(hŒáThe gadget serial driver is a Linux USB gadget driver, a USB device side driver. It runs on a Linux system that has USB device side hardware; for example, a PDA, an embedded Linux system, or a PC with a USB development card.”h]”hŒáThe gadget serial driver is a Linux USB gadget driver, a USB device side driver. It runs on a Linux system that has USB device side hardware; for example, a PDA, an embedded Linux system, or a PC with a USB development card.”…””}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K8hjµh²hubhÌ)”}”(hŒxThe gadget serial driver talks over USB to either a CDC ACM driver or a generic USB serial driver running on a host PC::”h]”hŒwThe gadget serial driver talks over USB to either a CDC ACM driver or a generic USB serial driver running on a host PC:”…””}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K=hjµh²hubhŒ literal_block”“”)”}”(hXU Host -------------------------------------- | Host-Side CDC ACM USB Host | | Operating | or | Controller | USB | System | Generic USB | Driver |-------- | (Linux or | Serial | and | | | Windows) Driver USB Stack | | -------------------------------------- | | | | Gadget | -------------------------------------- | | Gadget USB Periph. | | | Device-Side | Gadget | Controller | | | Linux | Serial | Driver |-------- | Operating | Driver | and | | System USB Stack | --------------------------------------”h]”hXU Host -------------------------------------- | Host-Side CDC ACM USB Host | | Operating | or | Controller | USB | System | Generic USB | Driver |-------- | (Linux or | Serial | and | | | Windows) Driver USB Stack | | -------------------------------------- | | | | Gadget | -------------------------------------- | | Gadget USB Periph. | | | Device-Side | Gadget | Controller | | | Linux | Serial | Driver |-------- | Operating | Driver | and | | System USB Stack | --------------------------------------”…””}”hjäsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jâh³hÊh´K@hjµh²hubhÌ)”}”(hŒUOn the device-side Linux system, the gadget serial driver looks like a serial device.”h]”hŒUOn the device-side Linux system, the gadget serial driver looks like a serial device.”…””}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KThjµh²hubhÌ)”}”(hŒÚOn the host-side system, the gadget serial device looks like a CDC ACM compliant class device or a simple vendor specific device with bulk in and bulk out endpoints, and it is treated similarly to other serial devices.”h]”hŒÚOn the host-side system, the gadget serial device looks like a CDC ACM compliant class device or a simple vendor specific device with bulk in and bulk out endpoints, and it is treated similarly to other serial devices.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KWhjµh²hubhÌ)”}”(hXThe host side driver can potentially be any ACM compliant driver or any driver that can talk to a device with a simple bulk in/out interface. Gadget serial has been tested with the Linux ACM driver, the Windows usbser.sys ACM driver, and the Linux USB generic serial driver.”h]”hXThe host side driver can potentially be any ACM compliant driver or any driver that can talk to a device with a simple bulk in/out interface. Gadget serial has been tested with the Linux ACM driver, the Windows usbser.sys ACM driver, and the Linux USB generic serial driver.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K\hjµh²hubhÌ)”}”(hŒÑWith the gadget serial driver and the host side ACM or generic serial driver running, you should be able to communicate between the host and the gadget side systems as if they were connected by a serial cable.”h]”hŒÑWith the gadget serial driver and the host side ACM or generic serial driver running, you should be able to communicate between the host and the gadget side systems as if they were connected by a serial cable.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kbhjµh²hubhÌ)”}”(hŒ¢The gadget serial driver only provides simple unreliable data communication. It does not yet handle flow control or many other features of normal serial devices.”h]”hŒ¢The gadget serial driver only provides simple unreliable data communication. It does not yet handle flow control or many other features of normal serial devices.”…””}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kghjµh²hubeh}”(h]”Œoverview”ah ]”h"]”Œoverview”ah$]”h&]”uh1hµhh·h²hh³hÊh´K7ubh¶)”}”(hhh]”(h»)”}”(hŒ#Installing the Gadget Serial Driver”h]”hŒ#Installing the Gadget Serial Driver”…””}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjBh²hh³hÊh´KmubhÌ)”}”(hXJTo use the gadget serial driver you must configure the Linux gadget side kernel for "Support for USB Gadgets", for a "USB Peripheral Controller" (for example, net2280), and for the "Serial Gadget" driver. All this are listed under "USB Gadget Support" when configuring the kernel. Then rebuild and install the kernel or modules.”h]”hXZTo use the gadget serial driver you must configure the Linux gadget side kernel for “Support for USB Gadgetsâ€, for a “USB Peripheral Controller†(for example, net2280), and for the “Serial Gadget†driver. All this are listed under “USB Gadget Support†when configuring the kernel. Then rebuild and install the kernel or modules.”…””}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KnhjBh²hubhÌ)”}”(hŒwThen you must load the gadget serial driver. To load it as an ACM device (recommended for interoperability), do this::”h]”hŒvThen you must load the gadget serial driver. To load it as an ACM device (recommended for interoperability), do this:”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KuhjBh²hubjã)”}”(hŒmodprobe g_serial”h]”hŒmodprobe g_serial”…””}”hjosbah}”(h]”h ]”h"]”h$]”h&]”jòjóuh1jâh³hÊh´KxhjBh²hubhÌ)”}”(hŒ=To load it as a vendor specific bulk in/out device, do this::”h]”hŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K´hjõh²hubeh}”(h]”Œ&installing-the-windows-host-acm-driver”ah ]”h"]”Œ&installing the windows host acm driver”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kœubh¶)”}”(hhh]”(h»)”}”(hŒ$Installing the Linux Host ACM Driver”h]”hŒ$Installing the Linux Host ACM Driver”…””}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjTh²hh³hÊh´KºubhÌ)”}”(hŒTo use the Linux ACM driver you must configure the Linux host side kernel for "Support for Host-side USB" and for "USB Modem (CDC ACM) support".”h]”hŒ˜To use the Linux ACM driver you must configure the Linux host side kernel for “Support for Host-side USB†and for “USB Modem (CDC ACM) supportâ€.”…””}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K»hjTh²hubhÌ)”}”(hŒ¿Once the gadget serial driver is loaded and the USB device connected to the Linux host with a USB cable, the host system should recognize the gadget serial device. For example, the command::”h]”hŒ¾Once the gadget serial driver is loaded and the USB device connected to the Linux host with a USB cable, the host system should recognize the gadget serial device. For example, the command:”…””}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¿hjTh²hubjã)”}”(hŒ!cat /sys/kernel/debug/usb/devices”h]”hŒ!cat /sys/kernel/debug/usb/devices”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jòjóuh1jâh³hÊh´KÃhjTh²hubhÌ)”}”(hŒ"should show something like this:::”h]”hŒ!should show something like this::”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÅhjTh²hubjã)”}”(hX-T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 5 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0525 ProdID=a4a7 Rev= 2.01 S: Manufacturer=Linux 2.6.8.1 with net2280 S: Product=Gadget Serial S: SerialNumber=0 C:* #Ifs= 2 Cfg#= 2 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=32ms I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms”h]”hX-T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 5 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0525 ProdID=a4a7 Rev= 2.01 S: Manufacturer=Linux 2.6.8.1 with net2280 S: Product=Gadget Serial S: SerialNumber=0 C:* #Ifs= 2 Cfg#= 2 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=32ms I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jòjóuh1jâh³hÊh´KÇhjTh²hubhÌ)”}”(hŒ¡If the host side Linux system is configured properly, the ACM driver should be loaded automatically. The command "lsmod" should show the "acm" module is loaded.”h]”hŒ©If the host side Linux system is configured properly, the ACM driver should be loaded automatically. The command “lsmod†should show the “acm†module is loaded.”…””}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÔhjTh²hubeh}”(h]”Œ$installing-the-linux-host-acm-driver”ah ]”h"]”Œ$installing the linux host acm driver”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kºubh¶)”}”(hhh]”(h»)”}”(hŒ3Installing the Linux Host Generic USB Serial Driver”h]”hŒ3Installing the Linux Host Generic USB Serial Driver”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÁh²hh³hÊh´KÚubhÌ)”}”(hŒÆTo use the Linux generic USB serial driver you must configure the Linux host side kernel for "Support for Host-side USB", for "USB Serial Converter support", and for the "USB Generic Serial Driver".”h]”hŒÒTo use the Linux generic USB serial driver you must configure the Linux host side kernel for “Support for Host-side USBâ€, for “USB Serial Converter supportâ€, and for the “USB Generic Serial Driverâ€.”…””}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÛhjÁh²hubhÌ)”}”(hŒ¿Once the gadget serial driver is loaded and the USB device connected to the Linux host with a USB cable, the host system should recognize the gadget serial device. For example, the command::”h]”hŒ¾Once the gadget serial driver is loaded and the USB device connected to the Linux host with a USB cable, the host system should recognize the gadget serial device. For example, the command:”…””}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KßhjÁh²hubjã)”}”(hŒ!cat /sys/kernel/debug/usb/devices”h]”hŒ!cat /sys/kernel/debug/usb/devices”…””}”hjîsbah}”(h]”h ]”h"]”h$]”h&]”jòjóuh1jâh³hÊh´KãhjÁh²hubhÌ)”}”(hŒ"should show something like this:::”h]”hŒ!should show something like this::”…””}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KåhjÁh²hubjã)”}”(hXÁT: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 6 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0525 ProdID=a4a6 Rev= 2.01 S: Manufacturer=Linux 2.6.8.1 with net2280 S: Product=Gadget Serial S: SerialNumber=0 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=serial E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms”h]”hXÁT: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 6 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0525 ProdID=a4a6 Rev= 2.01 S: Manufacturer=Linux 2.6.8.1 with net2280 S: Product=Gadget Serial S: SerialNumber=0 C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA I: If#= 0 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=serial E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”jòjóuh1jâh³hÊh´KçhjÁh²hubhÌ)”}”(hŒ‡You must load the usbserial driver and explicitly set its parameters to configure it to recognize the gadget serial device, like this::”h]”hŒ†You must load the usbserial driver and explicitly set its parameters to configure it to recognize the gadget serial device, like this:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KòhjÁh²hubjã)”}”(hŒ>echo 0x0525 0xA4A6 >/sys/bus/usb-serial/drivers/generic/new_id”h]”hŒ>echo 0x0525 0xA4A6 >/sys/bus/usb-serial/drivers/generic/new_id”…””}”hj&sbah}”(h]”h ]”h"]”h$]”h&]”jòjóuh1jâh³hÊh´KõhjÁh²hubhÌ)”}”(hŒ,The legacy way is to use module parameters::”h]”hŒ+The legacy way is to use module parameters:”…””}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K÷hjÁh²hubjã)”}”(hŒ/modprobe usbserial vendor=0x0525 product=0xA4A6”h]”hŒ/modprobe usbserial vendor=0x0525 product=0xA4A6”…””}”hjBsbah}”(h]”h ]”h"]”h$]”h&]”jòjóuh1jâh³hÊh´KùhjÁh²hubhÌ)”}”(hŒ“If everything is working, usbserial will print a message in the system log saying something like "Gadget Serial converter now attached to ttyUSB0".”h]”hŒ—If everything is working, usbserial will print a message in the system log saying something like “Gadget Serial converter now attached to ttyUSB0â€.”…””}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KûhjÁh²hubeh}”(h]”Œ3installing-the-linux-host-generic-usb-serial-driver”ah ]”h"]”Œ3installing the linux host generic usb serial driver”ah$]”h&]”uh1hµhh·h²hh³hÊh´KÚubh¶)”}”(hhh]”(h»)”}”(hŒ%Testing with Minicom or HyperTerminal”h]”hŒ%Testing with Minicom or HyperTerminal”…””}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjfh²hh³hÊh´MubhÌ)”}”(hXOnce the gadget serial driver and the host driver are both installed, and a USB cable connects the gadget device to the host, you should be able to communicate over USB between the gadget and host systems. You can use minicom or HyperTerminal to try this out.”h]”hXOnce the gadget serial driver and the host driver are both installed, and a USB cable connects the gadget device to the host, you should be able to communicate over USB between the gadget and host systems. You can use minicom or HyperTerminal to try this out.”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjfh²hubhÌ)”}”(hXCOn the gadget side run "minicom -s" to configure a new minicom session. 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.”h]”hXWOn the gadget side run “minicom -s†to configure a new minicom session. 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.”…””}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjfh²hubhÌ)”}”(hŒÄOn a Linux host running the ACM driver, configure minicom similarly but use "/dev/ttyACM0" as the "Serial Device". (If you have other ACM devices connected, change the device name appropriately.)”h]”hŒÌOn a Linux host running the ACM driver, configure minicom similarly but use “/dev/ttyACM0†as the “Serial Deviceâ€. (If you have other ACM devices connected, change the device name appropriately.)”…””}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M hjfh²hubhÌ)”}”(hŒÚOn a Linux host running the USB generic serial driver, configure minicom similarly, but use "/dev/ttyUSB0" as the "Serial Device". (If you have other USB serial devices connected, change the device name appropriately.)”h]”hŒâOn a Linux host running the USB generic serial driver, configure minicom similarly, but use “/dev/ttyUSB0†as the “Serial Deviceâ€. (If you have other USB serial devices connected, change the device name appropriately.)”…””}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjfh²hubhÌ)”}”(hX$On a Windows host configure a new HyperTerminal session to use the COM port assigned to Gadget Serial. The "Port Settings" will be set automatically when HyperTerminal connects to the gadget serial device, so you can leave them set to the default values--these settings mostly do not matter.”h]”hX(On a Windows host configure a new HyperTerminal session to use the COM port assigned to Gadget Serial. The “Port Settings†will be set automatically when HyperTerminal connects to the gadget serial device, so you can leave them set to the default values--these settings mostly do not matter.”…””}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjfh²hubhÌ)”}”(hXbWith minicom configured and running on the gadget side and with minicom or HyperTerminal configured and running on the host side, you should be able to send data back and forth between the gadget side and host side systems. Anything you type on the terminal window on the gadget side should appear in the terminal window on the host side and vice versa.”h]”hXbWith minicom configured and running on the gadget side and with minicom or HyperTerminal configured and running on the host side, you should be able to send data back and forth between the gadget side and host side systems. Anything you type on the terminal window on the gadget side should appear in the terminal window on the host side and vice versa.”…””}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Mhjfh²hubeh}”(h]”Œ%testing-with-minicom-or-hyperterminal”ah ]”h"]”Œ%testing with minicom or hyperterminal”ah$]”h&]”uh1hµhh·h²hh³hÊh´Mubeh}”(h]”Œlinux-gadget-serial-driver-v2-0”ah ]”h"]”Œlinux gadget serial driver v2.0”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”jþŒ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Œfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œ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”‰Œ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”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jØjÕjojlj²j¯j?j<jòjïjQjNj¾j»jcj`jÐjÍuŒ nametypes”}”(j؉jo‰j²‰j?‰jò‰jQ‰j¾‰jc‰jЉuh}”(jÕh·jlhéj¯jrj<jµjïjBjNjõj»jTj`jÁjÍjfuŒ 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.