Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: First attempt with Nebula DigiTV card



I think I've made some progress, thanks to Paul and Clyde's advice, but
I think I'm still missing some steps.  This is all new to me, so
apologies in advance.

On  1 Dec, Paul W wrote:
>  On Sun, 2003-11-30 at 23:14, lukekendall@optushome.com.au wrote:
> > I've bought a Nebula DigiTV card, which several suppliers said works with Linux.
> > 
> > I've just downloaded, configured, installed and am running kernel 2.4.23,
> > with Video4Linux and input events enabled. ... linuxtv-dvb-1.0.1 release ...
>  
>  Howdy Luke,
>  	I have the Nebula DigiTV PCI card working on a 2.4.23 kernel, based on
>  the CVS tree (checkout on 2003-11-29):
>  (ref, http://www.linuxtv.org/developer/dvb.xml which suggests:
>  
>  Nebula DVB-T PCI card
>  
>  This driver was written by Florian Schirmer and is part of the
>  dvb-kernel CVS tree.)

Ah, thanks.  (Also thanks to Cyde Stubbs, who also pointed out that the
card is not supported by the 1.0.1 release.)

>  Ref.  http://linuxtv.org/cgi-bin/cvsweb.cgi/

Okay.  I did a cvs checkout of both DVB and dvb-kernel (in fact all the
modules: margi2, kfir, dvb-hw, and dietlibc - though I haven't used
any of them, and don't know what they're for).

