Em28xx devices: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
 
(36 intermediate revisions by 19 users not shown)
Line 2: Line 2:


==How to compile the latest em28xx driver?==
==How to compile the latest em28xx driver?==
See the [[How to Obtain, Build and Install V4L-DVB Device Drivers]] article
* Start your computer without (not plugged) em28xx device


* Download v4l-dvb tree
shell> hg clone http://linuxtv.org/hg/v4l-dvb


* Compile
shell> cd v4l-dvb
shell> make
shell> make install

* Now plug your device and start your favorite application

==Firmware==
===Information===
* See section [http://www.linuxtv.org/wiki/index.php/Xceive_XC3028/XC2028#Firmware_Information Firmware Information in Xceive XC3028/XC2028 page]<br>

===How to get it?===
* See section [http://www.linuxtv.org/wiki/index.php/Xceive_XC3028/XC2028#How_to_Obtain_the_Firmware How to Obtain the Firmware in Xceive XC3028/XC2028 page]

=== Error: unable to open firmware v4l-cx25840.fw ===
==== Manually Extracting and Installing the Firmware ====
cd /tmp
shell> wget --user=wtv --password=Support07! ftp://ftp.hauppauge.com/Support/PVR150/Beta/070206%20amity2%202.0.48.25037.prerelease.zip
shell> unzip "070206 amity2 2.0.48.25037.prerelease.zip"
shell> cp HcwMakoC.ROM /lib/firmware/v4l-cx25840.fw

Based on [http://ivtvdriver.org/index.php/Firmware ivtv firmware wiki]
=== Error: firmware xc3028-v27.fw not found ===
firmware: requesting xc3028-v27.fw
xc2028 1-0061: Error: firmware xc3028-v27.fw not found.

* See section [http://www.linuxtv.org/wiki/index.php/Xceive_XC3028/XC2028#How_to_Obtain_the_Firmware How to Obtain the Firmware in Xceive XC3028/XC2028 to fix it]
<br>


== Boards ==
== Boards ==
Line 76: Line 46:
|<center>EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950</center> ||<center>HCW HVR-980</center>
|<center>EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950</center> ||<center>HCW HVR-980</center>
|<center>0x2040:0x6513</center> || <center>Analog/DVB</center>
|<center>0x2040:0x6513</center> || <center>Analog/DVB</center>
|-
|<center>EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950</center> ||<center>HP HVR-950</center>
|<center>0x2040:0x6517</center> || <center>Analog/DVB</center>
|-
|-
|<center>EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950</center> ||<center>HP HVR-950</center>
|<center>EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950</center> ||<center>HP HVR-950</center>
Line 105: Line 72:
|-
|-
|<center>EM2800_BOARD_TERRATEC_CINERGY_200</center> ||<center>Terratec Cinergy 200 USB</center>
|<center>EM2800_BOARD_TERRATEC_CINERGY_200</center> ||<center>Terratec Cinergy 200 USB</center>
|<center>-</center> || <center>Analog</center>
|<center>0xeb1a:0x2800</center> || <center>Analog</center>
|-
|-
|<center>EM2800_BOARD_GRABBEEX_USB2800</center> ||<center>eMPIA Technology, Inc. GrabBeeX+ Video Encoder</center>
|<center>EM2800_BOARD_GRABBEEX_USB2800</center> ||<center>eMPIA Technology, Inc. GrabBeeX+ Video Encoder</center>
Line 118: Line 85:
|<center>EM2820_BOARD_PINNACLE_DVC_90</center> ||<center>Pinnacle Dazzle DVC 90/DVC 100</center>
|<center>EM2820_BOARD_PINNACLE_DVC_90</center> ||<center>Pinnacle Dazzle DVC 90/DVC 100</center>
|<center>0x2304:0x0207</center> || <center>Analog</center>
|<center>0x2304:0x0207</center> || <center>Analog</center>
|-
|<center>EM2884_BOARD_PCTV_520E</center> ||<center>PCTVSystems QuatroStick-nano 520e</center>
|<center>0x2013:0x0251</center> || <center>DVB</center>
|-
|-
|<center>EM2800_BOARD_VGEAR_POCKETTV</center> ||<center>V-Gear PocketTV</center>
|<center>EM2800_BOARD_VGEAR_POCKETTV</center> ||<center>V-Gear PocketTV</center>
Line 135: Line 105:
=== Not Validated boards ===
=== Not Validated boards ===
==== What's it? ====
==== What's it? ====
Not validate means: that your device was added to kernel but the developer(es) doesn't have the hardware for tests.
Not validated means: that your device was added to kernel but
no developer has the hardware to test. If you would like to help
If you would like to help and inform that you hardware work (or not) please see section
and inform that your hardware works (or not) please see the section
[http://www.linuxtv.org/v4lwiki/index.php/Em28xx_devices#How_to_validate_my_vendor.2Fproduct_id_at_upstream_kernel.3F How to validate my vendor/product id at upstream kernel]
[http://www.linuxtv.org/v4lwiki/index.php/Em28xx_devices#How_to_validate_my_vendor.2Fproduct_id_at_upstream_kernel.3F How to validate my vendor/product id at upstream kernel]


Line 199: Line 170:
|<center>EM2861_BOARD_PLEXTOR_PX_TV100U</center> ||<center>Plextor ConvertX PX-TV100U</center>
|<center>EM2861_BOARD_PLEXTOR_PX_TV100U</center> ||<center>Plextor ConvertX PX-TV100U</center>
|<center>0x093b:0xa005</center> || <center>Not validated ([http://www.linuxtv.org/v4lwiki/index.php/Em28xx_devices#How_to_validate_my_vendor.2Fproduct_id_at_upstream_kernel.3F change it])</center>
|<center>0x093b:0xa005</center> || <center>Not validated ([http://www.linuxtv.org/v4lwiki/index.php/Em28xx_devices#How_to_validate_my_vendor.2Fproduct_id_at_upstream_kernel.3F change it])</center>
|-
|<center>EM2863_BOARD_SILVERCREST_VG2000</center> ||<center>[[SilverCrest_USB_2.0_Video_Grabber_VG_2000|SilverCrest USB-Video-Grabber VG 2000]]</center>
|<center>0xeb1a:0x2863</center> || <center>Validated ([http://www.linuxtv.org/v4lwiki/index.php/Em28xx_devices#How_to_validate_my_vendor.2Fproduct_id_at_upstream_kernel.3F change it])</center>
|-
|-
|<center>EM2870_BOARD_TERRATEC_XS</center> ||<center>Terratec Cinergy T XS</center>
|<center>EM2870_BOARD_TERRATEC_XS</center> ||<center>Terratec Cinergy T XS</center>
Line 231: Line 205:
|-
|-
|<center>EM2880_BOARD_KWORLD_DVB_310U</center> ||<center>KWorld DVB-T 310U</center>
|<center>EM2880_BOARD_KWORLD_DVB_310U</center> ||<center>KWorld DVB-T 310U</center>
|<center>-</center> || <center>Not validated ([http://www.linuxtv.org/v4lwiki/index.php/Em28xx_devices#How_to_validate_my_vendor.2Fproduct_id_at_upstream_kernel.3F change it])</center>
|<center>0xeb1a:e310</center> || <center>Not validated ([http://www.linuxtv.org/v4lwiki/index.php/Em28xx_devices#How_to_validate_my_vendor.2Fproduct_id_at_upstream_kernel.3F change it])</center>
|-
|-
|<center>EM2881_BOARD_DNT_DA2_HYBRID</center> ||<center>DNT DA2 Hybrid</center>
|<center>EM2881_BOARD_DNT_DA2_HYBRID</center> ||<center>DNT DA2 Hybrid</center>
Line 278: Line 252:


===Usbsnoop===
===Usbsnoop===
If you were asked to sniff your device, use this [http://www.linuxtv.org/wiki/index.php/Bus_snooping/sniffing#Snooping_Procedures: instructions]
If you were asked to sniff your device, use these [http://www.linuxtv.org/wiki/index.php/Bus_snooping/sniffing#Snooping_Procedures: instructions]


==About em28xx models==
==About em28xx models==
Line 287: Line 261:
* [[ADS Tech Instant TV (USBAV-704)]]
* [[ADS Tech Instant TV (USBAV-704)]]
* [[Gadmei utv 310]]
* [[Gadmei utv 310]]
** [[Em2820:Talk]]
* [[Pinnacle_PCTV_USB2]]
* [[Pinnacle_PCTV_USB2]]
* [[Plextor ConvertX PX-AV100U]]
* [[USBGear USB2.0 Video Adapter With Audio (VD204)]]
* [[USBGear USB2.0 Video Adapter With Audio (VD204)]]
* [[V-Gear PocketTV]]
* [[V-Gear PocketTV]]


===em2860===
===em2860===
EM2860 supports Video decoder Audio decoder and VBI

====em2860 based devices====
====em2860 based devices====
* [[Gadmei USB TVBox UTV380]]
* [[Honestech Vidbox NW03]]
* [[Ion Video 2 PC]]
* [[Kaiser Baas USB DVD Maker 2 (KBA0300300)]]
* [[Kaiser Baas USB DVD Maker 2 (KBA0300300)]]
* [[TerraTec Grabby]]
* [[Geniatech/MyGica_iGrabber|MyGica iGrabber]]

====em2863 based devices====
* [[SilverCrest_USB_2.0_Video_Grabber_VG_2000|SilverCrest USB 2.0 Video Grabber VG 2000]]

===em2870/2871/2872/2873===
* supports DVB/ATSC (but with no analog support). This is targeted at digital only devices.
EM2870 devices include:
* [[Compro VideoMate U3]]

===em2874===
* next generation version of the em2870 design - they moved around a bunch of registers compared to em2870/2880 and the chip itself supports two transport streams (although most designs will probably only use one stream).
* [[KWorld UB435-Q USB ATSC TV Stick]]


===em2880/2881/2883===
===em2880/2881/2883===
Line 301: Line 292:


====em2880 based devices====
====em2880 based devices====
* EVGA inDtube
* KWorld 350U DVB-T
* KWorld 350U DVB-T
* [[KWorld DVB-T 355U]]
* [[KWorld DVB-T 355U]]
Line 308: Line 300:
* [http://videologyinc.com/cameras/ccd-board-camera-20K14XUSB.htm Videology 20K14XUSB webcam]
* [http://videologyinc.com/cameras/ccd-board-camera-20K14XUSB.htm Videology 20K14XUSB webcam]


===em2750===
===em2710/em2750 based devices===
* Seem to be used by some [[Webcams]].
* used by on some [[Webcam Devices]].

===em276x/em277x/em278x based devices===
* latest bridge generation for camera devices
* optional UVC (USB video class) support
* supports MPEG video format
* supports several advanced camera functionalities, such as autofocus, image statistics etc.
<br>
Known devices:<br>
[http://www.linuxtv.org/wiki/index.php/VAD_Laplace SpeedLink VAD Laplace webcam] (em2765 + OV2640)

===em25xx===
* seems to be the Chinese market versions of the em276x/7x/8x bridges

===em28284===
* [[Honestech Vidbox NW07]]
* [[USB_2828x]]


==Some Misc stuff==
==Some Misc stuff==
The following needs to be cleaned up and/or integrated into the article:
The following needs to be cleaned up and/or integrated into the article:
* [[Em2880 EEPROM Data]]
* [[Em2880/Todo]]
* [[Em2880/remote]]
* [[Em2880/remote]]

==Sample Kernel Output for Pinnacle PCTV nanoStick T2 on kernel 3.6r2 with latest drivers==
<pre>
[ 6.784732] media: Linux media interface: v0.10
[ 6.786876] Linux video capture interface: v2.00

... You may see the following section IF you are using the latest drivers:

[ 6.786879] WARNING: You are using an experimental version of the media stack.
As the driver is backported to an older kernel, it doesn't offer
enough quality for its usage in production.
Use it with care.
Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
8f7e91a31fb95c50880c76505b416630c0326d93 [media] smiapp-pll: Constify limits argument to smiapp_pll_calculate()
6ec84a28f5f40e3ebef5d8186c4b11b10aa295d7 [media] smiapp-pll: Create a structure for OP and VT limits
f5984bbdf402b586581bc292a5449f17ce4b8209 [media] smiapp-pll: Parallel bus support
[ 6.793364] em28xx: New device PCTV Systems PCTV 290e @ 480 Mbps (2013:024f, interface 0, class 0)
[ 6.793366] em28xx: DVB interface 0 found
[ 6.793479] em28xx #0: chip ID is em28174

...

[ 7.087134] em28xx #0: Identified as PCTV nanoStick T2 290e (card=78)
[ 7.087137] em28xx #0: v4l2 driver version 0.1.3
[ 7.092015] em28xx #0: V4L2 video device registered as video0
[ 7.092408] usbcore: registered new interface driver em28xx
[ 7.192689] cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.9 loaded

...

[ 7.219209] WARNING: You are using an experimental version of the media stack.
As the driver is backported to an older kernel, it doesn't offer
enough quality for its usage in production.
Use it with care.
Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
8f7e91a31fb95c50880c76505b416630c0326d93 [media] smiapp-pll: Constify limits argument to smiapp_pll_calculate()
6ec84a28f5f40e3ebef5d8186c4b11b10aa295d7 [media] smiapp-pll: Create a structure for OP and VT limits
f5984bbdf402b586581bc292a5449f17ce4b8209 [media] smiapp-pll: Parallel bus support
[ 7.281849] tda18271 3-0060: creating new instance
[ 7.286351] TDA18271HD/C2 detected @ 3-0060
[ 7.415159] IR Sony protocol handler initialized
[ 7.454729] DVB: registering new adapter (em28xx #0)
[ 7.454737] usb 1-7: DVB: registering adapter 1 frontend 0 (Sony CXD2820R)...
[ 7.455024] em28xx #0: Successfully loaded em28xx-dvb
[ 7.455027] Em28xx: Initialized (Em28xx dvb Extension) extension

...

[ 7.514020] Registered IR keymap rc-pinnacle-pctv-hd
[ 7.514192] input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:04.1/usb1/1-7/rc/rc1/input8
[ 7.514312] rc1: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:04.1/usb1/1-7/rc/rc1
[ 7.517100] Em28xx: Initialized (Em28xx Input Extension) extension
[ 7.529406] lirc_dev: IR Remote Control driver registered, major 241

</pre>


==Feature Support==
==Feature Support==
Line 321: Line 382:


==About Driver==
==About Driver==
* Development -- originally by 4 Ludovico Cavedon, Markus Rechberger, Mauro Carvalho Chehab, Sascha Sommer.<br>
* Development -- originally by four: Ludovico Cavedon, Markus Rechberger, Mauro Carvalho Chehab, Sascha Sommer.<br>
* One of the authors, Markus Rechberger, forked the upstream project.
* One of the authors, Markus Rechberger, is now developing only closed source binary drivers.


==External Links==
==External Links==
* [http://www.supreme-hk.com/soft/EM2880_datasheet.pdf EMPIA EM2880 datasheet]
* [http://www.supreme-hk.com/soft/EM2870_datasheet.pdf EMPIA EM2870 datasheet]
* [http://www.empiatech.com.tw/pro_em2880.htm EMPIA EM2880 product page]
* [http://www.empiatech.com.tw/pro_em2880.htm EMPIA EM2880 product page]
* [http://www.empiatech.com.tw/pro_em2820.htm EMPIA EM2820/EM2840 product page]
* [http://www.empiatech.com.tw/pro_em2820.htm EMPIA EM2820/EM2840 product page]
* [http://www.empiatech.com.tw/pro_em2750.htm EMPIA EM2750 product page]
* [http://www.empiatech.com.tw/pro_em2750.htm EMPIA EM2750 product page]
* [http://mcentral.de/wiki/index.php5/Main_Page mcentral.de wiki] offers alternative, out of kernel, drivers for some em28xx based devices:
** [http://mcentral.de/wiki/index.php5/Em2880 mrec's page on the em2880] ... note: that the information seems heavily tied to devices which utilise a xceive xc3028 tuner ... hence you may also want to read his xc3028 page for related info
** [http://mcentral.de/wiki/index.php5/Em2820 mrec's page on the em2820]


== Additional Help ==
== Additional Help ==
Contact developers at [http://vger.kernel.org/vger-lists.html#linux-media linux-media mail-list]
Contact developers at [http://vger.kernel.org/vger-lists.html#linux-media linux-media mail-list]
[[Category:Development]]

Latest revision as of 23:48, 19 April 2021

This article discusses some USB interface chipset families produced by EMPIA, and, in addition, addresses the driver that support these chips.

How to compile the latest em28xx driver?

See the How to Obtain, Build and Install V4L-DVB Device Drivers article


Boards

How to identify my USB vendor/product id?

 shell> lsusb
If you can't recognize the vendor/product id from your device contact linux-media mail-list

Validated boards

What's it?

 We use this term to advise that boards were tested by user or developer.

Table of validated boards

Define Name Vendor/Product ID Supported modes
EM2820_BOARD_KWORLD_PVRTV2800RF
Kworld PVR TV 2800 RF
-
Analog
EM2820_BOARD_TERRATEC_CINERGY_250
Terratec Cinergy 250 USB
0x0ccd:0x0036
Analog
EM2820_BOARD_PINNACLE_USB_2
Pinnacle PCTV USB 2
0x2304:0x0208
Analog
EM2820_BOARD_HAUPPAUGE_WINTV_USB_2
Hauppauge WinTV USB 2
0x2040, 0x4201
Analog
EM2820_BOARD_HAUPPAUGE_WINTV_USB_2
Hauppauge WinTV USB 2
0x2040:0x4200
Analog
EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900
Hauppauge WinTV HVR 900
0x2040:0x6500
Analog/DVB
EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2
Hauppauge WinTV HVR 900 (R2)
0x2040:0x6502
Analog/DVB
EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950
HCW HVR-980
0x2040:0x6513
Analog/DVB
EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950
HP HVR-950
0x2040:0x6517
Analog/DVB
EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950
RP HVR-950
0x2040:0x651b
Analog/DVB
EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950
HCW HVR-850
0x2040:0x651f
Analog/DVB
EM2880_BOARD_PINNACLE_PCTV_HD_PRO
Pinnacle PCTV HD Pro Stick
0x2304:0x0227
Analog/DVB
EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600
AMD ATI TV Wonder HD 600
0x0438:0xb002
Analog/DVB
EM2880_BOARD_TERRATEC_HYBRID_XS
Terratec Hybrid XS
0x0ccd:0x0042
Analog/DVB
EM2880_BOARD_TERRATEC_PRODIGY_XS
Terratec Prodigy XS
0x0ccd:0x0047
Analog
EM2820_BOARD_MSI_VOX_USB_2
MSI VOX USB 2.0
-
Analog
EM2800_BOARD_TERRATEC_CINERGY_200
Terratec Cinergy 200 USB
0xeb1a:0x2800
Analog
EM2800_BOARD_GRABBEEX_USB2800
eMPIA Technology, Inc. GrabBeeX+ Video Encoder
0xeb1a:0x2801
Analog
EM2800_BOARD_LEADTEK_WINFAST_USBII
Leadtek Winfast USB II
0x0413:0x6023
Analog
EM2800_BOARD_KWORLD_USB2800
Kworld USB2800
-
Analog
EM2820_BOARD_PINNACLE_DVC_90
Pinnacle Dazzle DVC 90/DVC 100
0x2304:0x0207
Analog
EM2884_BOARD_PCTV_520E
PCTVSystems QuatroStick-nano 520e
0x2013:0x0251
DVB
EM2800_BOARD_VGEAR_POCKETTV
V-Gear PocketTV
-
Analog
EM2820_BOARD_PROLINK_PLAYTV_USB2
Pixelview Prolink PlayTV USB 2.0
0xeb1a:0x2821
Analog
EM2860_BOARD_POINTNIX_INTRAORAL_CAMERA
PointNix Intra-Oral Camera
-
Analog
EM2820_BOARD_COMPRO_VIDEOMATE_FORYOU
Compro VideoMate ForYou/Stereo
0x185b:0x2041
Analog


Not Validated boards

What's it?

 Not validated means: that your device was added to kernel but
 no developer has the hardware to test. If you would like to help
 and inform that your hardware works (or not) please see the section
 How to validate my vendor/product id at upstream kernel

Table of NOT validated boards

Define Name Vendor/Product ID Status
EM2750_BOARD_DLCW_130
Huaqi DLCW-130
-
Not validated (change it)
EM2820_BOARD_DLINK_USB_TV
D-Link DUB-T210 TV Tuner
0x2001:0xf112
Not validated (change it)
EM2820_BOARD_HERCULES_SMART_TV_USB2
Hercules Smart TV USB 2.0
-
Not validated (change it)
EM2820_BOARD_PINNACLE_USB_2_FM1216ME
Pinnacle PCTV USB 2 (Philips FM1216ME)
-
Not validated (change it)
EM2820_BOARD_GADMEI_UTV310
Gadmei UTV310
-
Not validated (change it)
EM2820_BOARD_LEADTEK_WINFAST_USBII_DELUXE
Leadtek Winfast USB II Deluxe
-
Not validated (change it)
EM2820_BOARD_PINNACLE_DVC_100
Pinnacle Dazzle DVC 100
-
Not validated (change it)
EM2820_BOARD_VIDEOLOGY_20K14XUSB
Videology 20K14XUSB USB2.0
-
Not validated (change it)
EM2821_BOARD_PROLINK_PLAYTV_USB2
SIIG AVTuner-PVR/Prolink PlayTV USB 2.0
-
Not validated (change it)
EM2821_BOARD_SUPERCOMP_USB_2
Supercomp USB 2.0 TV
-
Not validated (change it)
EM2821_BOARD_USBGEAR_VD204
Usbgear VD204v9
-
Not validated (change it)
EM2860_BOARD_NETGMBH_CAM
NetGMBH Cam
-
Not validated (change it)
EM2860_BOARD_TYPHOON_DVD_MAKER
Typhoon DVD Maker
-
Not validated (change it)
EM2860_BOARD_GADMEI_UTV330
Gadmei UTV330
-
Not validated (change it)
EM2860_BOARD_TERRATEC_HYBRID_XS
Terratec Cinergy A Hybrid XS
0x0ccd, 0x004f
Not validated (change it)
EM2861_BOARD_KWORLD_PVRTV_300U
KWorld PVRTV 300U
0xeb1a, 0xe300
Not validated (change it)
EM2861_BOARD_YAKUMO_MOVIE_MIXER
Yakumo MovieMixer
-
Not validated (change it)
EM2861_BOARD_PLEXTOR_PX_TV100U
Plextor ConvertX PX-TV100U
0x093b:0xa005
Not validated (change it)
EM2863_BOARD_SILVERCREST_VG2000
SilverCrest USB-Video-Grabber VG 2000
0xeb1a:0x2863
Validated (change it)
EM2870_BOARD_TERRATEC_XS
Terratec Cinergy T XS
0x0ccd:0x0043
Not validated (change it)
EM2870_BOARD_TERRATEC_XS_MT2060
Terratec Cinergy T XS (MT2060)
-
Not validated (change it)
EM2870_BOARD_KWORLD_350U
Kworld 350 U DVB-T
0xeb1a:0xe350
Not validated (change it)
EM2870_BOARD_KWORLD_355U
Kworld 355 U DVB-T
0xeb1a:0xe355
Not validated (change it)
EM2870_BOARD_PINNACLE_PCTV_DVB
Pinnacle PCTV DVB-T
-
Not validated (change it)
EM2870_BOARD_COMPRO_VIDEOMATE
Compro, VideoMate U3
0x185b:0x2870
Not validated (change it)
EM2880_BOARD_TERRATEC_HYBRID_XS_FR
Terratec Hybrid XS Secam
0x0ccd:0x004c
Not validated (change it)
EM2880_BOARD_MSI_DIGIVOX_AD
MSI DigiVox A/D
0xeb1a:0xe310
Not validated (change it)
EM2880_BOARD_MSI_DIGIVOX_AD_II
MSI DigiVox A/D II
0xeb1a:0xe320
Not validated (change it)
EM2880_BOARD_KWORLD_DVB_305U
KWorld DVB-T 305U
0xeb1a:0xe305
Not validated (change it)
EM2880_BOARD_KWORLD_DVB_310U
KWorld DVB-T 310U
0xeb1a:e310
Not validated (change it)
EM2881_BOARD_DNT_DA2_HYBRID
DNT DA2 Hybrid
-
Not validated (change it)
EM2881_BOARD_PINNACLE_HYBRID_PRO
Pinnacle Hybrid Pro
-
Not validated (change it)
EM2882_BOARD_PINNACLE_HYBRID_PRO
Pinnacle Hybrid Pro (2)
0x2304:0x0226
Not validated (change it)
EM2882_BOARD_KWORLD_VS_DVBT
Kworld VS-DVB-T 323UR
0xeb1a:0xe323
Not validated (change it)
EM2882_BOARD_TERRATEC_HYBRID_XS
Terratec Hybrid XS (em2882)
0x0ccd:0x005e
Not validated (change it)
EM2883_BOARD_KWORLD_HYBRID_A316
Kworld PlusTV HD Hybrid 330
0xeb1a:0xa316
Not validated (change it)

How to validate my vendor/product id at upstream kernel?

  • Example:
 From: foobar
 To: linux-media@...
 Subject: em28xx: new board id [0b1a:2821]
Hi,
I've made tests with my Pixelview board:
Model: Prolink PlayTV USB 2.0 Vendor/Product id: [0b1a:2821].
Tests made:
- Analog [Worked] - DVB [this board doesn't support dvb mode]
Tested-by: foobar <foobar@foobar.com>
~foobar

Otherwise, if you had any issue, please contact linux-media mail-list.

If some features doesn't work (i.e: audio, dvb, s-video)

Should I call whom?

 Please contact linux-media mail-list.

Usbsnoop

 If you were asked to sniff your device, use these instructions

About em28xx models

em2800/em2820/em2821/em2840

  • used on older analog only device designs. These chips have support for USB Audio Class; so, audio module is snd-usb-audio

em2820/em2840 based devices

em2860

EM2860 supports Video decoder Audio decoder and VBI

em2860 based devices

em2863 based devices

em2870/2871/2872/2873

  • supports DVB/ATSC (but with no analog support). This is targeted at digital only devices.

EM2870 devices include:

em2874

  • next generation version of the em2870 design - they moved around a bunch of registers compared to em2870/2880 and the chip itself supports two transport streams (although most designs will probably only use one stream).
  • KWorld UB435-Q USB ATSC TV Stick

em2880/2881/2883

  • supports DVB/ATSC. Doesn't provide USB Audio Class. Instead, digital audio is provided via an USB Vendor Class; so, these chips require the em28xx-alsa module for digital audio to work.

em2880 based devices

em2710/em2750 based devices

em276x/em277x/em278x based devices

  • latest bridge generation for camera devices
  • optional UVC (USB video class) support
  • supports MPEG video format
  • supports several advanced camera functionalities, such as autofocus, image statistics etc.


Known devices:
SpeedLink VAD Laplace webcam (em2765 + OV2640)

em25xx

  • seems to be the Chinese market versions of the em276x/7x/8x bridges

em28284

Some Misc stuff

The following needs to be cleaned up and/or integrated into the article:

Sample Kernel Output for Pinnacle PCTV nanoStick T2 on kernel 3.6r2 with latest drivers

[    6.784732] media: Linux media interface: v0.10
[    6.786876] Linux video capture interface: v2.00

... You may see the following section IF you are using the latest drivers:

[    6.786879] WARNING: You are using an experimental version of the media stack.
	As the driver is backported to an older kernel, it doesn't offer
	enough quality for its usage in production.
	Use it with care.
Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
	8f7e91a31fb95c50880c76505b416630c0326d93 [media] smiapp-pll: Constify limits argument to smiapp_pll_calculate()
	6ec84a28f5f40e3ebef5d8186c4b11b10aa295d7 [media] smiapp-pll: Create a structure for OP and VT limits
	f5984bbdf402b586581bc292a5449f17ce4b8209 [media] smiapp-pll: Parallel bus support
[    6.793364] em28xx: New device PCTV Systems PCTV 290e @ 480 Mbps (2013:024f, interface 0, class 0)
[    6.793366] em28xx: DVB interface 0 found
[    6.793479] em28xx #0: chip ID is em28174

...

[    7.087134] em28xx #0: Identified as PCTV nanoStick T2 290e (card=78)
[    7.087137] em28xx #0: v4l2 driver version 0.1.3
[    7.092015] em28xx #0: V4L2 video device registered as video0
[    7.092408] usbcore: registered new interface driver em28xx
[    7.192689] cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.9 loaded

... 

[    7.219209] WARNING: You are using an experimental version of the media stack.
	As the driver is backported to an older kernel, it doesn't offer
	enough quality for its usage in production.
	Use it with care.
Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
	8f7e91a31fb95c50880c76505b416630c0326d93 [media] smiapp-pll: Constify limits argument to smiapp_pll_calculate()
	6ec84a28f5f40e3ebef5d8186c4b11b10aa295d7 [media] smiapp-pll: Create a structure for OP and VT limits
	f5984bbdf402b586581bc292a5449f17ce4b8209 [media] smiapp-pll: Parallel bus support
[    7.281849] tda18271 3-0060: creating new instance
[    7.286351] TDA18271HD/C2 detected @ 3-0060
[    7.415159] IR Sony protocol handler initialized
[    7.454729] DVB: registering new adapter (em28xx #0)
[    7.454737] usb 1-7: DVB: registering adapter 1 frontend 0 (Sony CXD2820R)...
[    7.455024] em28xx #0: Successfully loaded em28xx-dvb
[    7.455027] Em28xx: Initialized (Em28xx dvb Extension) extension

...

[    7.514020] Registered IR keymap rc-pinnacle-pctv-hd
[    7.514192] input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:04.1/usb1/1-7/rc/rc1/input8
[    7.514312] rc1: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:04.1/usb1/1-7/rc/rc1
[    7.517100] Em28xx: Initialized (Em28xx Input Extension) extension
[    7.529406] lirc_dev: IR Remote Control driver registered, major 241 

Feature Support

  • No firmware is required for em28xx ICs ... note: though em28xx based devices paired with some tuners will need firmware for the tuner (i.e. there are em28xx based devices paired with a XCeive XC3028 or XC2028 tuner, which require a generic firmware from Xceive).

About Driver

  • Development -- originally by four: Ludovico Cavedon, Markus Rechberger, Mauro Carvalho Chehab, Sascha Sommer.
  • One of the authors, Markus Rechberger, is now developing only closed source binary drivers.

External Links

Additional Help

Contact developers at linux-media mail-list