Archived:Development: USB based video drivers

From LinuxTVWiki
Revision as of 00:13, 11 February 2007 by MarkusRechberger (talk | contribs) (→‎Get usbsnoop for windows)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

USB Video

see Em2820 for more information about how to write an usb video driver

What we need from you to get your USB Device work

Requested Devices

Device Status
Genius TVGO u202 video/audio works (720x288 non interlaced half frames, Audio USB Audio) - no tuning yet
ALI Corp 1.3M Pixel USB 2.0 Bad quality video yet
uli-m9205 Driver is in development, quality will be good
Aiptek USB DualCam
Hauppauge WinTV USB 2.0 -- AUDIO!
SIIG AVTuner Pro with guidance, I might be able to get it working. Note that lsusb reports an em2821 but the em28xx driver doesn't recognize it.
MSI Mega Sky 580 ? (0db0:5581 Micro Star International)
Club3D ZapTV-240M ? (10fd:1513 Anubis Electronics, Ltd) Also known as MSI Digi Vox Mini II
ADS DVDxpressDX2 ? (06e1:0709 ADS Technologies, Inc)

SSIG AVTuner Pro -- send an email to the v4l mailinglist or to a v4l developer, we can't help you unless we have any contact data.

Best thing would be to donate(prefered of course for the work :) or send your device to a developer for a few weeks

Working Devices

Device Status
Pinnacle PCTV USB 2.0 supported (Need support for PAL-M) /* please follow the description on this site and mail the parsed output to */
Terratec Cinergy 250 USB 2.0 supported
MSI Vox USB 2.0 supported (res. <= 640x480)
Hauppauge WinTV USB 2.0 supported, included in Linux kernel 2.6.18

Hercules smart TV USB 2.0 supported


this site explains how to get empiatech devices or similar running with linux by applying changes which might only work with your device.

USBView output


We also need the linux usbview output of your device

Get usbsnoop for windows

The latest supported version is 1.8 you'll find it at the bottom of that website not ontop of it

  • WinXP/Win2K

if the link is down, you can also ask in IRC


there's a new version available for Vista:

Set up usbsnoop and start sniffing

attach the sniffer to your device and start logging:


Finally start up your TV application again, everything will slow down after it's started but it's worth doing it that way hardware analyzers cost a few thousand dollars... please sniff about 200 - 300 MB! it will be easier for analyzing.

I wrote ta parser for converting the usbsnoop logfile to a human readable format you can find it in my repository ( the file is called the output of that file can be used with usbreplay


there's a small script in my repository ( called It is capable of parsing the usbsnoop.log logfile and extract the isoc data and print it in a binary format. I used it for analyzing a sniffed windows usbaudio stream.

Usage (for example): perl < usbsnoop.log | aplay --format=S16_LE --rate=9600

(you might have to change the endpoint address in the perl script to get it work like that):

perl < usbsnoop.log | mplayer -rawvideo on:yuy2:w=352:h=264 -

try various width and height values, you might also have to adjust the format (yuy2 in that case)

USB replay

usb replay is a small tool for replaying (reverse engineering) sniffed and prepared logfiles to a USB device. It's a simple to use ncurses frontend which shows up all prepared usb messages and lets you select whatever you want to replay. Note the source isn't clean, didn't spend too much time uppon this yet I'll do this by time when I'm bored unless you like to fix up the not freed buffers for me :)

Copyright (C) 2006 Markus Rechberger <>


hg clone
cd v4l_experimental/em2880 # please also have a look at README there
gcc usbreplay.c -o usbreplay -lusb -lmenu
  • sniff a usbdevice in windows with usbsnoop
  • parse the logfile with (perl < usbsnoop.log > analyzed.log)
  • run usbreplay as root or privileged user who has access to usbfs (usbreplay analyzed.log)
  • select your desired usb device

Usbreplay setup.jpg

  • start replaying usb data to the usb device, just select a line and press return, or press space this replays the current line and jumps to the next one

Usbreplay mainwin.jpg

Link Device Contact

Markus Rechberger/irc mrec