I also got the latest snapshot of video4linux, which was something else
I hadn't realised I needed, and compiled that.  That needed a couple of
fixes, but I've sent off my guess about what they should be to 
Gerd Knor (http://bytesex.org/)

This now seems to have built and installed okay.

>  I checked out the 'dvb-kernel' module as shown, entered the 'build-2.4'
>  directory and followed the instructions in the README to build then used
>  'insmod-bt8xx.sh' to load the modules (shown in lsmod) 

One thing that worries me slightly is that while insmod.sh does a
modprobe on "videodev" and then "input", insmod-bt8xx.sh just insmods
videodev.o directly (so, no dependency checking like modprobe), and
doesn't attempt to do anything at all with "input".

I also tweaked insmod-bt8xx.sh as per its internal comments, to suit
the Nebula.

Hmm.  Running that I got these errors:

insmod: videodev.o: No such file or directory
insmod: bttv.o: No such file or directory

I tried running the insmod.sh, wondering whether you're supposed to run
both, and got more errors:

Inserting DVB modules into kernel
insmod: videodev.o: No such file or directory
insmod: bttv.o: No such file or directory
insmod: a module named dvb-core already exists
insmod: a module named v4l1-compat already exists
insmod: a module named v4l2-common already exists
insmod: a module named video-buf already exists
insmod: a module named nxt6000 already exists
bt878.o: unresolved symbol bttv_read_gpio
bt878.o: unresolved symbol bttv_gpio_enable
bt878.o: unresolved symbol bttv_write_gpio
dvb-bt8xx.o: unresolved symbol bt878_stop
dvb-bt8xx.o: unresolved symbol i2c_transfer
dvb-bt8xx.o: unresolved symbol bttv_get_pcidev
dvb-bt8xx.o: unresolved symbol bt878_start
dvb-bt8xx.o: unresolved symbol bt878_num
dvb-bt8xx.o: unresolved symbol bttv_get_cardinfo
dvb-bt8xx.o: unresolved symbol bttv_get_i2c_adap
dvb-bt8xx.o: unresolved symbol bt878

I had done a fresh build  in the cvs DVB directory, and a make install
in the cvs DVB/driver directory, which looked good:

------------ Tue Dec  2 13:35:43 EST 2003 -- make install --------
/lib/modules/2.4.23/build/scripts/pathdown.sh: TOPDIR: parameter null or not set
install -v -m 0755 -d /lib/modules/2.4.23/misc
install -m 0644 dvb-core.o /lib/modules/2.4.23/misc
install -m 0644 av7110/dvb-ttpci.o /lib/modules/2.4.23/misc
find frontends/ -name "*.o" -exec install -v -m 0644 {} /lib/modules/2.4.23/misc \;
`frontends/alps_bsrv2.o' -> `/lib/modules/2.4.23/misc/alps_bsrv2.o'
`frontends/alps_tdmb7.o' -> `/lib/modules/2.4.23/misc/alps_tdmb7.o'
`frontends/alps_tdlb7.o' -> `/lib/modules/2.4.23/misc/alps_tdlb7.o'
`frontends/grundig_29504-401.o' -> `/lib/modules/2.4.23/misc/grundig_29504-401.o'
`frontends/grundig_29504-491.o' -> `/lib/modules/2.4.23/misc/grundig_29504-491.o'
`frontends/stv0299.o' -> `/lib/modules/2.4.23/misc/stv0299.o'
`frontends/ves1820.o' -> `/lib/modules/2.4.23/misc/ves1820.o'
`frontends/tda1004x.o' -> `/lib/modules/2.4.23/misc/tda1004x.o'
`frontends/mt312.o' -> `/lib/modules/2.4.23/misc/mt312.o'
depmod -a
------------ Tue Dec  2 13:35:49 EST 2003 -- done -- made install ------------

Ditto for video4linux:

------------ Tue Dec  2 14:17:44 EST 2003 -- make install --------
strip --strip-debug video-buf.o v4l1-compat.o v4l2-common.o btcx-risc.o ir-common.o bttv.o btcx-risc.o cx88xx.o cx8800.o saa7134.o saa6752hs.o ir-common.o tuner.o tda9887.o msp3400.o tvaudio.o
su -c "mkdir -p /lib/modules/2.4.23/v4l2; cp -v video-buf.o v4l1-compat.o v4l2-common.o btcx-risc.o ir-common.o bttv.o btcx-risc.o cx88xx.o cx8800.o saa7134.o saa6752hs.o ir-common.o tuner.o tda9887.o msp3400.o tvaudio.o /lib/modules/2.4.23/v4l2; depmod -a"
`video-buf.o' -> `/lib/modules/2.4.23/v4l2/video-buf.o'
`v4l1-compat.o' -> `/lib/modules/2.4.23/v4l2/v4l1-compat.o'
`v4l2-common.o' -> `/lib/modules/2.4.23/v4l2/v4l2-common.o'
`btcx-risc.o' -> `/lib/modules/2.4.23/v4l2/btcx-risc.o'
`ir-common.o' -> `/lib/modules/2.4.23/v4l2/ir-common.o'
`bttv.o' -> `/lib/modules/2.4.23/v4l2/bttv.o'
`btcx-risc.o' -> `/lib/modules/2.4.23/v4l2/btcx-risc.o'
`cx88xx.o' -> `/lib/modules/2.4.23/v4l2/cx88xx.o'
`cx8800.o' -> `/lib/modules/2.4.23/v4l2/cx8800.o'
`saa7134.o' -> `/lib/modules/2.4.23/v4l2/saa7134.o'
`saa6752hs.o' -> `/lib/modules/2.4.23/v4l2/saa6752hs.o'
`ir-common.o' -> `/lib/modules/2.4.23/v4l2/ir-common.o'
`tuner.o' -> `/lib/modules/2.4.23/v4l2/tuner.o'
`tda9887.o' -> `/lib/modules/2.4.23/v4l2/tda9887.o'
`msp3400.o' -> `/lib/modules/2.4.23/v4l2/msp3400.o'
`tvaudio.o' -> `/lib/modules/2.4.23/v4l2/tvaudio.o'
------------ Tue Dec  2 14:17:48 EST 2003 -- done -- made install ------------

Thoug I notice there's no videodev in either of those - in fact there's
no videdev.o anywhere in any of the build areas.

Does insmod, BTW, know to look in the v4l2 directory?  There *is* a
bttv.o in there (though no videodev.o).

And I just realised I hadn't done a "make install" in the
dvb-kernel/build-2.4 directory.

I now see some overlap between the modules in /lib/modules/2.4.23/misc
and in /lib/modules/2.4.23/v4l2/:

[root@posh build-2.4]# ls /lib/modules/2.4.23/v4l2/
btcx-risc.o  cx88xx.o     saa6752hs.o  tuner.o        v4l2-common.o
bttv.o       ir-common.o  saa7134.o    tvaudio.o      video-buf.o
cx8800.o     msp3400.o    tda9887.o    v4l1-compat.o

[root@posh build-2.4]# ls /lib/modules/2.4.23/misc
alps_bsrv2.o           dvb-ttpci-budget-patch.o  skystar2.o
alps_tdlb7.o           dvb-ttpci-budget.o        sp887x.o
alps_tdmb7.o           dvb-ttpci.o               stv0299.o
at76c651.o             dvb-ttusb-budget.o        tda1004x.o
bt878.o                dvb-ttusb-dec.o           ttpci-eeprom.o
cx24110.o              dvb_dummy_fe.o            v4l1-compat.o
dec2000_frontend.o     grundig_29504-401.o       v4l2-common.o
dst.o                  grundig_29504-491.o       ves1820.o
dvb-bt8xx.o            mt312.o                   ves1x93.o
dvb-core.o             nxt6000.o                 video-buf.o
dvb-ttpci-budget-av.o  saa7146.o
dvb-ttpci-budget-ci.o  saa7146_vv.o

So, now the differences in loaded modules before vs after are:

[root@posh dvtv]# diff pre-insmod post-insmods 
1a2,20
> dvb-ttusb-budget       24212   0  (unused)
> ttpci-eeprom            2792   0 
> saa7146_vv             40496   0 
> saa7146                14296   0  [saa7146_vv]
> grundig_29504-491       5472   0  (unused)
> grundig_29504-401       6144   0  (unused)
> tda1004x               12356   0  (unused)
> ves1820                 6660   0  (unused)
> stv0299                10208   0  (unused)
> alps_tdmb7              5536   0  (unused)
> alps_tdlb7              7844   0  (unused)
> ves1x93                 6820   0  (unused)
> input                   5184   0 
> videodev                7872   0  [saa7146_vv]
> nxt6000                 8896   0  (unused)
> video-buf              16384   0  [saa7146_vv]
> v4l2-common             3872   0  [saa7146_vv]
> v4l1-compat            13472   0  [saa7146_vv]
> dvb-core               52516   0  [dvb-ttusb-budget grundig_29504-491 grundig_29504-401 tda1004x ves1820 stv0299 alps_tdmb7 alps_tdlb7 ves1x93 nxt6000]
24c43
< usbcore                70144   1  [usb-uhci]
---
> usbcore                70144   1  [dvb-ttusb-budget usb-uhci]

I'm glad to see that videodev is there, but I don't know where it came
from!

>  from lsmod:
>  ==========
>  dvb-bt8xx               4220   0  (unused)
>  nxt6000                 7408   1
>  v4l1-compat            12424   0  (unused)
>  dvb-core               42368   0  [dvb-bt8xx nxt6000]
>  bt878                   5424   0  [dvb-bt8xx]
>  bttv                  109484   0  [dvb-bt8xx bt878]
>  video-buf              11908   0  [bttv]
>  v4l2-common             3328   0  [bttv]
>  videodev                6752   2  [bttv]
>  i2c-algo-bit            7272   1  [bttv]
>  btcx-risc               2328   0  [bttv]
>  i2c-proc                7152   0
>  i2c-core               13508   0  [dvb-bt8xx bttv i2c-algo-bit i2c-proc]

I notice that I don't have i2c-proc pr i2c-core.  Is that a problem?

> from dmesg:
> ==========
> i2c-core.o: i2c core module
> i2c-proc.o version 2.6.1 (20010825)
> i2c-algo-bit.o: i2c bit algorithm module
> Linux video capture interface: v1.00
> bttv: driver version 0.9.12 loaded
> bttv: snapshot date 2003-11-26
> bttv: using 8 buffers with 2080k (520 pages) each for capture
> bttv: Bt8xx card found (0).
> bttv0: Bt878 (rev 17) at 00:0b.0, irq: 11, latency: 32, mmio: 0xeb000000
> bttv0: detected: Nebula Electronics DigiTV [card=104], PCI subsystem ID
> is 0071:0101
> bttv0: using: Nebula Electronics DigiTV [card=104,autodetected]
> bttv0: gpio: en=00000000, out=00000000 in=00ff00cb [init]
> i2c-core.o: adapter bt878 #0 [sw] registered as adapter 0.
> bttv0: using tuner=-1
> bttv0: registered device video0
> bttv0: registered device vbi0
> bttv0: PLL: 28636363 => 35468950 .. ok
> bt878: AUDIO driver version 0.0.0 loaded
> bt878: Bt878 AUDIO function found (0).
> bt878(0): Bt878 (rev 17) at 00:0b.1, irq: 11, latency: 32, memory:
> 0xeb001000
> ...
> DVB: registering new adapter (Neb).
> DVB: registering frontend 0:0 (NxtWave NXT6000)...

My dmesg just shows this happened, and no more - no i2c stuff, either:

Linux video capture interface: v1.00
saa7146: register extension 'dvb'.
saa7146: register extension 'budget dvb'.
saa7146: register extension 'budget_ci dvb'.
saa7146: register extension 'budget dvb /w video in'.
usb.c: registered new driver Technotrend/Hauppauge USB-Nova


I also don't have a /dev/dvb - what is supposed to create that, and the
devices under it like adapter0 that I've seen mentioned?  From
Boggle.org:

    Exactly which modules you'll need will depend on which card
    you've got. In my case, I have to load the following: videodev
    dvb-core tda1004x input evdev dvb-ttpci. With these loaded,
    you should now have a /dev/dvb/adaptor0/ directory -- assuming
    you're using devfs, which you should be if you're running Gentoo.

I'm running RH 7.2, and not devfs, so I expect there's a manual device
creation step for /dev/dvb, but I can't remember how that stuff works.

I took a guess and ran MAKEDEV v4l, which created lots of devices:
vtx, vtx0-31, winradio0-3, sequencer, vbi0-31, video/, video0-63, dsp,
dsp1,dsp56k, midi0-3, midi00-03, mixer, mixer1, dcx4-7, radio0-63

But no /dev/dvb.

> >From some earlier stuffing about:
> =================================
> unix$ ./tzap "TEN Digital"
> using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
> tuning to 219500000 Hz
> status 09 | signal 0000 | snr 0000 | ber 00000000 | unc 00000000 |
> status 1f | signal 0000 | snr 0000 | ber 00000000 | unc 00000000 |
> FE_HAS_LOCK
> 
> Note that the signal level and snr shouldn't be 0, but xine works
> showing all channels!

[root@posh szap]# ./tzap "TEN Digital"
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
ERROR: could not open file '/root/.tzap/channels.conf' (No such file or directory)
No such file or directory

[root@posh szap]# ls /dev/dvb
ls: /dev/dvb: No such file or directory

> I hope this helps,
> 
> Paul.

It did, it definitely did.  I feel I'm getting closer, though I've
obviously still got several things wrong.

Is there supposed to be an /etc/dvb directory too, BTW?  Boggle.org
makes a mention of that, too, in relation to copying a .dll:

    If you're using a Technotrend card, don't forget to copy
    the microcode DLL from "ttlcdacc.dll" on your driver CD
    (or the downloadable version at the Technotrend site) to
    /etc/dvb/tda1004x.mc.

Apologies for the length of this message.  But I'm just trying to
provide enough information to be useful.

luke



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index