USB HID Drivers on OpenSolaris and Linux By Example. Copyright 2009: Max Bruning Kernel Conference Australia, July, 2009
|
|
- Sibyl Lamb
- 7 years ago
- Views:
Transcription
1 USB HID Drivers on OpenSolaris and Linux By Example Copyright 2009: Max Bruning Kernel Conference Australia, July, 2009
2 Topics Covered Description of Wacom Tablet USB HID Device Driver Overview Linux Input Event Subsystem Overview HID Driver Framework on OpenSolaris Wacom Kernel Module and X Input Extension Library on OpenSolaris
3 Overview of the Wacom Tablet Tablet models come in different sizes and features Each tablet comes with a pen with replaceable stylus and side switches Tablet can send proximity events, absolute pen coordinates, pressure, height, tilt, pen serial number, and various expresskey events and slider(s) events Tablet contains HID boot protocol which allows pen to work like a mouse More information at
4 USB HID Device Overview Communication between HID devices and a HID driver are in the form of Device Descriptors and/or data Device Descriptor Configuration Descriptor Interface Descriptor Endpoint Descriptor HID Descriptor Report Descriptor Physical Descriptor Descriptors can be viewed using mdb(1)or prtpicl(1) See Device Class Definition for Human Interface Devices(HID)
5 Device Descriptors For Wacom Tablet # mdb -k Loading modules: [ unix genunix specfs dtrace mac cpu.generic uppc pcplusmp scsi_vhci zfs sockfs ip hook neti sctp arp usba uhci sd fctl md lofs audiosup fcip fcp random cpc crypto logindmux ptm ufs nsmb sppp ipc ] > ::prtusb INDEX DRIVER INST NODE VID.PID PRODUCT 1 ehci 0 pci17aa,200b No Product String 2 uhci 0 pci17aa,200a No Product String 3 uhci 1 pci17aa,200a No Product String 4 uhci 2 pci17aa,200a No Product String 5 uhci 3 pci17aa,200a No Product String 6 scsa2usb 1 storage External HDD 7 hid 0 mouse 056a.0065 MTE usb_mid 0 device Biometric Coprocessor >
6 Device Descriptors For Wacom Tablet (Continued) > ::prtusb -v -i 7 Add -t to also show HID Usage Tables INDEX DRIVER INST NODE VID.PID PRODUCT 7 hid 0 mouse 056a.0065 MTE-450 Device Descriptor usb_dev_descr_t from uts/common/sys/usb/usbai.h { blength = 0x12 bdescriptortype = 0x1 bcdusb = 0x200 BDeviceClass = 0 class info in interface descriptor bdevicesubclass = 0 bdeviceprotocol = 0 bmaxpacketsize0 = 0x40 idvendor = 0x56a Wacom vendor id idproduct = 0x65 Bamboo bcddevice = 0x108 imanufacturer = 0x1 iproduct = 0x2 iserialnumber = 0 bnumconfigurations = 0x1 }
7 Device Descriptors for Wacom Tablet (Continued) -- Active Config Index 0 Configuration Descriptor { blength = 0x9 bdescriptortype = 0x2 wtotallength = 0x22 bnuminterfaces = 0x1 bconfigurationvalue = 0x1 iconfiguration = 0x0 bmattributes = 0x80 bus powered bmaxpower = 0x16 44mA } Interface Descriptor { blength = 0x9 bdescriptortype = 0x4 binterfacenumber = 0x0 balternatesetting = 0x0 bnumendpoints = 0x1 binterfaceclass = 0x3 HID Class Device binterfacesubclass = 0x1 Device supports a boot interface binterfaceprotocol = 0x2 Boot protocol is mouse iinterface = 0x0 }
8 Device Descriptors For Wacom Tablet (Continued) HID Descriptor { blength = 0x9 bdescriptortype = 0x21 Assigned by USB, mouse bcdhid = 0x100 bcountrycode = 0x0 Not localized bnumdescriptors = 0x1 breportdescriptortype = 0x22 mouse wreportdescriptorlength = 0x92 } Endpoint Descriptor { blength = 0x7 bdescriptortype = 0x5 mouse bendpointaddress = 0x81 input endpoint number 1 bmattributes = 0x3 interrupt endpoint wmaxpacketsize = 0x9 binterval = 0x4 } >
9 Viewing Device Descriptors on Linux On Linux, USB device information, including descriptors, is located in /proc/bus/usb/devices Information is in ascii (so you can cat the file) See Documentation/usb/proc_usb_info.txt in the Linux source code lsusb -vvv also shows descriptors as well as HID Usage Tables
10 USB HID Device Drivers on Linux Drivers for HID devices on Linux can be implemented via: A kernel driver that communicates with a USB host controller driver via the usb-core API See Programming Guide for Linux USB Device Drivers A user level driver that communicates with the hid_input kernel module A user level driver that communicates with the hiddev kernel module Hid-input and hiddev communicate with the USB host controller driver via hid-core
11 USB HID Device Drivers on Linux (Continued) User level drivers communicate with kernel via libusb and/or libhid Note that the Wacom implementation on Linux consists of a kernel module that communicates directly with the USB host controller via usb-core User level communication with Wacom is via Linux generic input device (/dev/input/event#)
12 USB HID Device Drivers on OpenSolaris For HID devices, OpenSolaris provides the hid(7d)driver and hidparser kernel module hid(7d) handles all communication with the USB host controller via usba(7d) (analagous to usbcore on Linux) hid(7d) is a STREAMS driver Individual HID devices can use a STREAMS module pushed onto the driver to handle the device There is no documentation for writing such a module The hidparser module handles HID descriptors
13 USB HID Device Drivers on OpenSolaris (Continued) OpenSolaris also has support for libusb(3lib) Uses the ugen(7d) kernel driver to communicate with the USB host controller via usba(7d) OpenSolaris currently has no support for libdev or the Linux input device module There are currently hid(7d) STREAMS modules to support mouse, keyboard, and audio control devices.
14 Linux Input Device Handling Application Event Handler (evdev, keybdev, mousedev, joydev) input module Driver Application opens and reads from an input device (/dev/input/event#, for instance) Event Handler is a kernel module that gets input events from the input module The input module gets events from registered drivers, and passes them to registered handlers The driver handles the device. For USB, the driver communicates with the host controller via usb-core, or via hidcore Input events include a time stamp, type of event, code for event type, and a value For instance, a type of event might be a button event, the code indicates which button, and the value would indicate press or release.
15 Linux Input Device Handling USB Input Driver Example /* note that in this example, many details are omitted */ static int foo_probe(struct usb_interface *intf, Const struct usb_device_id *id) { struct foo *foo; /* private state data for device */ foo = kzalloc(sizeof(struct foo), GFP_KERNEL); input_dev = input_allocate_device(); foo->data = usb_buffer_alloc(dev, len, flags, &foo->data_dma); foo->irq = usb_alloc_urb(0, flags); input_dev->open = foo_open; input_dev->close = foo_close; /* initialize input_dev capabilities, i.e., */ /* set input_dev evbits and keybits (buttons, abs vs. rel, etc. */ /* tell input module about supported and min/max params */ /* for instance... */ input_set_abs_params(input_dev, ABS_X, minx, maxx, 0, 0); endp = intf->cur_altsetting->endpoint[i].desc; usb_fill_int_urb(foo->irq, dev, usb_rcvintpipe(dev, endp->bendpointaddress), foo->data, len, foo_irq, foo, endp->bendpointinterval); input_register_device(foo->dev); /* send/retrieve reports, as needed */ usb_set_report(...); }
16 Linux Input Device Handling USB Input Driver Example (Continued) Static void foo_irq(struct urb urb) /* called when data arrives from device (usb-core)*/ { struct foo *foo = (struct foo *)urb->context; unsigned char *data = foo->data; /* the data from the device */ struct input_dev *input_dev = foo->inputdev; switch(urb->status) { case 0: /* success, first process data, then send keys, abs/rel, events */ input_report_abs(input_dev, type, code, value); /* and/or input_event(), input_report_rel(), input_report_key() */ default: /* handle error */ }
17 Linux Input Device Handling Input Module Each input device module maintains bit field arrays of capabilities of the underlying device Device driver fills in bits for corresponding capabilities supported by the device Events Keys Relative Positions Absolute Positions Miscellaneous Events LEDs Sound Effects Force Feedback Events Switches Device drivers tell the input module about events that have occurred Input module checks to make sure the device is capable of generating the event Then the input module passes the event to interested event handler(s), or sent to the device (to turn on/off an LED, for instance) The input module is meant for generic input device handling, currently only used with usb
18 Linux Input Device Handling Event Handler (evdev) The evdev module is meant for processing of generic events Other event handlers exist (mouse, keyboard, joystick), and others can be added evdev places the event in a client buffer and sends a SIGIO to waiting application Applications using evdev will first open an event device (/dev/input/event# where # is between 0 and 31) corresponding to the device for which the application expects events Handler is added for device during input_register_device() Applications must search /dev/input/event# devices to find correct corresponding device (open and then get vendor/product id)
19 Linux Input Device Handling Application Level User level code typically implemented in a library (foo_drv.so) 1. Applications wishing to use the device link with the library For the X windowing system, the library does the following actions: 1. The ModuleSetupProc function tells X about the new input driver 2.The PreInit function loads the kernel foo driver and the event handler module (for instance, evdev) 3.The device_control function, on DEVICE_INIT, opens each /dev/input/event# device until it finds one corresponding to the correct underlying hardware 4. The read_input function is called whenever packets are ready to be read by the server. i. For each packet read, read_input gathers the packets until it has enough information to send event(s) associated with the packet(s) ii. Once all packets have been read, the library calls xf86postxxxevent()to dispatch button press/release, motion, keystrokes, etc. events to the X server. A description of the above functions can be found at
20 HID Framework on OpenSolaris (Example) Application streamhead streamhead Consms STREAMS Multiplexor usbms Conskbd STREAMS Multiplexor usbkbm Hid Driver Hid Driver usba Host Controller Driver ehci/ohci/uhci
21 Wacom Tablet on OpenSolaris 3 versions Modified usbms module Implement input device handling in kernel module Re-Implement Xinput library module
22 Wacom Driver as Modified usbms Application streamhead streamhead usbms Consms STREAMS Multiplexor usbms Usbms modified to support both mouse and tablet All tablet events sent as mouse events Version has been in production for 2 years Hid Driver Hid Driver usba Host Controller Driver ehci/ohci/uhci
23 Problems with First Solution The first iteration was implemented because I could not find a way to pop the usbms module Plumbing of usbms module done by consconfig_dacf kernel module based on dacf.conf(4) Boot protocol identifies tablet as a mouse No tablet key support (pen, erasor, and side switches work) On SPARC, hwc module caused problem All handling of tablet specific data done by modified usbms module
24 Wacom Module Implementing Linux input Events Problem of mouse boot protocol goes away by open(2) of the underlying device (usbms module is popped) wacom STREAMS module pushed onto hid by modified Linux wacom_drv.so library Otherwise, wacom_drv.so needs no modification wacom module converts raw input from tablet into input_event structures expected by library module All features of tablet now work
25 Problems with Second Solution The Linux solution does much of the processing twice, once in the kernel module, and again in the library Licensing (But we won't talk about this...)
26 Wacom on OpenSolaris Yet Another Solution wacom kernel module puts the tablet into pen mode, and sends raw tablet data to consumers The X input library, wacom_drv.so, accepts raw data, converts into X events, and sends the events. Currently, solution is using some Linux library code So, not yet released for OpenSolaris
27 Wacom Kernel Module Sending a Report wacom_get_vid_pid(wacom_state_t wacomp) /* called from module open */ { struct iocblk mctlmsg; mblk_t *mctl_ptr; dev_info_t *devinfo; queue_t *q = wacomp->wacom_rq_ptr; mctlmsg.ioc_cmd = HID_GET_VID_PID; mctlmsg.ioc_count = 0; mctl_ptr = usba_mk_mctl(mctlmsg, NULL, 0); } putnext(wacomp->wacom_wq_ptr, mctl_ptr); wacomp->wacom_flags = WACOM_QWAIT; while (wacomp->wacom_flags & WACOM_QWAIT) { if (qwait_sig(q) == 0) { wacomp->wacom_flags = 0; return (EINTR); } } Return(0);
28 Wacom Kernel Module Reading a Report The hid module acts on M_CTL messages and sends another M_CTL message upstream The wacom module, when it receives the answering M_CTL message, takes appropriate action (for instance, waking up code in the open function), and discards the message All tablet data is received as M_DATA messages, which are passed upstream with no processing
29 Acknowledgements Philip Brown's Wacom driver has been helpful, see Strony Zhang at Sun Microsystems Various people at Wacom James McPherson The Queensland Brain Institute The Source
Simplified Description of USB Device Enumeration
Future Technology Devices International Ltd. Technical Note TN_113 Simplified Description of USB Device Enumeration Document Reference No.: FT_000180 Issue Date: 2009-10-28 USB Enumeration is the process
More informationAN295 USB AUDIO CLASS TUTORIAL. 1. Introduction. 2. USB, Isochronous Transfers, and the Audio Class. 1.1. Overview. 2.1. USB Operational Overview
USB AUDIO CLASS TUTORIAL 1. Introduction Isochronous data transfers can be used by universal serial bus (USB) devices designed to transfer data to or from a host at a constant rate. Systems streaming audio
More informationAN249 HUMAN INTERFACE DEVICE TUTORIAL. Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1.
HUMAN INTERFACE DEVICE TUTORIAL Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1. Introduction The Human Interface Device (HID) class specification allows designers to create
More informationAN1164. USB CDC Class on an Embedded Device INTRODUCTION ASSUMPTIONS FEATURES LIMITATIONS
USB CDC Class on an Embedded Device AN1164 Author: Bud Caldwell Microchip Technology Inc. INTRODUCTION The Universal Serial Bus (USB) has made it very simple for end users to attach peripheral devices
More informationBypassing Endpoint Security for $20 or Less. Philip A. Polstra, Sr. @ppolstra ppolstra.blogspot.com
Bypassing Endpoint Security for $20 or Less Philip A. Polstra, Sr. @ppolstra ppolstra.blogspot.com Roadmap Why this talk? Who is this dude talking at me? Brief history of USB How does USB work? It s all
More informationPL2571 (Chip Rev B) Hi-Speed USB to SATA Bridge Controller Product Datasheet
PL2571 (Chip Rev B) Hi-Speed USB to SATA Bridge Controller Product Datasheet Document Revision: 1.3 Document Release: Prolific Technology Inc. 7F, No. 48, Sec. 3, Nan Kang Rd. Nan Kang, Taipei 115, Taiwan,
More informationControlling EIB/KNX Devices from Linux using USB. Heinz W. Werntges. University of Applied Sciences Wiesbaden. Jens Neumann and Vladimir Vinarski
Fachhochschule Wiesbaden - Controlling EIB/KNX Devices from Linux using USB Heinz W. Werntges University of Applied Sciences Wiesbaden Jens Neumann and Vladimir Vinarski Loewe Opta GmbH, Kompetenzzentrum
More informationSMART Modular Small Form Factor USB Key
SMART Modular Small Form Factor USB Key SH9MKxxGQxx Rev E www.smartm.com REVISION HISTORY Date Revision Section(s) Description June 2014 A All Initial release October 2014 B 1.4.1, 1.4.2, 2.2, 4.2, 4.4,
More informationUniversal Serial Bus Device Class Definition for Printing Devices
Universal Serial Bus Device Class Definition for Printing Devices Version 1.1 January 2000 Contributors Axiohn IPB Kevin Butler Kevin.Butler@axiohm.com Canon Sadahiko Sano sano@cse.canon.co.jp Canon Naoki
More informationAVR32807: Getting Started with the AVR UC3 Software Framework USB Classes. 32-bit Microcontrollers. Application Note. Features.
AVR32807: Getting Started with the AVR UC3 Software Framework USB Classes Features Full Speed (12Mbit/s) and High Speed (480Mbit/s) data rates Control, Bulk, Isochronuous and Interrupt transfer types Device
More informationUniversal Serial Bus Mass Storage Class. Bulk-Only Transport
Universal Serial Bus Mass Storage Class Bulk-Only Transport Revision 1.0 Change History Revision Issue Date Comments 0.7 September 23, 1998 Initial draft, pre-release 0.8 October 6, 1998 Revisions made
More informationPL-2303HX Edition (Chip Rev A) USB to Serial Bridge Controller Product Datasheet
PL-2303HX Edition (Chip Rev A) USB to Serial Bridge Controller Product Datasheet Document Revision: 1.6 Document Release: Prolific Technology Inc. 7F, No. 48, Sec. 3, Nan Kang Rd. Nan Kang, Taipei 115,
More informationExploiting USB Devices with Arduino. Greg Ose greg@nullmethod.com Black Hat USA 2011
Exploiting USB Devices with Arduino Greg Ose greg@nullmethod.com Black Hat USA 2011 Abstract Hardware devices are continually relied upon to maintain a bridge between physical and virtual security. From
More informationNitrogen D2 16-Bit Stereo USB Audio Controller. Datasheet Version 1.02
The Best USB Audio Single Chip for Stereo Digital Adaptor Application Nitrogen D2 16-Bit Stereo USB Audio Controller (Dolby Digital Live and DTS Interactive Software Technology Bundle) Datasheet Version
More informationA Development Platform for Microcontroller STM32F103
MEE09:49 A Development Platform for Microcontroller STM32F103 This thesis is presented as part of Degree of Master of Science in Electrical Engineering Blekinge Institute of Technology March 2009 By: Ehsan
More informationCM108 High Integrated USB Audio I/O Controller. DataSheet 1.6
SS Best USB Audio I/O Controller for Headset and Multi-Media Devices High Integrated USB Audio I/O Controller DataSheet 1.6 C-MEDIA ELECTRONICS INC. TEL: 886-2-8773-1100 FAX: 886-2-8773-2211 6F, 100, Sec.
More informationTB055. PS/2 to USB Mouse Translator IMPLEMENTATION OVERVIEW. Hardware FIGURE 1: PS/2 TO USB MOUSE TRANSLATOR HARDWARE DIAGRAM (1)
PS/2 to USB Mouse Translator TB55 Author: OVERVIEW Reston Condit Microchip Technology Inc. This Technical Brief details the translation of a PS/2 mouse to a USB mouse using the PIC16C745/765. The PIC16C745/765
More informationTouchKit driver user guide for Linux
TouchKit driver user guide for Linux This driver/utility package supports TouchKit controllers only. All of versions support RS232 and USB interfaces of controllers. The module version later than 1.06
More informationApplication Note. 8-bit Microcontrollers. AVR276: USB Software Library for AT90USBxxx Microcontrollers
: USB Software Library for AT90USBxxx Microcontrollers Features Low Speed (1.5Mbit/s) and Full Speed (12Mbit/s) data rates Control, Bulk, Isochronuous and Interrupt transfer types Up to 6 data endpoints/pipes
More informationTivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG-2.1.1.71. Copyright 2008-2015 Texas Instruments Incorporated
TivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG-2.1.1.71 Copyright 2008-2015 Texas Instruments Incorporated Copyright Copyright 2008-2015 Texas Instruments Incorporated. All rights reserved. Tiva and
More informationAN1163. USB HID Class on an Embedded Device FEATURES INTRODUCTION LIMITATIONS ASSUMPTIONS SYSTEM HARDWARE. Microchip Technology Inc.
USB HID Class on an Embedded Device AN1163 Author: INTRODUCTION The Human Interface Device (HID) is a class for use with Universal Serial Bus (USB). The HID class consists of devices that a human may use
More informationUSB Overview. This course serves as an introduction to USB.
USB Overview This course serves as an introduction to USB. 1 Agenda USB overview USB low level data transfer USB protocol structure USB chapter 9 structure Enumeration Standard classes Firmware example
More informationAVR069: AVRISP mkii Communication Protocol. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR069: AVRISP mkii Communication Protocol Features General commands ISP commands Return values Parameters 1 Introduction This document describes the AVRISP mkii protocol. The firmware is distributed with
More informationOperating Systems Design 16. Networking: Sockets
Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski pxk@cs.rutgers.edu 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify
More informationUM0801-03. PN533 User Manual. Document information. Keywords NFC, PN533, V2.7. This document describes the firmware V2.7 embedded in the PN533.
Rev. 03 User Manual Document information Info Content Keywords NFC, PN533, V2.7 Abstract This document describes the firmware V2.7 embedded in the PN533. Revision history 01 2008-04-01 Initial version
More informationAn Analysis of Wireless Device Implementations on Universal Serial Bus
An Analysis of Wireless Device Implementations on Universal Serial Bus 6/3/97 Abstract Universal Serial Bus (USB) is a new personal computer (PC) interconnect that can support simultaneous attachment of
More informationpython-escpos Documentation
python-escpos Documentation Release 1.0.8 Manuel F Martinez and others March 14, 2016 Contents 1 User Documentation: 3 2 API: 13 3 Indices and tables 17 Python Module Index 19 i ii Python ESC/POS is a
More informationDetermining USB Peripheral Device Class
Future Technology Devices International Ltd. Application Note AN_174 Determining USB Peripheral Device Class Document Reference No.: FT_000447 Issue Date: 2011-05-23 This document will demonstrate how
More informationFreescale MQX USB Device User Guide
Freescale MQX USB Device User Guide MQXUSBDEVUG Rev. 4 02/2014 How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable system
More informationEthernet Interface Manual Thermal / Label Printer. Rev. 1.01 Metapace T-1. Metapace T-2 Metapace L-1 Metapace L-2
Ethernet Interface Manual Thermal / Label Printer Rev. 1.01 Metapace T-1 Metapace T-2 Metapace L-1 Metapace L-2 Table of contents 1. Interface setting Guiding...3 2. Manual Information...4 3. Interface
More informationApplication Note: AN00131 USB CDC-ECM Class for Ethernet over USB
Application Note: AN00131 USB CDC-ECM Class for Ethernet over USB This application note shows how to create a USB device compliant to the standard USB Communications Device Class (CDC) and the Ethernet
More informationCOS 318: Operating Systems. I/O Device and Drivers. Input and Output. Definitions and General Method. Revisit Hardware
COS 318: Operating Systems I/O and Drivers Input and Output A computer s job is to process data Computation (, cache, and memory) Move data into and out of a system (between I/O devices and memory) Challenges
More informationIDDERO HOME SERVER. Quick start guide. www.iddero.com 150302-02
IDDERO HOME SERVER Quick start guide www.iddero.com 150302-02 TABLE OF CONTENTS 1 INTRODUCTION... 3 2 IDDERO CONFIGURATION SOFTWARE... 3 2.1 Installation and First Steps...3 3 IDDERO HOME SERVER CONFIGURATION...
More informationAtmel AVR4950: ASF - USB Host Stack. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction
Atmel AVR4950: ASF - USB Host Stack Features USB 2.0 compliance - Chapter 9 - Control, Bulk, Isochronous and Interrupt transfer types - Low Speed (1.5Mbit/s), Full Speed (12Mbit/s), High Speed (480Mbit/s)
More informationControlling EIB/KNX devices from Linux using USB
Controlling EIB/KNX devices from Linux using USB Heinz W. Werntges 1 Fachbereich Informatik, Univ. of Applied Sciences Wiesbaden Jens Neumann and Vladimir Vinarski Loewe Opta GmbH, Kompetenzzentrum Hannover
More informationFollow these steps to prepare the module and evaluation board for testing.
2 Getting Started 2.1. Hardware Installation Procedure Follow these steps to prepare the module and evaluation board for testing. STEP1: Plug the EG-SR-7100A module into the sockets on the test board.
More informationLinux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
More informationLinux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah payberah@yahoo.com Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
More informationFreescale MQX RTOS USB Host User s Guide
Freescale MQX RTOS USB Host User s Guide MQXUSBHOSTUG Rev. 7 08/2014 How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable
More informationThe Answer to the 14 Most Frequently Asked Modbus Questions
Modbus Frequently Asked Questions WP-34-REV0-0609-1/7 The Answer to the 14 Most Frequently Asked Modbus Questions Exactly what is Modbus? Modbus is an open serial communications protocol widely used in
More informationUseful USB Gadgets on Linux
Useful USB Gadgets on Linux February, 2012 Gary Bisson Adeneo Embedded Embedded Linux Conference 2012 1 Agenda Introduction to USB USB Gadget API Existing Gadgets Design your own Gadget Demo Conclusion
More informationLearning USB by Doing. John.Hyde@intel.com
Learning USB by Doing. John.Hyde@intel.com The question that I am asked most often is how do I start a USB project? There are many alternate starting points for the design of a USB I/O device and this
More informationApplication Note. 8-bit Microcontrollers. AVR270: USB Mouse Demonstration
AVR270: USB Mouse Demonstration Features Runs with AT90USB Microcontrollers at 8MHz USB Low Power Bus Powered Device (less then 100mA) Supported by any PC running Windows (98SE or later), Linux or Mac
More informationS7 for Windows S7-300/400
S7 for Windows S7-300/400 A Programming System for the Siemens S7 300 / 400 PLC s IBHsoftec has an efficient and straight-forward programming system for the Simatic S7-300 and ern controller concept can
More informationUser s Guide for Polycom CX7000 Systems
User s Guide for Polycom CX7000 Systems 1.1 August 2012 3725-63878-001/C Trademark Information Polycom, the Polycom Triangles logo, and the names and marks associated with Polycom s products are trademarks
More informationBluetooth HID Profile
RN-WIFLYCR-UM-.01 RN-HID-UM Bluetooth HID Profile 2012 Roving Networks. All rights reserved. Version 1.0r 1/17/2012 USER MANUAL www.rovingnetworks.com 1 OVERVIEW Roving Networks Bluetooth modules support
More informationI/O Device and Drivers
COS 318: Operating Systems I/O Device and Drivers Prof. Margaret Martonosi Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall11/cos318/ Announcements Project
More informationSocket Programming in C/C++
September 24, 2004 Contact Info Mani Radhakrishnan Office 4224 SEL email mradhakr @ cs. uic. edu Office Hours Tuesday 1-4 PM Introduction Sockets are a protocol independent method of creating a connection
More informationObjectives of Lecture. Network Architecture. Protocols. Contents
Objectives of Lecture Network Architecture Show how network architecture can be understood using a layered approach. Introduce the OSI seven layer reference model. Introduce the concepts of internetworking
More informationAN1169. USB Mass Storage Class on an Embedded Device FEATURES INTRODUCTION LIMITATIONS ASSUMPTIONS SYSTEM HARDWARE. Microchip Technology Inc.
USB Mass Storage Class on an Embedded Device Author: INTRODUCTION In recent years, there has been immense growth in Universal Serial Bus (USB) based applications, primarily due to the Plug-and-Play nature
More informationDo More With Less. On Driver-less Interfacing with Embedded Devices. Peter Korsgaard <peter@korsgaard.com>
Do More With Less On Driver-less Interfacing with Embedded Devices Peter Korsgaard NSLU2-Linux Peter Korsgaard Driver-less Interfacing? Interfacing without having to install any custom
More informationMotion Control Products Application note Connecting CP600 to motion products via Modbus TCP
Motion Control Products Application note Connecting CP600 to motion products via Modbus TCP AN00199-002 Seamless high speed Ethernet communication between HMI and motion products Introduction The CP600
More informationNetwork packet capture in Linux kernelspace
Network packet capture in Linux kernelspace An overview of the network stack in the Linux kernel Beraldo Leal beraldo@ime.usp.br http://www.ime.usp.br/~beraldo/ Institute of Mathematics and Statistics
More informationi.mx USB loader A white paper by Tristan Lelong
i.mx USB loader A white paper by Tristan Lelong Introduction This document aims to explain the serial downloader feature of i.mx SoCs on Linux (available across i.mx family starting with i.mx23). This
More informationQuick installation guide for the Vista Quantum QNVR Network Video Recorder
QNVR range Quick Instalation guide Quick installation guide for the Vista Quantum QNVR Network Video Recorder Full manual found on the CD supplied with the NVR Contents SCOPE OF USE... 3 1. FRONT PANEL
More informationVMware Server 2.0 Essentials. Virtualization Deployment and Management
VMware Server 2.0 Essentials Virtualization Deployment and Management . This PDF is provided for personal use only. Unauthorized use, reproduction and/or distribution strictly prohibited. All rights reserved.
More informationData Transfer between Serial Link and TCP/IP Link Using ez80f91 MCU
Application Note Data Transfer between Serial Link and TCP/IP Link Using ez80f91 MCU AN021904 0808 Abstract This application note describes Zilog s ez80 - based Serial-to-TCP and TCP-to-Serial communicator
More informationFeature Check. elux Operating Systems. Feature Check
elux Operating Systems Operating System Linux Kernel 2.6.37 Linux Kernel 2.6.38 Linux Kernel 3.4.71 XORG Graphics Qt 4 Hardware independent supports all established Thin Client platforms Supports standard
More informationELEN 602: Computer Communications and Networking. Socket Programming Basics
1 ELEN 602: Computer Communications and Networking Socket Programming Basics A. Introduction In the classic client-server model, the client sends out requests to the server, and the server does some processing
More informationTabletWorks Help Index 1
TabletWorks Help Index 1 When the driver for your tablet type has been installed, the TabletWorks Control Panel is set up on the Windows Control Panel. The TabletWorks Control Panel is divided into several
More informationEmbedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
More informationCreating a More Secure Device with Windows Embedded Compact 7. Douglas Boling Boling Consulting Inc.
Creating a More Secure Device with Windows Embedded Compact 7 Douglas Boling Boling Consulting Inc. About Douglas Boling Independent consultant specializing in Windows Mobile and Windows Embedded Compact
More informationBLUETOOTH SERIAL PORT PROFILE. iwrap APPLICATION NOTE
BLUETOOTH SERIAL PORT PROFILE iwrap APPLICATION NOTE Thursday, 19 April 2012 Version 1.2 Copyright 2000-2012 Bluegiga Technologies All rights reserved. Bluegiga Technologies assumes no responsibility for
More informationInput and Interaction
Input and Interaction 1 Objectives Introduce basic input devices Physical Devices Logical Devices Input Modes Event-driven input Introduce double buffering for smooth animations Programming event input
More informationChapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components
More informationwww.dragino.com Yun Shield Quick Start Guide VERSION: 1.0 Version Description Date 1.0 Release 2014-Jul-08 Yun Shield Quick Start Guide 1 / 14
Yun Shield Quick Start Guide VERSION: 1.0 Version Description Date 1.0 Release 2014-Jul-08 Yun Shield Quick Start Guide 1 / 14 Index: 1 Introduction... 3 1.1 About this quick start guide... 3 1.2 What
More informationAddendum. Additional materials of interest to Stellaris users
Addendum Additional materials of interest to Stellaris users USB Examples for EKx-LM3S3748 Evaluation Kit USB Boot Loader Demos 1 and 2... 3 USB Generic Bulk Device... 4 USB HID Keyboard Device... 4 USB
More informationLeveraging the Android Accessory Protocol
Leveraging the Android Accessory Protocol Gary Bisson Adeneo Embedded gbisson@adeneo-embedded.com Android Builders Summit 2013 1 Session Overview Introduction to Android Open Accessory Protocol specifications
More informationWireless Laser Barcode Scanner ils 6300BU. User s Manual
Wireless Laser Barcode Scanner ils 6300BU User s Manual FCC Compliance This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to Part 15 of the FCC Rules.
More informationCS 326e F2002 Lab 1. Basic Network Setup & Ethereal Time: 2 hrs
CS 326e F2002 Lab 1. Basic Network Setup & Ethereal Time: 2 hrs Tasks: 1 (10 min) Verify that TCP/IP is installed on each of the computers 2 (10 min) Connect the computers together via a switch 3 (10 min)
More informationCCEVS Approved Assurance Continuity Maintenance Report
Record ID: VID10486-0004-ACMR TM CCEVS Approved Assurance Continuity Maintenance Report Product: Orchestrator 4.6 EAL: 2 augmented with ALC_FLR.3 Date of Activity: 25 March 2013 References: Documentation
More informationWA Manager Alarming System Management Software Windows 98, NT, XP, 2000 User Guide
WA Manager Alarming System Management Software Windows 98, NT, XP, 2000 User Guide Version 2.1, 4/2010 Disclaimer While every effort has been made to ensure that the information in this guide is accurate
More informationMS Windows DHCP Server Configuration
MS Windows DHCP Server Configuration Abstract This document describes how to configure option 43 on a Microsoft Windows 2000/2003 DHCP server. This information may be used in an Aruba Networks solution
More informationPCI-to-SATA RAID Adapter AEC-6890M. User s Manual Version:1.0
PCI-to-SATA RAID Adapter AEC-6890M User s Manual Version:1.0 Copyright 2003 ACARD Technology Corp. Release: August 2003 Copyright and Trademarks The information of the product in this manual is subject
More informationLab 2.0 Thermal Camera Interface
Lab 2.0 Thermal Camera Interface Lab 1 - Camera directional-stand (recap) The goal of the lab 1 series was to use a PS2 joystick to control the movement of a pan-tilt module. To this end, you implemented
More informationA Design of Video Acquisition and Transmission Based on ARM. Ziqiang Hao a, Hongzuo Li b
A Design of Video Acquisition and Transmission Based on ARM Ziqiang Hao a, Hongzuo Li b Changchun University of Science & Technology, Changchun, Jilin, China a shuil47@163.com, b lihongzuo@sohu.com Keywords:video
More informationObjectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
More informationDatabase Toolkit: Portable and Cost Effective Software
Database Toolkit: Portable and Cost Effective Software By Katherine Ye Recursion Software, Inc. TABLE OF CONTENTS Abstract...2 Why using ODBC...2 Disadvantage of ODBC...3 Programming with Database Toolkit...4
More informationTable of Contents. Wacom Tablet HOWTO
Table of Contents Wacom Tablet HOWTO..1 Stefan Runkel .1 1. Copyright1 2. Introduction1 3. Requirements1 4. Tablets as Mouse Replacement for the Linux Console1 5. Tablets with XFree
More informationApplication Note: AN00121 Using XMOS TCP/IP Library for UDP-based Networking
Application Note: AN00121 Using XMOS TCP/IP Library for UDP-based Networking This application note demonstrates the use of XMOS TCP/IP stack on an XMOS multicore micro controller to communicate on an ethernet-based
More informationThe POSIX Socket API
The POSIX Giovanni Agosta Piattaforme Software per la Rete Modulo 2 G. Agosta The POSIX Outline Sockets & TCP Connections 1 Sockets & TCP Connections 2 3 4 G. Agosta The POSIX TCP Connections Preliminaries
More informationCS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study
CS 377: Operating Systems Lecture 25 - Linux Case Study Guest Lecturer: Tim Wood Outline Linux History Design Principles System Overview Process Scheduling Memory Management File Systems A review of what
More informationUsing PCoIP Zero Clients with PCoIP Host Cards
Using PCoIP Zero Clients with PCoIP Host Cards T E C H N I C A L N O T E S Table of Contents Preface..................................................................... 3 Additional Support.........................................................
More informationUser Manual Network Interface
User Manual Network Interface Rev. 1.00 SRP-350plusll SRP-352plusll http://www.bixolon.com Table of Contents 1. Manual Information...3 2. Specifications...3 2-1 Hardware version...3 2-2 Configuration Tool...3
More informationBitrix Site Manager 4.0. Quick Start Guide to Newsletters and Subscriptions
Bitrix Site Manager 4.0 Quick Start Guide to Newsletters and Subscriptions Contents PREFACE...3 CONFIGURING THE MODULE...4 SETTING UP FOR MANUAL SENDING E-MAIL MESSAGES...6 Creating a newsletter...6 Providing
More informationFor Windows XP 64 bit
Installation Guide Beta drivers for Windows XP[64], Win 7[32/64bit,], Win 8.1[64bit] This version of Orange-5 software introduces support for 64 bit operational systems (Win XP 64 bit, Win7 64, etc..).
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationOpen Arcade Architecture Device Data Format Specification
OAAD Data Format Specification 01/29/99 Page 1 of 27 Open Arcade Architecture Device Data Format Specification Rev. 1.100 November 5, 1998 Copyright 1998, Intel Corporation. All rights reserved. THIS SPECIFICATION
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationREAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating
More informationHelp. Contents Back >>
Contents Back >> Customizing Opening the Control Panel Control Panel Features Tabs Control Panel Lists Control Panel Buttons Customizing Your Tools Pen and Airbrush Tabs 2D Mouse and 4D Mouse Tabs Customizing
More informationEthernet 241 (USB/Serial) Quick Start Guide
Ethernet 241 (USB/Serial) Quick Start Guide I. Ethernet 241 Device Overview The Ethernet 241 device is a two port switch that interfaces a networked device (such as a printer) with a networked device server,
More informationKernel comparison of OpenSolaris, Windows Vista and. Linux 2.6
Kernel comparison of OpenSolaris, Windows Vista and Linux 2.6 The idea of writing this paper is evoked by Max Bruning's view on Solaris, BSD and Linux. The comparison of advantages and disadvantages among
More informationXinying Wang, Cong Xu CS 423 Project
Understanding Linux Network Device Driver and NAPI Mechanism Xinying Wang, Cong Xu CS 423 Project Outline Ethernet Introduction Ethernet Frame MAC address Linux Network Driver Intel e1000 driver Important
More informationIP SAN Fundamentals: An Introduction to IP SANs and iscsi
IP SAN Fundamentals: An Introduction to IP SANs and iscsi Updated April 2007 Sun Microsystems, Inc. 2007 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, CA 95054 USA All rights reserved. This
More informationAXIS Video Capture Driver. AXIS Video Capture Driver. User s Manual
AXIS Video Capture Driver User s Manual 1 Introduction The AXIS Video Capture Driver enables video stream input from one Axis network video product to be recorded and shown with third party products, e.g.
More informationQuick Start Guide v1.0. This Quick Start Guide is relevant to Laird s BT800, BT810 and BT820 Bluetooth modules.
v1.0 This is relevant to Laird s BT800, BT810 and BT820 Bluetooth modules. INTRODUCTION The Linux operating system, and Android by extension, has excellent USB support for a variety of devices. This makes
More informationExample of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
More informationIntroduction to Analyzer and the ARP protocol
Laboratory 6 Introduction to Analyzer and the ARP protocol Objetives Network monitoring tools are of interest when studying the behavior of network protocols, in particular TCP/IP, and for determining
More informationPacket Sniffing and Spoofing Lab
SEED Labs Packet Sniffing and Spoofing Lab 1 Packet Sniffing and Spoofing Lab Copyright c 2014 Wenliang Du, Syracuse University. The development of this document is/was funded by the following grants from
More information