1ecefae6dSMauro Carvalho Chehab=============================== 2ecefae6dSMauro Carvalho ChehabLinux Gadget Serial Driver v2.0 3ecefae6dSMauro Carvalho Chehab=============================== 4ecefae6dSMauro Carvalho Chehab 5ecefae6dSMauro Carvalho Chehab11/20/2004 6ecefae6dSMauro Carvalho Chehab 7ecefae6dSMauro Carvalho Chehab(updated 8-May-2008 for v2.3) 8ecefae6dSMauro Carvalho Chehab 9ecefae6dSMauro Carvalho Chehab 10ecefae6dSMauro Carvalho ChehabLicense and Disclaimer 11ecefae6dSMauro Carvalho Chehab---------------------- 12ecefae6dSMauro Carvalho ChehabThis program is free software; you can redistribute it and/or 13ecefae6dSMauro Carvalho Chehabmodify it under the terms of the GNU General Public License as 14ecefae6dSMauro Carvalho Chehabpublished by the Free Software Foundation; either version 2 of 15ecefae6dSMauro Carvalho Chehabthe License, or (at your option) any later version. 16ecefae6dSMauro Carvalho Chehab 17ecefae6dSMauro Carvalho ChehabThis program is distributed in the hope that it will be useful, 18ecefae6dSMauro Carvalho Chehabbut WITHOUT ANY WARRANTY; without even the implied warranty of 19ecefae6dSMauro Carvalho ChehabMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20ecefae6dSMauro Carvalho ChehabGNU General Public License for more details. 21ecefae6dSMauro Carvalho Chehab 22ecefae6dSMauro Carvalho ChehabYou should have received a copy of the GNU General Public 23ecefae6dSMauro Carvalho ChehabLicense along with this program; if not, write to the Free 24ecefae6dSMauro Carvalho ChehabSoftware Foundation, Inc., 59 Temple Place, Suite 330, Boston, 25ecefae6dSMauro Carvalho ChehabMA 02111-1307 USA. 26ecefae6dSMauro Carvalho Chehab 27ecefae6dSMauro Carvalho ChehabThis document and the gadget serial driver itself are 28ecefae6dSMauro Carvalho ChehabCopyright (C) 2004 by Al Borchers (alborchers@steinerpoint.com). 29ecefae6dSMauro Carvalho Chehab 30ecefae6dSMauro Carvalho ChehabIf you have questions, problems, or suggestions for this driver 31ecefae6dSMauro Carvalho Chehabplease contact Al Borchers at alborchers@steinerpoint.com. 32ecefae6dSMauro Carvalho Chehab 33ecefae6dSMauro Carvalho Chehab 34ecefae6dSMauro Carvalho ChehabPrerequisites 35ecefae6dSMauro Carvalho Chehab------------- 36ecefae6dSMauro Carvalho ChehabVersions of the gadget serial driver are available for the 37ecefae6dSMauro Carvalho Chehab2.4 Linux kernels, but this document assumes you are using 38ecefae6dSMauro Carvalho Chehabversion 2.3 or later of the gadget serial driver in a 2.6 39ecefae6dSMauro Carvalho ChehabLinux kernel. 40ecefae6dSMauro Carvalho Chehab 41ecefae6dSMauro Carvalho ChehabThis document assumes that you are familiar with Linux and 42ecefae6dSMauro Carvalho ChehabWindows and know how to configure and build Linux kernels, run 43ecefae6dSMauro Carvalho Chehabstandard utilities, use minicom and HyperTerminal, and work with 44ecefae6dSMauro Carvalho ChehabUSB and serial devices. It also assumes you configure the Linux 45ecefae6dSMauro Carvalho Chehabgadget and usb drivers as modules. 46ecefae6dSMauro Carvalho Chehab 47ecefae6dSMauro Carvalho ChehabWith version 2.3 of the driver, major and minor device nodes are 48ecefae6dSMauro Carvalho Chehabno longer statically defined. Your Linux based system should mount 49ecefae6dSMauro Carvalho Chehabsysfs in /sys, and use "mdev" (in Busybox) or "udev" to make the 50ecefae6dSMauro Carvalho Chehab/dev nodes matching the sysfs /sys/class/tty files. 51ecefae6dSMauro Carvalho Chehab 52ecefae6dSMauro Carvalho Chehab 53ecefae6dSMauro Carvalho Chehab 54ecefae6dSMauro Carvalho ChehabOverview 55ecefae6dSMauro Carvalho Chehab-------- 56ecefae6dSMauro Carvalho ChehabThe gadget serial driver is a Linux USB gadget driver, a USB device 57ecefae6dSMauro Carvalho Chehabside driver. It runs on a Linux system that has USB device side 58ecefae6dSMauro Carvalho Chehabhardware; for example, a PDA, an embedded Linux system, or a PC 59ecefae6dSMauro Carvalho Chehabwith a USB development card. 60ecefae6dSMauro Carvalho Chehab 61ecefae6dSMauro Carvalho ChehabThe gadget serial driver talks over USB to either a CDC ACM driver 62ecefae6dSMauro Carvalho Chehabor a generic USB serial driver running on a host PC:: 63ecefae6dSMauro Carvalho Chehab 64ecefae6dSMauro Carvalho Chehab Host 65ecefae6dSMauro Carvalho Chehab -------------------------------------- 66ecefae6dSMauro Carvalho Chehab | Host-Side CDC ACM USB Host | 67ecefae6dSMauro Carvalho Chehab | Operating | or | Controller | USB 68ecefae6dSMauro Carvalho Chehab | System | Generic USB | Driver |-------- 69ecefae6dSMauro Carvalho Chehab | (Linux or | Serial | and | | 70ecefae6dSMauro Carvalho Chehab | Windows) Driver USB Stack | | 71ecefae6dSMauro Carvalho Chehab -------------------------------------- | 72ecefae6dSMauro Carvalho Chehab | 73ecefae6dSMauro Carvalho Chehab | 74ecefae6dSMauro Carvalho Chehab | 75ecefae6dSMauro Carvalho Chehab Gadget | 76ecefae6dSMauro Carvalho Chehab -------------------------------------- | 77ecefae6dSMauro Carvalho Chehab | Gadget USB Periph. | | 78ecefae6dSMauro Carvalho Chehab | Device-Side | Gadget | Controller | | 79ecefae6dSMauro Carvalho Chehab | Linux | Serial | Driver |-------- 80ecefae6dSMauro Carvalho Chehab | Operating | Driver | and | 81ecefae6dSMauro Carvalho Chehab | System USB Stack | 82ecefae6dSMauro Carvalho Chehab -------------------------------------- 83ecefae6dSMauro Carvalho Chehab 84ecefae6dSMauro Carvalho ChehabOn the device-side Linux system, the gadget serial driver looks 85ecefae6dSMauro Carvalho Chehablike a serial device. 86ecefae6dSMauro Carvalho Chehab 87ecefae6dSMauro Carvalho ChehabOn the host-side system, the gadget serial device looks like a 88ecefae6dSMauro Carvalho ChehabCDC ACM compliant class device or a simple vendor specific device 89ecefae6dSMauro Carvalho Chehabwith bulk in and bulk out endpoints, and it is treated similarly 90ecefae6dSMauro Carvalho Chehabto other serial devices. 91ecefae6dSMauro Carvalho Chehab 92ecefae6dSMauro Carvalho ChehabThe host side driver can potentially be any ACM compliant driver 93ecefae6dSMauro Carvalho Chehabor any driver that can talk to a device with a simple bulk in/out 94ecefae6dSMauro Carvalho Chehabinterface. Gadget serial has been tested with the Linux ACM driver, 95ecefae6dSMauro Carvalho Chehabthe Windows usbser.sys ACM driver, and the Linux USB generic serial 96ecefae6dSMauro Carvalho Chehabdriver. 97ecefae6dSMauro Carvalho Chehab 98ecefae6dSMauro Carvalho ChehabWith the gadget serial driver and the host side ACM or generic 99ecefae6dSMauro Carvalho Chehabserial driver running, you should be able to communicate between 100ecefae6dSMauro Carvalho Chehabthe host and the gadget side systems as if they were connected by a 101ecefae6dSMauro Carvalho Chehabserial cable. 102ecefae6dSMauro Carvalho Chehab 103ecefae6dSMauro Carvalho ChehabThe gadget serial driver only provides simple unreliable data 104ecefae6dSMauro Carvalho Chehabcommunication. It does not yet handle flow control or many other 105ecefae6dSMauro Carvalho Chehabfeatures of normal serial devices. 106ecefae6dSMauro Carvalho Chehab 107ecefae6dSMauro Carvalho Chehab 108ecefae6dSMauro Carvalho ChehabInstalling the Gadget Serial Driver 109ecefae6dSMauro Carvalho Chehab----------------------------------- 110ecefae6dSMauro Carvalho ChehabTo use the gadget serial driver you must configure the Linux gadget 111ecefae6dSMauro Carvalho Chehabside kernel for "Support for USB Gadgets", for a "USB Peripheral 112ecefae6dSMauro Carvalho ChehabController" (for example, net2280), and for the "Serial Gadget" 113ecefae6dSMauro Carvalho Chehabdriver. All this are listed under "USB Gadget Support" when 114ecefae6dSMauro Carvalho Chehabconfiguring the kernel. Then rebuild and install the kernel or 115ecefae6dSMauro Carvalho Chehabmodules. 116ecefae6dSMauro Carvalho Chehab 117ecefae6dSMauro Carvalho ChehabThen you must load the gadget serial driver. To load it as an 118ecefae6dSMauro Carvalho ChehabACM device (recommended for interoperability), do this:: 119ecefae6dSMauro Carvalho Chehab 120ecefae6dSMauro Carvalho Chehab modprobe g_serial 121ecefae6dSMauro Carvalho Chehab 122ecefae6dSMauro Carvalho ChehabTo load it as a vendor specific bulk in/out device, do this:: 123ecefae6dSMauro Carvalho Chehab 124ecefae6dSMauro Carvalho Chehab modprobe g_serial use_acm=0 125ecefae6dSMauro Carvalho Chehab 126ecefae6dSMauro Carvalho ChehabThis will also automatically load the underlying gadget peripheral 127ecefae6dSMauro Carvalho Chehabcontroller driver. This must be done each time you reboot the gadget 128ecefae6dSMauro Carvalho Chehabside Linux system. You can add this to the start up scripts, if 129ecefae6dSMauro Carvalho Chehabdesired. 130ecefae6dSMauro Carvalho Chehab 131ecefae6dSMauro Carvalho ChehabYour system should use mdev (from busybox) or udev to make the 132ecefae6dSMauro Carvalho Chehabdevice nodes. After this gadget driver has been set up you should 133ecefae6dSMauro Carvalho Chehabthen see a /dev/ttyGS0 node:: 134ecefae6dSMauro Carvalho Chehab 135ecefae6dSMauro Carvalho Chehab # ls -l /dev/ttyGS0 | cat 136ecefae6dSMauro Carvalho Chehab crw-rw---- 1 root root 253, 0 May 8 14:10 /dev/ttyGS0 137ecefae6dSMauro Carvalho Chehab # 138ecefae6dSMauro Carvalho Chehab 139ecefae6dSMauro Carvalho ChehabNote that the major number (253, above) is system-specific. If 140ecefae6dSMauro Carvalho Chehabyou need to create /dev nodes by hand, the right numbers to use 141ecefae6dSMauro Carvalho Chehabwill be in the /sys/class/tty/ttyGS0/dev file. 142ecefae6dSMauro Carvalho Chehab 143ecefae6dSMauro Carvalho ChehabWhen you link this gadget driver early, perhaps even statically, 144ecefae6dSMauro Carvalho Chehabyou may want to set up an /etc/inittab entry to run "getty" on it. 145ecefae6dSMauro Carvalho ChehabThe /dev/ttyGS0 line should work like most any other serial port. 146ecefae6dSMauro Carvalho Chehab 147ecefae6dSMauro Carvalho Chehab 148ecefae6dSMauro Carvalho ChehabIf gadget serial is loaded as an ACM device you will want to use 149ecefae6dSMauro Carvalho Chehabeither the Windows or Linux ACM driver on the host side. If gadget 150ecefae6dSMauro Carvalho Chehabserial is loaded as a bulk in/out device, you will want to use the 151ecefae6dSMauro Carvalho ChehabLinux generic serial driver on the host side. Follow the appropriate 152ecefae6dSMauro Carvalho Chehabinstructions below to install the host side driver. 153ecefae6dSMauro Carvalho Chehab 154ecefae6dSMauro Carvalho Chehab 155ecefae6dSMauro Carvalho ChehabInstalling the Windows Host ACM Driver 156ecefae6dSMauro Carvalho Chehab-------------------------------------- 157ecefae6dSMauro Carvalho ChehabTo use the Windows ACM driver you must have the "linux-cdc-acm.inf" 158ecefae6dSMauro Carvalho Chehabfile (provided along this document) which supports all recent versions 159ecefae6dSMauro Carvalho Chehabof Windows. 160ecefae6dSMauro Carvalho Chehab 161ecefae6dSMauro Carvalho ChehabWhen the gadget serial driver is loaded and the USB device connected 162ecefae6dSMauro Carvalho Chehabto the Windows host with a USB cable, Windows should recognize the 163ecefae6dSMauro Carvalho Chehabgadget serial device and ask for a driver. Tell Windows to find the 164ecefae6dSMauro Carvalho Chehabdriver in the folder that contains the "linux-cdc-acm.inf" file. 165ecefae6dSMauro Carvalho Chehab 166ecefae6dSMauro Carvalho ChehabFor example, on Windows XP, when the gadget serial device is first 167ecefae6dSMauro Carvalho Chehabplugged in, the "Found New Hardware Wizard" starts up. Select 168ecefae6dSMauro Carvalho Chehab"Install from a list or specific location (Advanced)", then on the 169ecefae6dSMauro Carvalho Chehabnext screen select "Include this location in the search" and enter the 170ecefae6dSMauro Carvalho Chehabpath or browse to the folder containing the "linux-cdc-acm.inf" file. 171ecefae6dSMauro Carvalho ChehabWindows will complain that the Gadget Serial driver has not passed 172ecefae6dSMauro Carvalho ChehabWindows Logo testing, but select "Continue anyway" and finish the 173ecefae6dSMauro Carvalho Chehabdriver installation. 174ecefae6dSMauro Carvalho Chehab 175ecefae6dSMauro Carvalho ChehabOn Windows XP, in the "Device Manager" (under "Control Panel", 176ecefae6dSMauro Carvalho Chehab"System", "Hardware") expand the "Ports (COM & LPT)" entry and you 177ecefae6dSMauro Carvalho Chehabshould see "Gadget Serial" listed as the driver for one of the COM 178ecefae6dSMauro Carvalho Chehabports. 179ecefae6dSMauro Carvalho Chehab 180ecefae6dSMauro Carvalho ChehabTo uninstall the Windows XP driver for "Gadget Serial", right click 181ecefae6dSMauro Carvalho Chehabon the "Gadget Serial" entry in the "Device Manager" and select 182ecefae6dSMauro Carvalho Chehab"Uninstall". 183ecefae6dSMauro Carvalho Chehab 184ecefae6dSMauro Carvalho Chehab 185ecefae6dSMauro Carvalho ChehabInstalling the Linux Host ACM Driver 186ecefae6dSMauro Carvalho Chehab------------------------------------ 187ecefae6dSMauro Carvalho ChehabTo use the Linux ACM driver you must configure the Linux host side 188ecefae6dSMauro Carvalho Chehabkernel for "Support for Host-side USB" and for "USB Modem (CDC ACM) 189ecefae6dSMauro Carvalho Chehabsupport". 190ecefae6dSMauro Carvalho Chehab 191ecefae6dSMauro Carvalho ChehabOnce the gadget serial driver is loaded and the USB device connected 192ecefae6dSMauro Carvalho Chehabto the Linux host with a USB cable, the host system should recognize 193ecefae6dSMauro Carvalho Chehabthe gadget serial device. For example, the command:: 194ecefae6dSMauro Carvalho Chehab 195ecefae6dSMauro Carvalho Chehab cat /sys/kernel/debug/usb/devices 196ecefae6dSMauro Carvalho Chehab 197ecefae6dSMauro Carvalho Chehabshould show something like this::: 198ecefae6dSMauro Carvalho Chehab 199ecefae6dSMauro Carvalho Chehab T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 5 Spd=480 MxCh= 0 200ecefae6dSMauro Carvalho Chehab D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 201ecefae6dSMauro Carvalho Chehab P: Vendor=0525 ProdID=a4a7 Rev= 2.01 202ecefae6dSMauro Carvalho Chehab S: Manufacturer=Linux 2.6.8.1 with net2280 203ecefae6dSMauro Carvalho Chehab S: Product=Gadget Serial 204ecefae6dSMauro Carvalho Chehab S: SerialNumber=0 205ecefae6dSMauro Carvalho Chehab C:* #Ifs= 2 Cfg#= 2 Atr=c0 MxPwr= 2mA 206ecefae6dSMauro Carvalho Chehab I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm 207ecefae6dSMauro Carvalho Chehab E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=32ms 208ecefae6dSMauro Carvalho Chehab I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm 209ecefae6dSMauro Carvalho Chehab E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms 210ecefae6dSMauro Carvalho Chehab E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms 211ecefae6dSMauro Carvalho Chehab 212ecefae6dSMauro Carvalho ChehabIf the host side Linux system is configured properly, the ACM driver 213ecefae6dSMauro Carvalho Chehabshould be loaded automatically. The command "lsmod" should show the 214ecefae6dSMauro Carvalho Chehab"acm" module is loaded. 215ecefae6dSMauro Carvalho Chehab 216ecefae6dSMauro Carvalho Chehab 217ecefae6dSMauro Carvalho ChehabInstalling the Linux Host Generic USB Serial Driver 218ecefae6dSMauro Carvalho Chehab--------------------------------------------------- 219ecefae6dSMauro Carvalho ChehabTo use the Linux generic USB serial driver you must configure the 220ecefae6dSMauro Carvalho ChehabLinux host side kernel for "Support for Host-side USB", for "USB 221ecefae6dSMauro Carvalho ChehabSerial Converter support", and for the "USB Generic Serial Driver". 222ecefae6dSMauro Carvalho Chehab 223ecefae6dSMauro Carvalho ChehabOnce the gadget serial driver is loaded and the USB device connected 224ecefae6dSMauro Carvalho Chehabto the Linux host with a USB cable, the host system should recognize 225ecefae6dSMauro Carvalho Chehabthe gadget serial device. For example, the command:: 226ecefae6dSMauro Carvalho Chehab 227ecefae6dSMauro Carvalho Chehab cat /sys/kernel/debug/usb/devices 228ecefae6dSMauro Carvalho Chehab 229ecefae6dSMauro Carvalho Chehabshould show something like this::: 230ecefae6dSMauro Carvalho Chehab 231ecefae6dSMauro Carvalho Chehab T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 6 Spd=480 MxCh= 0 232ecefae6dSMauro Carvalho Chehab D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 233ecefae6dSMauro Carvalho Chehab P: Vendor=0525 ProdID=a4a6 Rev= 2.01 234ecefae6dSMauro Carvalho Chehab S: Manufacturer=Linux 2.6.8.1 with net2280 235ecefae6dSMauro Carvalho Chehab S: Product=Gadget Serial 236ecefae6dSMauro Carvalho Chehab S: SerialNumber=0 237ecefae6dSMauro Carvalho Chehab C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA 238ecefae6dSMauro Carvalho Chehab I: If#= 0 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=serial 239ecefae6dSMauro Carvalho Chehab E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms 240ecefae6dSMauro Carvalho Chehab E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms 241ecefae6dSMauro Carvalho Chehab 242ecefae6dSMauro Carvalho ChehabYou must load the usbserial driver and explicitly set its parameters 243ecefae6dSMauro Carvalho Chehabto configure it to recognize the gadget serial device, like this:: 244ecefae6dSMauro Carvalho Chehab 245ecefae6dSMauro Carvalho Chehab echo 0x0525 0xA4A6 >/sys/bus/usb-serial/drivers/generic/new_id 246ecefae6dSMauro Carvalho Chehab 247ecefae6dSMauro Carvalho ChehabThe legacy way is to use module parameters:: 248ecefae6dSMauro Carvalho Chehab 249ecefae6dSMauro Carvalho Chehab modprobe usbserial vendor=0x0525 product=0xA4A6 250ecefae6dSMauro Carvalho Chehab 251ecefae6dSMauro Carvalho ChehabIf everything is working, usbserial will print a message in the 252ecefae6dSMauro Carvalho Chehabsystem log saying something like "Gadget Serial converter now 253ecefae6dSMauro Carvalho Chehabattached to ttyUSB0". 254ecefae6dSMauro Carvalho Chehab 255ecefae6dSMauro Carvalho Chehab 256ecefae6dSMauro Carvalho ChehabTesting with Minicom or HyperTerminal 257ecefae6dSMauro Carvalho Chehab------------------------------------- 258ecefae6dSMauro Carvalho ChehabOnce the gadget serial driver and the host driver are both installed, 259ecefae6dSMauro Carvalho Chehaband a USB cable connects the gadget device to the host, you should 260ecefae6dSMauro Carvalho Chehabbe able to communicate over USB between the gadget and host systems. 261ecefae6dSMauro Carvalho ChehabYou can use minicom or HyperTerminal to try this out. 262ecefae6dSMauro Carvalho Chehab 263ecefae6dSMauro Carvalho ChehabOn the gadget side run "minicom -s" to configure a new minicom 264ecefae6dSMauro Carvalho Chehabsession. Under "Serial port setup" set "/dev/ttygserial" as the 265ecefae6dSMauro Carvalho Chehab"Serial Device". Set baud rate, data bits, parity, and stop bits, 266ecefae6dSMauro Carvalho Chehabto 9600, 8, none, and 1--these settings mostly do not matter. 267ecefae6dSMauro Carvalho ChehabUnder "Modem and dialing" erase all the modem and dialing strings. 268ecefae6dSMauro Carvalho Chehab 269ecefae6dSMauro Carvalho ChehabOn a Linux host running the ACM driver, configure minicom similarly 270ecefae6dSMauro Carvalho Chehabbut use "/dev/ttyACM0" as the "Serial Device". (If you have other 271ecefae6dSMauro Carvalho ChehabACM devices connected, change the device name appropriately.) 272ecefae6dSMauro Carvalho Chehab 273ecefae6dSMauro Carvalho ChehabOn a Linux host running the USB generic serial driver, configure 274ecefae6dSMauro Carvalho Chehabminicom similarly, but use "/dev/ttyUSB0" as the "Serial Device". 275ecefae6dSMauro Carvalho Chehab(If you have other USB serial devices connected, change the device 276ecefae6dSMauro Carvalho Chehabname appropriately.) 277ecefae6dSMauro Carvalho Chehab 278ecefae6dSMauro Carvalho ChehabOn a Windows host configure a new HyperTerminal session to use the 279ecefae6dSMauro Carvalho ChehabCOM port assigned to Gadget Serial. The "Port Settings" will be 280ecefae6dSMauro Carvalho Chehabset automatically when HyperTerminal connects to the gadget serial 281ecefae6dSMauro Carvalho Chehabdevice, so you can leave them set to the default values--these 282ecefae6dSMauro Carvalho Chehabsettings mostly do not matter. 283ecefae6dSMauro Carvalho Chehab 284ecefae6dSMauro Carvalho ChehabWith minicom configured and running on the gadget side and with 285ecefae6dSMauro Carvalho Chehabminicom or HyperTerminal configured and running on the host side, 286ecefae6dSMauro Carvalho Chehabyou should be able to send data back and forth between the gadget 287ecefae6dSMauro Carvalho Chehabside and host side systems. Anything you type on the terminal 288ecefae6dSMauro Carvalho Chehabwindow on the gadget side should appear in the terminal window on 289ecefae6dSMauro Carvalho Chehabthe host side and vice versa. 290