Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.


This feature permits the platform to attach to an USB host as a mass storage device or an ethernet device.

Release Note

The following SW will be provided:

  1. One new USB peripheral controller kernel driver.
  2. One patch to CDC-EEM/RNIDS gadget kernel driver.
  3. One patch to file-backed storage gadget kernel driver.
  4. One patch to gadget kernel makefile.
  5. One sample suite of both client and host applications available that use the above kernel components to create a specific solution. This solution will include a client side application that will allow the user to select which folder to share, and then use this information to setup a network share drive. The solution will also include a host side utility that will be presented to the host system via the mass storage device. If this host application were run by the host then the host will setup the network over USB connection and mount the shared drive that the client side utility recently made available. The host application can work on Ubuntu MID distro.


This is a common feature for current non-Linux based handheld platform and is expected by users.

Use Cases

* Scenario #1 – Data transfer/synchronize: As a companion device, MID can transfer/synchronize data to/from PC or another MID. MID’s data exposes to Host side (PC, UMPC or another MID) as a hard drive or network sharing folder.

* Scenario #2 - Internet connection sharing (ICS): (optional) If one of the two devices (MID and PC/MID and MID) either has no connection to the internet or has a slower or more expensive connection than the other, the optimal connection could be shared through the USB Client cable connection


The USB Client hardware is Intel Poulsbo. The composite device mode of both mass storage device and Ethernet device enabled at the same time is not supported.

The composite device mode of both mass storage device and Ethernet device enabled at the same time is not supported.



The design is based on Linux USB gadget API framework. The peripheral controller driver implements the following functions according to Poulsbo USB client controller hardware:

Mass storage gadget driver follows the protocol USB Mass Storage Bulk-Only Transport. It handles SCSI commands from host and USB requests bypassed from controller for device/config/interface descriptor setting.

CDC-EEM/RNDIS gadget driver follows Microsoft Remote NDIS Specification. It is responsible for the following operations:

Utility provides end-user an easy way to use exposed device by gadget drivers. It will use samba service to mount shared image file and DHCP to set IP address.


USB Client support is being implemented by an Intel SW team in China and provided to the Ubuntu team for integration.

UI Changes

Code Changes


Test/Demo Plan

Intel SW team in China will do the testing work.

Outstanding Issues

BoF agenda and discussion


MobileAndEmbedded/USBClient (last edited 2008-08-06 16:16:56 by localhost)