Mailing List archive

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

[linux-dvb] Re: dvb-bttv compile issues {repost}



Reposting as I forgot to cc the list..
---------------
Hi,

> You need to build against recent video4linux code as well; grab a recent
> snapshot from http://dl.bytesex.org/cvs-snapshots/ , build and install it.
> Once this is complete, copy the bttv.h and bt848.h from this snapshot into
> your into your dvb-kernel/build-2.6 directory and then the DVB part should
> build.
>
I was wondering what 'build against recent ...' meant.  Thanks.
That's one step closer...

Using a CVS of video4linux of a day or so ago, and a CVS of linux-dvb
of about the same, I can now build *almost* everyhting.  I get an
error building dvb_net.*. (I will attach this error last as I think it
has no affect on me. Feel free to correct me..) As a work around I
copied the dvb_net.* and dvb_functions.* from the cvs build on Chris's
download page (dvb-kernel-20040629+cjp.tar.gz).

I then "made" and "make installed" the video4linuz stuff, then copied
the bttv.h abd bt848.h to build-2.6 as per your recomendations.
'make' ran with no more errors.  However, when I 'insmod' dvb-btxx.ko
I get an error.  Here it is (dmesg):
dvb_bt8xx: Unknown symbol bt878_num
dvb_bt8xx: disagrees about version of symbol bttv_sub_unregister
dvb_bt8xx: Unknown symbol bttv_sub_unregister
dvb_bt8xx: disagrees about version of symbol bttv_sub_register
dvb_bt8xx: Unknown symbol bttv_sub_register
dvb_bt8xx: Unknown symbol bt878_start
dvb_bt8xx: Unknown symbol bt878_stop
dvb_bt8xx: Unknown symbol bt878

Which causes it to not load.  I am assuming dvb_bt8xx is required to
feed mpeg2 stream of the tuner?  I really don't know but i guess its a
requirement on a functinoing card ;-)
Here is the order I am loading modules:
   load)
       echo "Inserting DVB modules into kernel"
       modprobe i2c-core
       modprobe evdev
       modprobe i2c-algo-bit
       modprobe videodev
       modprobe v4l1-compat
       modprobe v4l2-common
       modprobe video-buf
       insmod ./dvb-core.ko dvb_shutdown_timeout=0
       modprobe bttv
       insmod ./bt878.ko
       insmod ./dvb-bt8xx.ko
       insmod ./mt352.ko

I've tried swapping the order of bt878 and dvb-bt8xx, to no effect. 
And as you will see fromthe dmest the new bttv driver is being
selected.

Here is the full relavent dmesg:
bttv: driver version 0.9.15 loaded
bttv: snapshot date 2004-10-06
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
bttv0: Bt878 (rev 17) at 0000:00:0b.0, irq: 12, latency: 64, mmio: 0xce9fe000
bttv0: detected: DVICO FusionHDTV DVB-T Lite [card=128], PCI subsystem
ID is 18ac:db10
bttv0: using: DVICO FusionHDTV DVB-T Lite [card=128,autodetected]
bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
bttv0: using tuner=-1
bttv0: add subdevice "dvb0"
dvb_bt8xx: Unknown symbol bt878_num
dvb_bt8xx: disagrees about version of symbol bttv_sub_unregister
dvb_bt8xx: Unknown symbol bttv_sub_unregister
dvb_bt8xx: disagrees about version of symbol bttv_sub_register
dvb_bt8xx: Unknown symbol bttv_sub_register
dvb_bt8xx: Unknown symbol bt878_start
dvb_bt8xx: Unknown symbol bt878_stop
dvb_bt8xx: Unknown symbol bt878
bt878: AUDIO driver version 0.0.0 loaded
mt352_read_register: readreg error (ret == -121)
mt352_read_register: readreg error (ret == -121)
mt352_read_register: readreg error (ret == -121)
dvbfe_mt352: Setup for DVICO FusionHDTV DVB-T Lite

Chris suggested maybe the cvs no longer builds against *older*
versions of 2.6 (I'm using 2.6.7), Is there anyone out there who can
confirm this? I'm stuck behind dialup internet and this kernel is
taking forever to upgrade ;-)

And here is the dvb_net error I mentioned earlier:
freevo build-2.6 # make
[ -L saa7146_video.c ] || ./getlinks
make -C /lib/modules/2.6.7/build
SUBDIRS=/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6
AV7110_FIRMWARE= AV7110_OSD=y
make[1]: Entering directory `/usr/src/linux-2.6.7-bak'
 CC [M]  /tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.o
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:51:
warning: `struct kvec' declared inside parameter list
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:51:
warning: its scope is only this definition or declaration, which is
probably not what you want
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c: In
function `iov_crc32':
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:55:
error: invalid use of undefined type `struct kvec'
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:55:
error: dereferencing pointer to incomplete type
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:55:
error: invalid use of undefined type `struct kvec'
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:55:
error: dereferencing pointer to incomplete type
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c: In
function `dvb_net_ule':
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:482:
error: elements of array `iov' have incomplete type
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:483:
warning: excess elements in struct initializer
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:483:
warning: (near initialization for `iov[0]')
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:483:
warning: excess elements in struct initializer
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:483:
warning: (near initialization for `iov[0]')
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:484:
warning: excess elements in struct initializer
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:484:
warning: (near initialization for `iov[1]')
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:484:
warning: excess elements in struct initializer
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:484:
warning: (near initialization for `iov[1]')
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:485:
warning: excess elements in struct initializer
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:485:
warning: (near initialization for `iov[2]')
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:485:
warning: excess elements in struct initializer
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:485:
warning: (near initialization for `iov[2]')
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:486:
warning: excess elements in struct initializer
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:486:
warning: (near initialization for `iov[3]')
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:487:
warning: excess elements in struct initializer
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:487:
warning: (near initialization for `iov[3]')
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:482:
error: storage size of `iov' isn't known
/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.c:482:
warning: unused variable `iov'
make[2]: *** [/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6/dvb_net.o]
Error 1
make[1]: *** [_module_/tmp/new_freevo/dvicolite-dvb/dvb-kernel/build-2.6]
Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.7-bak'
make: *** [all] Error 2

NB: I found another way to fix this, I modified both references to
kvec to iovec (I have no idea what this means, other than it now
compiles..) as it was in Chris's cvs mentioned ealier (see bellow):

diff dvb-kernel/build-2.6/dvb_net.c dvb-kernel-20041011/build-2.6/dvb_net.c
51c51
< static inline __u32 iov_crc32( __u32 c, struct iovec *iov, unsigned int cnt )
---
> static inline __u32 iov_crc32( __u32 c, struct kvec *iov, unsigned int cnt )
482c482
<                       struct iovec iov[4] = {
---
>                       struct kvec iov[4] = {

Cheers,
Mike




Home | Main Index | Thread Index