Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI This information is Copyright 2008 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: usbutils for OpenSolaris 1.2. Name of Document Author/Supplier: Author: Henry Zhang 1.3 Date of This Document: 11 August, 2008 4. Technical Description 1. Introduction
1.1. Project/Component Working Name: usbutils 0.73 1.2. Name of Document Author/Supplier: Henry Zhang (hua.zhang at sun.com) 1.3. Date of This Document: 25/06/08 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The PAC or CPT you expect to review your project: Solaris PAC 1.4.2. The ARC(s) you expect to review your project: LSARC 1.4.3. The Director/VP who is "Sponsoring" this project: Robert.Odea at Sun.Com 1.4.4. The name of your business unit: JDS Desktop Engineering, OPG 1.5. Email Aliases: 1.5.1. Responsible Manager: leo.binchy at Sun.COM 1.5.2. Responsible Engineer: hua.zhang at Sun.COM 1.5.3. Marketing Manager: jeff.mcmeekin at sun.com 1.5.4. Interest List: usbutils at sun.com 2. Project Summary 2.1. Project Description: Usbutils package contains a utility used to display information about system USB buses and the devices connected to them. The current version is 0.73. 2.2. Risks and Assumptions: 1. Usbutil uses libusb on Solaris, currently libusb can only wrok with the usb devices that support the Ugen driver, so this tool will only display all USB devices with Ugen. We will add a note into the manpage. 2. Some of the features of this tool depend on the Linux kernel which has /proc/bus/usb, but on Solaris we do not provide this interface. We can display the information by using libusb, so we will remove or change those functions relative with /proc/bus/usb. 3. Business Summary 3.1. Problem Area: USB and the USB devices are popular and used in all kinds of systems currently, and there is the strong requirement for user to understand what the system USB bus topology is, and what devices are connected to the USB bus. User may also want to know information about these USB devices, for example vendor name, product name, and other information on this devices. Usbutils is used to show what USB devices exist and what the USB device tree looks like. 3.2. Market/Requester: JDS Desktop group 3.3. Business Justification: As we can see, more and more systems support USB, and more and more devices are using USB to connect. The USB utility is necessary for the system, it can give user some useful information, in fact lots of USB tool is developed and used. Solaris does not has this type of tool for user to view the system USB and the information about the devices connected to USB, so this tool will benefit Solaris and make it more competitive. 3.4. Competitive Analysis: Now on Linux, this type of USB utility has been available for long time, and lots of similar tools have been developed for Windows, MacOS, for example, USBDeview etc. 3.5. Opportunity Window/Exposure: It is expected that this project will be integrated into Nevada B100. 3.6. How will you know when you are done?: When usbutils is ported to Nevada and runs correctly. The project will be complete when there are no stoppers, P1 or P2 bugs. 4. Technical Description: 4.1. Details: Usbutils shows a graphical representation of the devices that are currently plugged in, showing the topology of the USB bus. It also displays information on each individual device on the bus. It's composed of lsusb and update-usbids. The update-usbids is in the source codes, which is used to download the current version of the USB ID list, named usb.ids, which requires Wget-1.10.2 or Lynx-2.8.6rel.5. update-usbids is run to get the latest usb list into the source code, and then when building the source codes, this latest list will be installed into your system. Later user can get the latest list by accessing the webpage directly, http://www.linux-usb.org/usb.ids. This information will be added into the manpage, so that the user knows how to get the USB ID list. lsusb is a utility for displaying information about all USB buses in the system and all devices connected to them, lsusb support USB 2.0 features, This version of lsusb uses the system's version of 'libusb', rather than its own private copy. 4.2. Bug/RFE Number(s): RFE 6732523 4.3. In Scope: Display the information we can get from libusb 4.4. Out of Scope: Display the detailed information listed in /proc/bus/usb, because at Solaris we have no this file. 4.5. Interfaces: Imported Interfaces Interface Stability Comments ------------------- ----------- ----------------------------------- libusb Volatile PSARC/2003/721 libc6 Committed Exported Interfaces Stability Comments ------------------------- ------------- --------------------------------- /usr/bin/lsusb Volatile Used to display USB & devices /usr/share/usb.ids Project Private A list of all known USB ID SUNWusbutils Uncommitted Package name 4.6. Doc Impact: Man page docs will need to be updated with Sun specific information (ATTRIBUTES, etc.). 4.7. Admin/Config Impact: There are no changes to the system administration and configuration. 4.8. HA Impact: N/A 4.9. I18N/L10N Impact: Not be needed, since this utility provides the command line command. 4.10. Packaging & Delivery: The new packages are: - SUNWusbutils 4.11. Security Impact: There is no additional security impact for Solaris. 4.12. Dependencies: Minimal dependencies: libc6 >= 2.3.5-1: GNU C programming libary libusb >=0.1.8: userspace USB programming library see PSARC/2003/721 5. Reference Documents: usbutils main project page: http://www.linux-usb.org/ libusb home page: http://www.libusb.sourceforge.net Usbutils soucecode repositories: http://sourceforge.net/project/showfiles.php?group_id=3581&package_id=142529 6. Resources and Schedule: 6.1. Projected Availability: Expect to be integrated into Nevada in build 100 in Q4 2008 6.2. Cost of Effort: Development 1.0 Engineers - 2 Months Testing 0.5 Engineers - 1 Months RE 0.5 Engineers - 1 Months 6.3. Cost of Capital Resources: N/A 6.4. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: JDS / OpenSolaris 6.4.3. Type of CPT Review and Approval expected: Standard 6.4.4. Project Boundary Conditions: None 6.4.5. Is this a necessary project for OEM agreements: No 6.4.6. Notes: N/A 6.4.7. Target RTI Date/Release: Nevada B100 - Sep. 2008 6.4.8. Target Code Design Review Date: Aug. 2008 6.4.9. Update approval addition: New project, no Solaris PAC approval yet 6.5. ARC review type: FastTrack 7. Prototype Availability: 7.1. Prototype Availability: Aug. 2008 7.2. Prototype Cost: 1 engineer 1 QA 1 RE 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: Desktop 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open