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