You are not logged in.

#1 2013-11-27 22:46:16

peewster
Member
From: Netherlands
Registered: 2011-07-18
Posts: 47

drivers for capture card: SAA7160

Hi all

i'm tryin to get this card installed but without any luck.

It seems there are no good drivers available anymore except for: https://bitbucket.org/powARman/v4l-dvb-saa716x/overview but i get compile errors

the card:

03:00.0 Multimedia controller: Philips Semiconductors SAA7160 (rev 02)
	Subsystem: Philips Semiconductors Device 0002
	Flags: bus master, fast devsel, latency 0, IRQ 3
	Memory at f7d00000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: [40] MSI: Enable- Count=1/32 Maskable- 64bit+
	Capabilities: [50] Express Endpoint, MSI 00
	Capabilities: [74] Power Management version 2
	Capabilities: [80] Vendor Specific Information: Len=50 <?>
	Capabilities: [100] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?>

lshw:

*-multimedia UNCLAIMED
                description: Multimedia controller
                product: SAA7160
                vendor: Philips Semiconductors
                physical id: 0
                bus info: pci@0000:03:00.0
                version: 02
                width: 64 bits
                clock: 33MHz

Errors while compiling the custom driver:

# make
make -C /usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l 
make[1]: Entering directory '/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l'
creating symbolic links...
make -C firmware prep
make[2]: Entering directory '/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/firmware'
make[2]: Leaving directory '/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/firmware'
make -C firmware
make[2]: Entering directory '/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/firmware'
make[2]: Nothing to be done for 'default'.
make[2]: Leaving directory '/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/firmware'
Kernel build directory is /lib/modules/3.2.1-3-ARCH/build
make -C /lib/modules/3.2.1-3-ARCH/build SUBDIRS=/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l CFLAGS="-I../linux/include -D__KERNEL__ -I/include -DEXPORT_SYMTAB" modules
make[2]: Entering directory '/usr/src/linux-3.12.1-3-ARCH'
  CC [M]  /usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.o
In file included from /usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.h:10:0,
                 from /usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:22:
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/dvb_frontend.h:49:33: error: field 'parameters' has incomplete type
  struct dvb_frontend_parameters parameters;
                                 ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/dvb_frontend.h:313:28: error: array type has incomplete element type
  struct dvb_frontend_event events[MAX_EVENT];
                            ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c: In function 'xc2028_set_params':
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1081:2: error: unknown type name 'fe_bandwidth_t'
  fe_bandwidth_t     bw = BANDWIDTH_8_MHZ;
  ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1081:26: error: 'BANDWIDTH_8_MHZ' undeclared (first use in this function)
  fe_bandwidth_t     bw = BANDWIDTH_8_MHZ;
                          ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1081:26: note: each undeclared identifier is reported only once for each function it appears in
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1088:9: error: dereferencing pointer to incomplete type
   bw = p->u.ofdm.bandwidth;
         ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1094:13: error: 'BANDWIDTH_6_MHZ' undeclared (first use in this function)
   if (bw == BANDWIDTH_6_MHZ)
             ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1109:8: error: dereferencing pointer to incomplete type
   if (p->frequency < 470000000)
        ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1116:7: error: 'BANDWIDTH_7_MHZ' undeclared (first use in this function)
  case BANDWIDTH_7_MHZ:
       ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1117:8: error: dereferencing pointer to incomplete type
   if (p->frequency < 470000000)
        ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1177:31: error: dereferencing pointer to incomplete type
  return generic_set_freq(fe, p->frequency,
                               ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1178:5: error: 'T_DIGITAL_TV' undeclared (first use in this function)
     T_DIGITAL_TV, type, 0, demod);
     ^
/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.c:1179:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
scripts/Makefile.build:314: recipe for target '/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.o' failed
make[3]: *** [/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l/tuner-xc2028.o] Error 1
Makefile:1228: recipe for target '_module_/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l' failed
make[2]: *** [_module_/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l] Error 2
make[2]: Leaving directory '/usr/src/linux-3.12.1-3-ARCH'
Makefile:43: recipe for target 'default' failed
make[1]: *** [default] Error 2
make[1]: Leaving directory '/usr/src/powARman-v4l-dvb-saa716x-0dab24906ff0/v4l'
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 2

Did try make clean, make distclean etc

any ideas how to get this card to work ?


PoC || GTFO

Offline

#2 2013-11-28 16:22:36

pigiron
Member
From: USA
Registered: 2009-07-14
Posts: 150

Re: drivers for capture card: SAA7160

You're experiencing the joy of having what they call an "out of tree" device just like I am for other devices. Meaning that the "official" Linux developers aren't involved with the driver.

While the kernel folks try very hard not to break compatibility between kernel and user space, that's not so within the kernel itself. They're constantly tweaking things, and then they go fix the things that those changes break. But it's very common that these "out of tree" drivers won't get those fixes for quite some time (if ever) because the maintainers aren't keeping up to date.

Being on the bleeding edge with Arch exacerbates this situation, especially if the out of tree developers use a distro that lags behind and/or only updates the kernel infrequently because they haven't hit the problem (yet).

So to answer your question about getting it to work, possibly the only answer is that those compile errors would need to be investigated and fixed.

Offline

Board footer

Powered by FluxBB