Title: Front page
1Front page
- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
USB Monitoring
Update 6th December 2000 David Harding
2USB System Model
- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
DD
DD
DD
Host computer
Debug Information
Modified USB core
Host controller driver
Host OS
Hub
Monitoring Application
Hub
Keyboard
Hub
Camera
CD-ROM
Printer
Scanner
3- Progress
- Much greater understanding of how the USB part
of the Linux kernel works. - Learnt about the mechanics of kernel
communication. (/proc and system calls) - Written my first kernel module.
- Researched suitability of Java vs. Gtk for the
GUI. - Interface design for the kernel part of the
project. - Partial Code Design for kernel code.
- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
4- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
Initial Design
DD
DD
DD
Debug Information
Modified USB core
Host controller driver
Host OS
All information through one channel
Monitoring Application
5- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
Revised Design
New system calla
DD
DD
DD
Debug Information
Modified USB core
Just data transfers
Host controller driver
Host OS
/proc/bus/usb/devices
New /proc file
Use existing Configuration Channel, and create
new Data channel
Monitoring Application
6- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
Revised Design
/proc/bus/usb/devices
T Bus00 Lev00 Prnt00 Port00 Cnt00 Dev 1
Spd12 MxCh 2 B Alloc 28/900 us ( 3), Int
2, Iso 0 D Ver 1.00 Cls09(hub ) Sub00
Prot00 MxPS 8 Cfgs 1 P Vendor0000
ProdID0000 Rev 0.00 C Ifs 1 Cfg 1 Atr40
MxPwr 0mA I If 0 Alt 0 EPs 1 Cls09(hub )
Sub00 Prot00 Driverhub E Ad81(I)
Atr03(Int.) MxPS 8 Ivl255ms T Bus00 Lev01
Prnt01 Port01 Cnt01 Dev 2 Spd12 MxCh 4 D
Ver 1.00 Cls09(hub ) Sub00 Prot00 MxPS 8
Cfgs 1 P Vendor0451 ProdID1446 Rev 1.00
C Ifs 1 Cfg 1 Atre0 MxPwr100mA I If 0
Alt 0 EPs 1 Cls09(hub ) Sub00 Prot00
Driverhub E Ad81(I) Atr03(Int.) MxPS 1
Ivl255ms T Bus00 Lev02 Prnt02 Port00
Cnt01 Dev 3 Spd12 MxCh 0 D Ver 1.00
Cls00(gtifc ) Sub00 Prot00 MxPS 8 Cfgs 1 P
Vendor0553 ProdID0002 Rev 1.00 C Ifs 1
Cfg 1 Atr80 MxPwr400mA I If 1 Alt 0
EPs 1 Clsff(vend.) Sub00 Protff Drivercpia
E Ad81(I) Atr01(Isoc) MxPS 0 Ivl 1ms I
If 1 Alt 1 EPs 1 Clsff(vend.) Sub00
Protff Drivercpia E Ad81(I) Atr01(Isoc)
MxPS 448 Ivl 1ms I If 1 Alt 2 EPs 1
Clsff(vend.) Sub00 Protff Drivercpia E
Ad81(I) Atr01(Isoc) MxPS 704 Ivl 1ms I If
1 Alt 3 EPs 1 Clsff(vend.) Sub00 Protff
Drivercpia E Ad81(I) Atr01(Isoc) MxPS 960
Ivl 1ms T Bus00 Lev02 Prnt02 Port02 Cnt02
Dev 5 Spd1.5 MxCh 0 D Ver 1.00 Cls00(gtifc
) Sub00 Prot00 MxPS 8 Cfgs 1 P Vendor046d
ProdIDc001 Rev 1.10 S ManufacturerLogitech
S ProductUSB-PS/2 Mouse
New system calla
DD
DD
DD
Debug Information
Modified USB core
Just data transfers
Host controller driver
Host OS
/proc/bus/usb/devices
New /proc file
Use existing Configuration Channel, and create
new Data channel
Monitoring Application
7- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
Revised Design
New system calla
DD
DD
DD
Debug Information
Modified USB core
Just data transfers
Host controller driver
Host OS
/proc/bus/usb/devices
New /proc file
Use existing Configuration Channel, and create
new Data channel
Monitoring Application
8- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
Revised Design
/proc/bus/usb/?????
New system calla
DD
DD
DD
All data is transmitted in structures called
URBs The header information for all URBs will be
sent here from the kernel. The actual data for
URBs belonging to requested devices will also be
sent here
Debug Information
Modified USB core
Just data transfers
Host controller driver
Host OS
/proc/bus/usb/devices
New /proc file
Use existing Configuration Channel, and create
new Data channel
Monitoring Application
9- Remaining Issues
- How to maintain a list in the kernel of which
devices need their data sent to the application. - How to create a kernel patch.
- Gtk vs. Java GUI
- Active Device Interrogation probably involves
writing a generic hotplugable device driver.
- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
10- Original Timeline
- Term 1, Week 1 - Start
- Term 1, Week 4 - working USB kernel
- Term 1, Week 6 - Defined interface
between core and application - Term 1, Week 10 - Working core code
- Term 2, Week 3 - bus-topology display
- Term 2, Week 6 - full monitoring
- Term 2, Week 9 - active device
interrogation - Term 3, Week 2 - Begin final write up
- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues
11- Timeline Issues
- Some slippage Defining the kernel interface
has taken longer than expected. - However writing the kernel code should take less
time than planned. - Must choose either Java or Gtk before next term.
The implementation and testing of the kernel code
is unaffected by this decision.
- Introduction
- System Model
- Progress so far
- Initial Kernel interface
- Revised kernel
- Interface
- Topology Interface
- Data Interface
- Remaining Issues
- Original Timeline
- Timeline Issues