usb tuners that don't immediately work with webcamd

Juergen Lock nox at jelal.kn-bremen.de
Sat Aug 21 20:28:22 UTC 2010


On Sat, Jul 24, 2010 at 06:05:14PM +0200, Juergen Lock wrote:
> On Sat, Jul 24, 2010 at 05:44:59PM +0200, Juergen Lock wrote:
> > Since I've now done this for the third time...
> > 
> >  If your usb tuner doesn't immediately work with webcamd (no device
> > node gets created or /dev/dvb/adapterX/frontend0 is missing in case
> > of dvb or the device is just not tuning/receiving), there may only
> > be some Linux driver(s) not enabled i.e. a simple webcamd Makefile
> > patch like this may be all that's needed:
> > 
> > Index: ulinux/Makefile
> > ===================================================================
> > --- ulinux/Makefile	(revision 1592)
> > +++ ulinux/Makefile	(working copy)
> > @@ -462,6 +462,10 @@
> >  SRCS+= flexcop-usb.c
> >  SRCS+= flexcop.c
> >  
> > +SRCS+= dib7000p.c
> > +CFLAGS+= -DCONFIG_DVB_DIB7000P
> > +SRCS+= mt2060.c
> > +CFLAGS+= -DCONFIG_MEDIA_TUNER_MT2060
> >  #
> >  # Various webcams
> >  #
> > 
> >  How to find out which driver is missing?  webcamd svn now has a
> > HAVE_DEBUG knob, i.e. in hps' svn instructions here:
> > 
> > 	http://www.selasky.org/hans_petter/video4bsd/
> > 
> > replace
> > 
> > 	make -j3 all
> > 
> > with:
> > 
> > 	make HAVE_DEBUG=YES -j3 all
> > 
> > then the resulting webcamd will show Linux driver's debug output.
> > If in those you see messages like:
> > 
> > 	dib7000pc_detection: driver disabled by Kconfig
> > 
> > you may be lucky:  grep for that symbol - i.e. dib7000pc_detection
> > in this case - in ulinux/v4l-dvb/linux/drivers/media/ and
> > look which .c source file defines it (there should be a
> > EXPORT_SYMBOL() around it, in this case it was in
> > ulinux/v4l-dvb/linux/drivers/media/dvb/frontends/dib7000p.c ) and
> > which CONFIG_xxx definition is needed - in this case there was an
> > 
> > 	#if defined(CONFIG_DVB_DIB7000P) ...
> > 
> > in ulinux/v4l-dvb/linux/drivers/media/dvb/frontends/dib7000p.h .
> > 
> >  Add those to ulinux/Makefile as in the patch above, do
> > 
> > 	rm ulinux/*.o
> > 
> > for good measure and then do another
> > 
> > 	make HAVE_DEBUG=YES -j3 all
> > 
> > and repeat.  (In this case it turned out that also the mt2060 tuner
> > driver was missing.)
> > 
> >  Good luck!
> > 	Juergen
> > 
> > PS:  This particular device was an `EyeTV for DTT' tuner that comes
> > up as 'Hauppauge Nova-T Stick' (hi callum! :), but apparently with
> > this specific model there are still (I guess) Linux driver issues,
> > it only got poor reception while on the same antenna on osx and
> > using the `EyeTV' software that came with it reception was alright;
> > even enabling a module_param called `buggy_sfn_workaround' that
> > came up on a web search (and currently has to be hardcoded with
> > webcamd) didn't really help there:
> > 
> > --- ulinux/v4l-dvb/linux/drivers/media/dvb/frontends/dib7000p.c
> > +++ ulinux/v4l-dvb/linux/drivers/media/dvb/frontends/dib7000p.c.orig
> > @@ -24,7 +24,7 @@ static int debug;
> >  module_param(debug, int, 0644);
> >  MODULE_PARM_DESC(debug, "turn on debugging (default: 0)");
> >  
> > -static int buggy_sfn_workaround;
> > +static int buggy_sfn_workaround = 1;
> >  module_param(buggy_sfn_workaround, int, 0644);
> >  MODULE_PARM_DESC(buggy_sfn_workaround, "Enable work-around for buggy SFNs (default: 0)");
> >  
> I forgot to say:
> 
>  Someone(tm) may want to grep for '#if.*defined(CONFIG_' and try
> to enable the remaining drivers that aren't yet...  (and then only
> disable those that don't build with webcamd.)

Ok so I finally looked at this myself:  (patch against webcamd svn
which already has some missing drivers added so it doesn't work as is
for the version currently in ports; some of the -DCONFIG_foo I added
may not be relevant and three drivers didn't build.)

 Patch also at:

	http://people.freebsd.org/~nox/tmp/webcamd-moretuners.patch

 See further up in the quoted parts of this message about how to
build webcamd svn...

 Enjoy,
	Juergen

Index: ulinux/Makefile
===================================================================
--- ulinux/Makefile	(revision 1618)
+++ ulinux/Makefile	(working copy)
@@ -547,6 +548,158 @@
 CFLAGS+= -g
 .endif
 
+# XXX
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MAX2165
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MC44S803
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MC44S803
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MT2060
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MT20XX
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MT2131
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MT2266
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MXL5005S
+CFLAGS+= -DCONFIG_MEDIA_TUNER_MXL5007T
+CFLAGS+= -DCONFIG_MEDIA_TUNER_QT1010
+CFLAGS+= -DCONFIG_MEDIA_TUNER_TDA18271
+CFLAGS+= -DCONFIG_MEDIA_TUNER_TDA827X
+CFLAGS+= -DCONFIG_MEDIA_TUNER_TDA8290
+CFLAGS+= -DCONFIG_MEDIA_TUNER_TDA9887
+CFLAGS+= -DCONFIG_MEDIA_TUNER_TEA5761
+CFLAGS+= -DCONFIG_MEDIA_TUNER_TEA5767
+CFLAGS+= -DCONFIG_MEDIA_TUNER_XC5000
+CFLAGS+= -DCONFIG_DVB_DIB3000MC
+CFLAGS+= -DCONFIG_DVB_AT76C651
+CFLAGS+= -DCONFIG_DVB_ATBM8830
+CFLAGS+= -DCONFIG_DVB_AU8522
+CFLAGS+= -DCONFIG_DVB_BCM3510
+CFLAGS+= -DCONFIG_DVB_CX22700
+CFLAGS+= -DCONFIG_DVB_CX22702
+CFLAGS+= -DCONFIG_DVB_CX24110
+CFLAGS+= -DCONFIG_DVB_TUNER_CX24113
+CFLAGS+= -DCONFIG_DVB_CX24116
+CFLAGS+= -DCONFIG_DVB_CX24123
+CFLAGS+= -DCONFIG_DVB_TUNER_DIB0090
+CFLAGS+= -DCONFIG_DVB_DIB3000MB
+CFLAGS+= -DCONFIG_DVB_DIB3000MC
+CFLAGS+= -DCONFIG_DVB_DIB7000M
+CFLAGS+= -DCONFIG_DVB_DIB7000P
+CFLAGS+= -DCONFIG_DVB_DIB8000
+CFLAGS+= -DCONFIG_DVB_DRX397XD
+CFLAGS+= -DCONFIG_DVB_PLL
+CFLAGS+= -DCONFIG_DVB_EC100
+CFLAGS+= -DCONFIG_DVB_ISL6405
+CFLAGS+= -DCONFIG_DVB_ISL6421
+CFLAGS+= -DCONFIG_DVB_ISL6423
+CFLAGS+= -DCONFIG_DVB_TUNER_ITD1000
+CFLAGS+= -DCONFIG_DVB_L64781
+CFLAGS+= -DCONFIG_DVB_LGDT3304
+CFLAGS+= -DCONFIG_DVB_LGDT3305
+CFLAGS+= -DCONFIG_DVB_LGDT330X
+CFLAGS+= -DCONFIG_DVB_LGS8GL5
+CFLAGS+= -DCONFIG_DVB_LGS8GXX
+CFLAGS+= -DCONFIG_DVB_LNBP21
+CFLAGS+= -DCONFIG_DVB_MB86A16
+CFLAGS+= -DCONFIG_DVB_MT312
+CFLAGS+= -DCONFIG_DVB_MT352
+CFLAGS+= -DCONFIG_DVB_NXT200X
+CFLAGS+= -DCONFIG_DVB_NXT6000
+CFLAGS+= -DCONFIG_DVB_OR51132
+CFLAGS+= -DCONFIG_DVB_OR51211
+CFLAGS+= -DCONFIG_DVB_S5H1409
+CFLAGS+= -DCONFIG_DVB_S5H1411
+CFLAGS+= -DCONFIG_DVB_S5H1420
+CFLAGS+= -DCONFIG_DVB_S921
+CFLAGS+= -DCONFIG_DVB_SI21XX
+CFLAGS+= -DCONFIG_DVB_SP8870
+CFLAGS+= -DCONFIG_DVB_SP887X
+CFLAGS+= -DCONFIG_DVB_STB0899
+CFLAGS+= -DCONFIG_DVB_STB6000
+CFLAGS+= -DCONFIG_DVB_STB6100
+CFLAGS+= -DCONFIG_DVB_STV0288
+CFLAGS+= -DCONFIG_DVB_STV0297
+CFLAGS+= -DCONFIG_DVB_STV0299
+CFLAGS+= -DCONFIG_DVB_STV090x
+CFLAGS+= -DCONFIG_DVB_STV6110
+CFLAGS+= -DCONFIG_DVB_STV6110x
+CFLAGS+= -DCONFIG_DVB_TDA10021
+CFLAGS+= -DCONFIG_DVB_TDA10023
+CFLAGS+= -DCONFIG_DVB_TDA10048
+CFLAGS+= -DCONFIG_DVB_TDA1004X
+CFLAGS+= -DCONFIG_DVB_TDA10086
+CFLAGS+= -DCONFIG_DVB_TDA665x
+CFLAGS+= -DCONFIG_DVB_TDA8083
+CFLAGS+= -DCONFIG_DVB_TDA80XX
+CFLAGS+= -DCONFIG_DVB_TDA8261
+CFLAGS+= -DCONFIG_DVB_TDA826X
+CFLAGS+= -DCONFIG_DVB_TUA6100
+CFLAGS+= -DCONFIG_DVB_VES1820
+CFLAGS+= -DCONFIG_DVB_VES1X93
+CFLAGS+= -DCONFIG_DVB_ZL10036
+CFLAGS+= -DCONFIG_DVB_ZL10039
+CFLAGS+= -DCONFIG_DVB_ZL10353
+CFLAGS+= -DCONFIG_DVB_LNBP22
+
+CFLAGS+= -DCONFIG_VIDEO_EM28XX_DVB
+CFLAGS+= -DCONFIG_VIDEO_SAA7134_DVB_MODULE
+
+SRCS+= atbm8830.c
+SRCS+= bcm3510.c
+SRCS+= cx22700.c
+SRCS+= cx22702.c
+SRCS+= cx24113.c
+SRCS+= cx24116.c
+SRCS+= cx24123.c
+SRCS+= dib0090.c
+SRCS+= dib3000mb.c
+SRCS+= dib7000m.c
+SRCS+= dib8000.c
+SRCS+= dvb-pll.c
+SRCS+= ec100.c
+SRCS+= isl6421.c
+SRCS+= itd1000.c
+SRCS+= lgdt3305.c
+SRCS+= lgdt330x.c
+SRCS+= lgs8gxx.c
+SRCS+= lnbp21.c
+SRCS+= max2165.c
+SRCS+= mc44s803.c
+SRCS+= mt2266.c
+SRCS+= mt352.c
+SRCS+= mxl5007t.c
+SRCS+= nxt200x.c
+SRCS+= nxt6000.c
+SRCS+= qt1010.c
+SRCS+= s5h1409.c
+SRCS+= s5h1411.c
+SRCS+= s5h1420.c
+SRCS+= si21xx.c
+SRCS+= stb6000.c
+SRCS+= stv0297.c
+SRCS+= stv0299.c
+SRCS+= tda10023.c
+SRCS+= tda10048.c
+SRCS+= tda1004x.c
+SRCS+= tda10086.c
+SRCS+= tda18271-fe.c
+SRCS+= tda8083.c
+SRCS+= tda826x.c
+SRCS+= tda827x.c
+SRCS+= tda8290.c
+SRCS+= ves1820.c
+SRCS+= xc5000.c
+SRCS+= zl10039.c
+SRCS+= zl10353.c
+SRCS+= tda18271-common.c
+SRCS+= tda18271-maps.c
+
+# these don't build:
+#
+# CFLAGS+= -DCONFIG_MEDIA_TUNER_SIMPLE
+# SRCS+= tuner-simple.c
+# CFLAGS+= -DCONFIG_MEDIA_TUNER_XC2028
+# SRCS+= tuner-xc2028.c
+# CFLAGS+= -DCONFIG_DVB_STV0900
+# SRCS+= stv0900_core.c
+
 CFLAGS+= -include webcamd_global.h
 
 CFLAGS+= -O2 -Wall -Wno-pointer-sign


More information about the freebsd-multimedia mailing list