From owner-freebsd-multimedia@FreeBSD.ORG Sat Aug 21 20:28:22 2010 Return-Path: Delivered-To: freebsd-multimedia@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88E9F1065672; Sat, 21 Aug 2010 20:28:22 +0000 (UTC) (envelope-from nox@jelal.kn-bremen.de) Received: from smtp.kn-bremen.de (gelbbaer.kn-bremen.de [78.46.108.116]) by mx1.freebsd.org (Postfix) with ESMTP id 0DFA78FC13; Sat, 21 Aug 2010 20:28:21 +0000 (UTC) Received: by smtp.kn-bremen.de (Postfix, from userid 10) id C9D611E000D3; Sat, 21 Aug 2010 22:28:20 +0200 (CEST) Received: from triton8.kn-bremen.de (noident@localhost [127.0.0.1]) by triton8.kn-bremen.de (8.14.4/8.14.3) with ESMTP id o7LKRIus045106; Sat, 21 Aug 2010 22:27:18 +0200 (CEST) (envelope-from nox@triton8.kn-bremen.de) Received: (from nox@localhost) by triton8.kn-bremen.de (8.14.4/8.14.3/Submit) id o7LKRHNm045105; Sat, 21 Aug 2010 22:27:17 +0200 (CEST) (envelope-from nox) From: Juergen Lock Date: Sat, 21 Aug 2010 22:27:17 +0200 To: Juergen Lock Message-ID: <20100821202717.GA44864@triton8.kn-bremen.de> References: <20100724154459.GA5755@triton8.kn-bremen.de> <20100724160514.GA7452@triton8.kn-bremen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100724160514.GA7452@triton8.kn-bremen.de> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: freebsd-multimedia@FreeBSD.org, hselasky@FreeBSD.org Subject: Re: usb tuners that don't immediately work with webcamd X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Aug 2010 20:28:22 -0000 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