[Re: [linux-dvb] Compro Videomate DVB-T200 and friends

hermann pitton hermann-pitton at arcor.de
Mon Sep 11 15:45:03 CEST 2006


Hi James,

Am Montag, den 11.09.2006, 10:07 +0100 schrieb James Fidell:
> hermann pitton wrote:
> > Am Sonntag, den 10.09.2006, 02:00 +0200 schrieb Hartmut Hackmann:
> >> Hi, James
> >>
> >> James Fidell wrote:
> >>> Meant to send this to the list rather than privately.  Bah.
> > 
> > Sorry,
> > 
> > never mind, or don't mind me at least.
> > 
> > You claim all broken here and seem not to have even udev straight.
> 
> It's quite possible I don't have udev correctly configured.  Currently
> it is as installed by FC5 with the inclusion of the lines in the wiki
> to create the /dev/dvb devices.
> 
> I'm not that familiar with udev and hotplug, so I don't know if this is
> sufficient.
> 
> James
> 

maybe some step by step checking.
Useful information you get with e.g. "modinfo saa7134", has also a
"depends on" section. But for example oss=1 is deprecated, since
saa7134-oss (not longer supported by default FC5 kernels) and saa7134-
alsa are outfactored. Try also "modinfo saa7134-alsa" etc.

If you are not sure what is going on with your modules and "depmod -a"
returns no errors, always use the -v option. FC5 will attempt to
autoload the card for you, since for the Compro cards the PCI ID read
from the card's eeprom is not always stable, you might end up with a
default UNKNOWN/GENERIC card loaded not suited for your needs.
Check like "dmesg |grep saa713".

After installing new modules, make sure all old modules are unloaded.
Either reboot or "modprobe -vr saa7134-dvb" saa7134-alsa.
The videodev.ko might be still in use by a webcam, cx88 stuff ...
also you want to remove the old tuner module. Check with "lsmod".

If you now load "modprobe -v saa7134 card=71,71" you can also see if
something made it in /etc/modeprobe.conf and overides your command line
and can adjust it there and do then a "depmod -a" again. Also if you
have duplicate/mixed modules should become visible.

sample.

# modprobe -v saa7134
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/v4l2-common.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/v4l1-compat.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/videodev.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/common/ir-common.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/ir-kbd-i2c.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/compat_ioctl32.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/video-buf.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/saa7134/saa7134.ko card=12,78,6 video_nr=0,1,2 vbi_nr=0,1,2 tuner=5,54,5 radio_nr=0,1,2 latency=64 gbuffers=32

You don't have tuner, vbi and radio for analog.

# modprobe -v saa7134-alsa index=1,2,3
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/saa7134/saa7134-alsa.ko index=1,2,3

dmesg part.

...
saa7134[2]: board init: gpio is 100a0
PM: Adding info for No Bus:i2c-3
tuner 3-0060: All bytes are equal. It is not a TEA5767
tuner 3-0060: chip found @ 0xc0 (saa7134[2])
PM: Adding info for i2c:3-0060
tuner 3-0060: type set to 5 (Philips PAL_BG (FI1216 and compatibles))
saa7134[2]: Huh, no eeprom present (err=-5)?
saa7134[2]: registered device video2 [v4l2]
saa7134[2]: registered device vbi2
saa7134[2]: registered device radio2
saa7134 ALSA driver for DMA sound loaded
saa7134[0]/alsa: saa7134[0] at 0xcfffbc00 irq 177 registered as card 1
saa7133[1]/alsa: saa7133[1] at 0xcfffb000 irq 185 registered as card 2
saa7134[2]/alsa: saa7134[2] at 0xcfffb800 irq 177 registered as card 3

next.

# modprobe -v saa7134-dvb
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/dvb/frontends/tda1004x.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/video-buf-dvb.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/dvb/frontends/dvb-pll.ko
insmod /lib/modules/2.6.18-rc1/kernel/drivers/media/video/saa7134/saa7134-dvb.ko

It shows dvb_attach is enabled, else you would see more frontends.

dmesg shows.

saa7134[0]: frontend initialization failed
DVB: registering new adapter (saa7133[1]).
DVB: registering frontend 0 (Philips TDA10046H DVB-T)...

and after starting an dvb app like tzap -r, xine

tda1004x: setting up plls for 48MHz sampling clock
tda1004x: found firmware revision 26 -- ok

Check "dmesg" and it should be without errors up to this point.

You could now test composite and svideo with say tvtime for picture and
external sound input.

Don't know if Axel has it in the atrpms already, but with the
get_dvb_firmware script from the mercurial master repo you can get
revision 29 from LifeView.
"yum install mercurial"
"hg clone http://linuxtv.org/hg/v4l-dvb"
"./get_dvb_firmware tda10046lifeview" and put it in /lib/firmware.

FC5 has all related device nodes like video0 0660, means only root
has access. The same goes for the dvb stuff, which is script generated
in /etc/udev/rules.d/50-udev.rules. One can change it there.

# DVB
KERNEL=="dvb",			MODE="0660"
SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", \
	NAME="%c", MODE="0660"

This is the same on working FC3,

# DVB
KERNEL=="dvb",                  MODE="0660"
SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0660"  

except the backslash to break the line.
There was some previous discussion on its use with gcc4x.

Still trouble with the dvb device nodes? 
Have no DVB device on FC5, but could put one.

You might eventually find something useful here and previously
http://marc.theaimsgroup.com/?l=linux-video&m=115765691708885&w=2
but you don't have an analog tuner and would use the other inputs.

The tda10046 does not correct for frequently reported offsets of 167000Hz,
which seem to be mostly negative in the UK. So in case you miss a multiplex,
you might try to "dvbscan" again with such offsets.

Good Luck,
Hermann

B.T.W. To be able to use the current mercurial on nominal 2.6.17 FC5 kernels,
       which are 2.6.18 for that and to avoid a compile error, it is enough to change 
       v4l-dvb/linux/drivers/media/dvb/dvb-core/dvbnet.c

@ line 1140 and 1169

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
	spin_lock_bh(&dev->xmit_lock);
#else
	netif_tx_lock_bh(dev);
#endif

	if (dev->flags & IFF_PROMISC) {
		dprintk("%s: promiscuous mode\n", dev->name);
		priv->rx_mode = RX_MODE_PROMISC;
	} else if ((dev->flags & IFF_ALLMULTI)) {
		dprintk("%s: allmulti mode\n", dev->name);
		priv->rx_mode = RX_MODE_ALL_MULTI;
	} else if (dev->mc_count) {
		int mci;
		struct dev_mc_list *mc;

		dprintk("%s: set_mc_list, %d entries\n",
			dev->name, dev->mc_count);

		priv->rx_mode = RX_MODE_MULTI;
		priv->multi_num = 0;

		for (mci = 0, mc=dev->mc_list;
		     mci < dev->mc_count;
		     mc = mc->next, mci++) {
			dvb_set_mc_filter(dev, mc);
		}
	}

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
	spin_unlock_bh(&dev->xmit_lock);
#else
	netif_tx_unlock_bh(dev);
#endif
	dvb_net_feed_start(dev);
}


the compat stuff from < KERNEL_VERSION(2,6,18) to (2,6,17)




More information about the linux-dvb mailing list