webcamd: usb dvb-t tuner needs to be re-plugged (after boot/reboot) to work.

Hans Petter Selasky hselasky at c2i.net
Sat Oct 30 15:06:37 UTC 2010


On Saturday 30 October 2010 15:54:14 App Deb wrote:
> OK, first I tried usbconfig -d 2.2 reset (or "power_off" and "power_on")
> but it didn't work. The tuner was still not working after I restarted
> webcamd.
> 
> 
> However webcamd with HAVE_DEBUG gives some useful information:
> 
> - webcamd log when IT IS NOT working (first start after boot/reboot without
> manually replugging device):
> 
> Attached ugen2.2[0] to cuse unit 0
> dvb-usb: found a 'Gigabyte U8000-RH' in warm state.
> dvb-usb: will pass the complete MPEG2 transport stream to the software
> demuxer.
> DVB: registering new adapter (Gigabyte U8000-RH)
> DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)...
> xc2028 130-0061: creating new instance
> xc2028 130-0061: type set to XCeive xc2028/xc3028 tuner
> dvb-usb: schedule remote query interval to 50 msecs.
> dvb-usb: Gigabyte U8000-RH successfully initialized and connected.
> Creating /dev/dvb/adapter0/demux0
> Creating /dev/dvb/adapter0/dvr0
> Creating /dev/dvb/adapter0/frontend0
> 
> 
> webcamd log when it IS working (start webcamd after I manually re-plug usb
> device):
> 
>  Attached ugen2.2[0] to cuse unit 0
> dvb-usb: found a 'Gigabyte U8000-RH' in cold state, will try to load a
> firmware
> Loading firmware at '/boot/modules/dvb-usb-dib0700-1.20.fw', f=7
> dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
> dib0700: firmware started successfully.
> dvb-usb: found a 'Gigabyte U8000-RH' in warm state.
> dvb-usb: will pass the complete MPEG2 transport stream to the software
> demuxer.
> DVB: registering new adapter (Gigabyte U8000-RH)
> DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)...
> xc2028 130-0061: creating new instance
> xc2028 130-0061: type set to XCeive xc2028/xc3028 tuner
> dvb-usb: schedule remote query interval to 50 msecs.
> dvb-usb: Gigabyte U8000-RH successfully initialized and connected.
> Creating /dev/dvb/adapter0/demux0
> Creating /dev/dvb/adapter0/dvr0
> Creating /dev/dvb/adapter0/frontend0
> 
> 
> - - -
> 
> As you see, when webcamd first finds the usb tuner in "cold state" and
> loads the firmware it works, but when it finds it in warm state (and
> bypasses firmware load) it doesn't.
> 
> Also sometimes a message appears like that:
> 
> dvb-usb: Gigabyte U8000-RH successfully initialized and connected.
> dib0700: rc submit urb failed
> 
> But even when it doesn't appear, the tuner still doesn't work if it was
> started from warm-state.
> 
> 
> 
> 
> Is there any way to force webcamd to behave like the tuner is always in
> Cold State to fix this? As I said the usbconfig command didn't seem to
> work for that.
> 
> Thanks.
> 
> On Sat, Oct 30, 2010 at 3:02 PM, Hans Petter Selasky 
<hselasky at c2i.net>wrote:
> > On Saturday 30 October 2010 10:54:55 App Deb wrote:
> > > Great work on webcamd, I easily managed to get my usb dvb-t working
> > > with VLC. It works great but there is a slight problem.
> > > 
> > > For it to work it needs to be unplugged and plugged again once after a
> > > FreeBSD boot or reboot.
> > > 
> > > My usb dvb-t uses 2 firmware files: "dvb-usb-dib0700-1.20.fw" and
> > > "xc3028-v27.fw" (I have them in /boot/modules of course).
> > > 
> > > Looking at the webcamd program output, The dib0700 firmware doesn't
> > > seem
> > 
> > to
> > 
> > > be loaded if my usb tuner was already connected when FreeBSD booted.
> > > The result is that when trying to view TV, all channels have garbled
> > > video
> > 
> > and
> > 
> > > audio output (if they work at all).
> > > 
> > > Replugging it on a live system, correctly shows a webcamd message
> > 
> > "Loading
> > 
> > > dvb-usb-dib0700-1.20.fw firmware.." and from there on the usb tuner
> > > works perfectly.
> > > 
> > > I don't exactly know the internal workings of USB tuners, but for some
> > > reason the tuner itself seems to need a full power-cycle (replug) to be
> > > initialized properly, or maybe webcamd "thinks" that the firmware is
> > > already loaded when it is not (when FreeBSD boots).
> > > 
> > > Is there any workaround/solution for this? Is there any command that
> > > does some virtual (software) re-plug of a usb device. I could use it
> > > in a startup script to solve the problem.
> > > 
> > > Thanks, keep up the good work on webcamd, great project.
> > > _______________________________________________
> > > freebsd-multimedia at freebsd.org mailing list
> > > http://lists.freebsd.org/mailman/listinfo/freebsd-multimedia
> > > To unsubscribe, send any mail to
> > > "freebsd-multimedia-unsubscribe at freebsd.org"
> > 
> > Hi,
> > 
> > 1) You can try to compile webcamd using the "make HAVE_DEBUG=YES".
> > 
> > 2) Also try: usbconfig -d X.Y reset
> > 
> > --HPS

Hi,

If you grep for the idVendor and idProduct as shown by usbconfig -d X.Y 
dump_device_desc, in the webcamd sources, you will probably find the driver 
and can by-pass the warm check by inspecting the code.

--HPS


More information about the freebsd-multimedia mailing list