em28xx?

Andrew Gallatin gallatin at gmail.com
Sat Jan 8 19:37:00 UTC 2011


Hi,

I was pointed to the webcamd / cuse4bsd project as a way to run a DVB
based device on FreeBSD.  I have a Kworld UB435Q (em28xx, lgdt3305
demod):

% sudo usbconfig -d 4.2
ugen4.2: <USB 2870 Device vendor 0x1b80> at usbus4, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=ON

Unfortunately, this does not seem to be supported by the webcamd
project, as the em28xx driver is not compiled in.   When I naively try
to compile it by uncommenting the 'SRC+= em28xx-*c' lines in webcamd's
Makefile, the build fails spectacularly
(see appended output).  Has anybody tried  this before?  What are the
general steps for porting a driver?

Thanks,

Drew



% make | head
Warning: Object directory not changed from original
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18
cc -O2 -pipe -DNO_MALLOC_EXTRAS  -D_GNU_SOURCE -DCONFIG_USB_GSPCA
-DCONFIG_USB_GSPCA_SONIXB -DCONFIG_USB_GSPCA_SONIXJ
-DCONFIG_USB_GSPCA_ZC3XX -DCONFIG_DVB_AF9013
-DCONFIG_MEDIA_TUNER_MXL5005S -DCONFIG_DVB_STV0288 -DCONFIG_DVB_MT312
-DCONFIG_DVB_DS3000 -DCONFIG_DVB_STB0899 -DCONFIG_DVB_STB6100
-DCONFIG_DVB_LNBP22 -DCONFIG_DVB_TUNER_DIB0070 -DCONFIG_DVB_DIB7000P
-DCONFIG_MEDIA_TUNER_MT2060 -DBITS_PER_LONG=64
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/dummy
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/headers
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/video/gspca
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/video/hdpvr
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/common/tuners
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/dvb/dvb-core
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/dvb/frontends
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/dvb/dvb-usb
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/include
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18
-I/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/dvb/ttpci
-DLINUX -DCONFIG_INPUT -DCONFIG_VIDEO_V4L1_COMPAT
-DCONFIG_DVB_DIB3000MC -DCONFIG_VIDEO_PVRUSB2_DVB -DCONFIG_I2C
-DCONFIG_DVB_CORE -DCONFIG_AS102_USB -DCONFIG_FW_LOADER -DHAVE_WEBCAMD
-DCONFIG_DVB_AT76C651 -DCONFIG_DVB_ATBM8830 -DCONFIG_DVB_AU8522
-DCONFIG_DVB_BCM3510 -DCONFIG_DVB_CX22700 -DCONFIG_DVB_CX22702
-DCONFIG_DVB_CX24110 -DCONFIG_DVB_CX24116 -DCONFIG_DVB_CX24123
-DCONFIG_DVB_DIB3000MB -DCONFIG_DVB_DIB3000MC -DCONFIG_DVB_DIB3000MC
-DCONFIG_DVB_DIB7000M -DCONFIG_DVB_DIB7000P -DCONFIG_DVB_DIB8000
-DCONFIG_DVB_DRX397XD -DCONFIG_DVB_EC100 -DCONFIG_DVB_ISL6405
-DCONFIG_DVB_ISL6421 -DCONFIG_DVB_ISL6423 -DCONFIG_DVB_L64781
-DCONFIG_DVB_LGDT3304 -DCONFIG_DVB_LGDT3305 -DCONFIG_DVB_LGDT330X
-DCONFIG_DVB_LGS8GL5 -DCONFIG_DVB_LGS8GXX -DCONFIG_DVB_LNBP21
-DCONFIG_DVB_LNBP22 -DCONFIG_DVB_MB86A16 -DCONFIG_DVB_MT312
-DCONFIG_DVB_MT352 -DCONFIG_DVB_NXT200X -DCONFIG_DVB_NXT6000
-DCONFIG_DVB_OR51132 -DCONFIG_DVB_OR51211 -DCONFIG_DVB_PLL
-DCONFIG_DVB_S5H1409 -DCONFIG_DVB_S5H1411 -DCONFIG_DVB_S5H1420
-DCONFIG_DVB_S921 -DCONFIG_DVB_SI21XX -DCONFIG_DVB_SP8870
-DCONFIG_DVB_SP887X -DCONFIG_DVB_STB0899 -DCONFIG_DVB_STB6000
-DCONFIG_DVB_STB6100 -DCONFIG_DVB_STV0288 -DCONFIG_DVB_STV0297
-DCONFIG_DVB_STV0299 -DCONFIG_DVB_STV0900 -DCONFIG_DVB_STV090x
-DCONFIG_DVB_STV6110 -DCONFIG_DVB_STV6110x -DCONFIG_DVB_TDA10021
-DCONFIG_DVB_TDA10023 -DCONFIG_DVB_TDA10048 -DCONFIG_DVB_TDA1004X
-DCONFIG_DVB_TDA10086 -DCONFIG_DVB_TDA665x -DCONFIG_DVB_TDA8083
-DCONFIG_DVB_TDA80XX -DCONFIG_DVB_TDA8261 -DCONFIG_DVB_TDA826X
-DCONFIG_DVB_TUA6100 -DCONFIG_DVB_TUNER_CX24113
-DCONFIG_DVB_TUNER_DIB0090 -DCONFIG_DVB_TUNER_ITD1000
-DCONFIG_DVB_VES1820 -DCONFIG_DVB_VES1X93 -DCONFIG_DVB_ZL10036
-DCONFIG_DVB_ZL10039 -DCONFIG_DVB_ZL10353 -DCONFIG_MEDIA_TUNER_MAX2165
-DCONFIG_MEDIA_TUNER_MC44S803 -DCONFIG_MEDIA_TUNER_MC44S803
-DCONFIG_MEDIA_TUNER_MT2060 -DCONFIG_MEDIA_TUNER_MT20XX
-DCONFIG_MEDIA_TUNER_MT2131 -DCONFIG_MEDIA_TUNER_MT2266
-DCONFIG_MEDIA_TUNER_MXL5005S -DCONFIG_MEDIA_TUNER_MXL5007T
-DCONFIG_MEDIA_TUNER_QT1010 -DCONFIG_MEDIA_TUNER_SIMPLE
-DCONFIG_MEDIA_TUNER_TDA18271 -DCONFIG_MEDIA_TUNER_TDA827X
-DCONFIG_MEDIA_TUNER_TDA8290 -DCONFIG_MEDIA_TUNER_TDA9887
-DCONFIG_MEDIA_TUNER_TEA5761 -DCONFIG_MEDIA_TUNER_TEA5767
-DCONFIG_MEDIA_TUNER_XC2028 -DCONFIG_MEDIA_TUNER_XC5000
-DCONFIG_VIDEO_EM28XX_DVB -DCONFIG_VIDEO_SAA7134_DVB_MODULE -include
webcamd_global.h -O2 -Wall -Wno-pointer-sign -fvisibility=hidden
-I/usr/local/include -std=gnu99 -fstack-protector  -c
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/video/em28xx/em28xx-cards.c
In file included from
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/include/media/ir-common.h:29,
                 from
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/include/media/ir-kbd-i2c.h:4,
                 from
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/video/em28xx/em28xx.h:35,
                 from
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/video/em28xx/em28xx-cards.c:42:
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/include/media/ir-core.h:20:25:
error: linux/kfifo.h: No such file or directory
In file included from
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/video/em28xx/em28xx.h:38,
                 from
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/drivers/media/video/em28xx/em28xx-cards.c:42:
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/include/media/videobuf-dvb.h:7:
error: redefinition of 'struct videobuf_dvb'
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/include/media/videobuf-dvb.h:26:
error: redefinition of 'struct videobuf_dvb_frontend'
/tank/ports/multimedia/webcamd/work/webcamd-0.1.18/v4l-dvb/linux/include/media/videobuf-dvb.h:32:
error: redefinition of 'struct videobuf_dvb_frontends'
*** Error code 1

Stop in /tank/ports/multimedia/webcamd/work/webcamd-0.1.18.


More information about the freebsd-multimedia mailing list