Προς το περιεχόμενο

RivaTV


capthookb

Προτεινόμενες αναρτήσεις

Έχει καταφέρει κανείς να κάνει compile τα modules του rivatv project;

Δοκίμασα να κάνω compile τόσο την cvs όσο και την τελευταία stable έκδοση, αλλά δεν κατάφερα κάτι.

Για όποιον ενδιαφέρετε μετά το make παίρνω:

>
 CC [M]  /tmp/rivatv/bttv/tuner.o
/tmp/rivatv/bttv/tuner.c:42: error: expected ʽ)ʼ before string constant
/tmp/rivatv/bttv/tuner.c:43: error: expected ʽ)ʼ before string constant
/tmp/rivatv/bttv/tuner.c:44: error: expected ʽ)ʼ before string constant
/tmp/rivatv/bttv/tuner.c:45: error: expected ʽ)ʼ before string constant
/tmp/rivatv/bttv/tuner.c:46: error: expected ʽ)ʼ before string constant
/tmp/rivatv/bttv/tuner.c:1036: error: expected ʽ)ʼ before string constant
make[2]: *** [/tmp/rivatv/bttv/tuner.o] Error 1
make[1]: *** [_module_/tmp/rivatv/bttv] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.18-ARCH'
make: [all-kbuild] Error 2 (ignored)
make[1]: Entering directory `/usr/src/linux-2.6.18-ARCH'
 CC [M]  /tmp/rivatv/src/rivatv-driver.o
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_video_openʼ:
/tmp/rivatv/src/rivatv-driver.c:134: warning: implicit declaration of function ʽvideo_devdataʼ
/tmp/rivatv/src/rivatv-driver.c:134: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:136: warning: implicit declaration of function ʽvideo_get_drvdataʼ
/tmp/rivatv/src/rivatv-driver.c:136: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_video_closeʼ:
/tmp/rivatv/src/rivatv-driver.c:189: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:191: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_video_ioctlʼ:
/tmp/rivatv/src/rivatv-driver.c:307: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:310: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:782: error: dereferencing pointer to incomplete type
/tmp/rivatv/src/rivatv-driver.c:783: error: dereferencing pointer to incomplete type
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_video_mmapʼ:
/tmp/rivatv/src/rivatv-driver.c:822: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:824: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_vbi_openʼ:
/tmp/rivatv/src/rivatv-driver.c:851: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:853: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_vbi_closeʼ:
/tmp/rivatv/src/rivatv-driver.c:869: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:871: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: At top level:
/tmp/rivatv/src/rivatv-driver.c:1090: error: variable ʽrivatv_videoʼ has initializer but incomplete type
/tmp/rivatv/src/rivatv-driver.c:1091: error: unknown field ʽownerʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1091: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1091: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1092: error: unknown field ʽnameʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1092: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1092: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1093: error: unknown field ʽtypeʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1093: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1093: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1094: error: unknown field ʽhardwareʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1094: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1094: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1095: error: unknown field ʽfopsʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1095: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1095: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1127: error: variable ʽrivatv_vbiʼ has initializer but incomplete type
/tmp/rivatv/src/rivatv-driver.c:1128: error: unknown field ʽownerʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1128: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1128: warning: (near initialization for ʽrivatv_vbiʼ)
/tmp/rivatv/src/rivatv-driver.c:1129: error: unknown field ʽnameʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1129: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1129: warning: (near initialization for ʽrivatv_vbiʼ)
/tmp/rivatv/src/rivatv-driver.c:1130: error: unknown field ʽtypeʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1130: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1130: warning: (near initialization for ʽrivatv_vbiʼ)
/tmp/rivatv/src/rivatv-driver.c:1131: error: unknown field ʽhardwareʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1131: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1131: warning: (near initialization for ʽrivatv_vbiʼ)
/tmp/rivatv/src/rivatv-driver.c:1132: error: unknown field ʽfopsʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1132: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1132: warning: (near initialization for ʽrivatv_vbiʼ)
make[2]: *** [/tmp/rivatv/src/rivatv-driver.o] Error 1
make[1]: *** [_module_/tmp/rivatv/src] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.18-ARCH'
make: *** [all-kbuild] Error 2

Μήπως δεν υποστηρίζεται η έκδοση του πυρήνα από το RivaTV;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μάλλον ο compiler σου είναι το πρόβλημα (ή πιο σωστά ο κώδικας του RivaTV). gcc 4.0;

 

/edit: άκυρο μάλλον, εδώ με sources του 2.6.16 και gcc 4.1 η cvs-2006-04-29 κάνει μια χαρά compile χωρίς warnings και errors. Επίσης ο κώδικας στις γραμμές 42 - 46 του tuner.c (που είναι απλά οι δηλώσεις των module parameters) φαίνεται απόλυτα σωστός. Κοινώς: no clue :-/

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι, gcc 4.1 νομίζω. Έχω δει και στο forum του rivatv να αναφέρουν προβλήματα με πυρήνα 2.6.17, και πως έχει αλλάξει η σύνταξη των module_param ή κάτι τέτοιο τέλος πάντων. Πάντως επίσημα δεν έχει αναφερθεί κάτι από τους developers.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Χμ, ναι, βασικά το tuner.c χρησιμοποιεί το MODULE_PARM macro, το οποίο είναι deprecated εδώ και καιρό. Φαίνεται ότι το αφαίρεσαν από τον 2.6.17 και έπειτα, οπότε πρέπει να αντικατασταθούν οι αντίστοιχες δηλώσεις με την πιο σύγχρονη module_param().

 

/edit:

Για δοκίμασε αυτό το quick'n'dirty patch ;-)

>
--- bttv-2.6/tuner.c.orig       2006-11-12 06:56:45.000000000 +0200
+++ bttv-2.6/tuner.c    2006-11-12 06:55:04.000000000 +0200
@@ -39,11 +39,11 @@
static unsigned int addr  =  0;
static unsigned int tv_range[2]    = { 44, 958 };
static unsigned int radio_range[2] = { 65, 108 };
-MODULE_PARM(debug,"i");
-MODULE_PARM(type,"i");
-MODULE_PARM(addr,"i");
-MODULE_PARM(tv_range,"2i");
-MODULE_PARM(radio_range,"2i");
+module_param(debug, int, 0644);
+module_param(type, int, 0644);
+module_param(addr, int, 0644);
+module_param_array(tv_range, int, NULL, 0644);
+module_param_array(radio_range, int, NULL, 0644);

#define optimize_vco 1

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Yep!

 

>
[apoikos@laptop rivatv-2006-04-29.apoikos]$ ./configure
Checking for configured kernel headers... found [/lib/modules/2.6.16-beyond3-apoikos2/build]
Checking for linux kernel >= 2.4.0... yes [2.6.16-beyond3-apoikos2]
Using bttv sources in... bttv-2.6
Checking for kernel build system... found
Checking for kernel configuration... found
Checking for CONFIG_MODVERSIONS... no
Checking for CONFIG_PCI... yes [y]
Checking for CONFIG_VIDEO_DEV... yes [m]
Checking for CONFIG_PROC_FS... yes [y]
Checking for CONFIG_I2C... yes [m]
Checking for CONFIG_I2C_ALGOBIT... yes [m]
Checking for CONFIG_MODULES... yes [y]
Checking for kernel dependencies... not needed for 2.6.x kernels
Checking for RedHat or Mandrake kernel... no
Checking whether AGP code should be included... no
Checking whether software conversion code should be included... no
Checking whether assembler code is enabled... yes
Creating Makefile... done
Checking your current setup for incompatibilities...
Checking for /proc... yes
Checking for kernel gcc... 4.1.1
Checking for write access to /lib/modules/2.6.16-beyond3-apoikos2/build... yes
Checking for framebuffer... vesafb
Checking for SMP... no

No problems found.
To build RivaTV type `make'.  For cleaning up type `make clean`.

 

Ούτως ή άλλως, το patch αυτό φτιάχνει μόνο το tuner.c. Σχεδόν όλα τα modules του όμως έχουν την MODULE_PARM macro, η οποία πρέπει να αντικατασταθεί.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Tο configure με τον 2.6.18 δεν τρέχει κανονικά. Η σταθερή UTS_RELEASE δεν είναι πλέον στο include/linux/version.h αλλά στο include/linux/utsrelease.h

Διόρθωσα το configure, και όλα τα MODULE_PARM με module_param και τώρα σκαλώνει στα επόμενα errors...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συγνώμη, ξέχασα να τα βάλω:

>
make[1]: Entering directory `/usr/src/linux-2.6.18-ARCH'
 CC [M]  /tmp/rivatv/bttv/tuner.o
 CC [M]  /tmp/rivatv/bttv/tvaudio.o
/tmp/rivatv/bttv/tvaudio.c: In function ʽchip_commandʼ:
/tmp/rivatv/bttv/tvaudio.c:1607: warning: implicit declaration of function ʽ_IOWʼ
/tmp/rivatv/bttv/tvaudio.c:1607: error: expected expression before ʽintʼ
/tmp/rivatv/bttv/tvaudio.c:1607: error: case label does not reduce to an integer constant
/tmp/rivatv/bttv/tvaudio.c:1616: warning: implicit declaration of function ʽ_IOʼ
/tmp/rivatv/bttv/tvaudio.c:1616: error: case label does not reduce to an integer constant
/tmp/rivatv/bttv/tvaudio.c:1626: warning: implicit declaration of function ʽ_IORʼ
/tmp/rivatv/bttv/tvaudio.c:1626: error: expected expression before ʽstructʼ
/tmp/rivatv/bttv/tvaudio.c:1626: error: case label does not reduce to an integer constant
/tmp/rivatv/bttv/tvaudio.c:1650: error: expected expression before ʽstructʼ
/tmp/rivatv/bttv/tvaudio.c:1650: error: case label does not reduce to an integer constant
/tmp/rivatv/bttv/tvaudio.c:1676: error: expected expression before ʽstructʼ
/tmp/rivatv/bttv/tvaudio.c:1676: error: case label does not reduce to an integer constant
/tmp/rivatv/bttv/tvaudio.c:1684: error: expected expression before ʽunsignedʼ
/tmp/rivatv/bttv/tvaudio.c:1684: error: case label does not reduce to an integer constant
make[2]: *** [/tmp/rivatv/bttv/tvaudio.o] Error 1
make[1]: *** [_module_/tmp/rivatv/bttv] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.18-ARCH'
make: [all-kbuild] Error 2 (ignored)
make[1]: Entering directory `/usr/src/linux-2.6.18-ARCH'
 CC [M]  /tmp/rivatv/src/rivatv-driver.o
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_video_openʼ:
/tmp/rivatv/src/rivatv-driver.c:134: warning: implicit declaration of function ʽvideo_devdataʼ
/tmp/rivatv/src/rivatv-driver.c:134: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:136: warning: implicit declaration of function ʽvideo_get_drvdataʼ
/tmp/rivatv/src/rivatv-driver.c:136: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_video_closeʼ:
/tmp/rivatv/src/rivatv-driver.c:189: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:191: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_video_ioctlʼ:
/tmp/rivatv/src/rivatv-driver.c:307: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:310: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:782: error: dereferencing pointer to incomplete type
/tmp/rivatv/src/rivatv-driver.c:783: error: dereferencing pointer to incomplete type
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_video_mmapʼ:
/tmp/rivatv/src/rivatv-driver.c:822: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:824: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_vbi_openʼ:
/tmp/rivatv/src/rivatv-driver.c:851: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:853: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: In function ʽrivatv_vbi_closeʼ:
/tmp/rivatv/src/rivatv-driver.c:869: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c:871: warning: initialization makes pointer from integer without a cast
/tmp/rivatv/src/rivatv-driver.c: At top level:
/tmp/rivatv/src/rivatv-driver.c:1090: error: variable ʽrivatv_videoʼ has initializer but incomplete type
/tmp/rivatv/src/rivatv-driver.c:1091: error: unknown field ʽownerʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1091: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1091: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1092: error: unknown field ʽnameʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1092: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1092: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1093: error: unknown field ʽtypeʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1093: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1093: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1094: error: unknown field ʽhardwareʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1094: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1094: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1095: error: unknown field ʽfopsʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1095: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1095: warning: (near initialization for ʽrivatv_videoʼ)
/tmp/rivatv/src/rivatv-driver.c:1127: error: variable ʽrivatv_vbiʼ has initializer but incomplete type
/tmp/rivatv/src/rivatv-driver.c:1128: error: unknown field ʽownerʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1128: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1128: warning: (near initialization for ʽrivatv_vbiʼ)
/tmp/rivatv/src/rivatv-driver.c:1129: error: unknown field ʽnameʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1129: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1129: warning: (near initialization for ʽrivatv_vbiʼ)
/tmp/rivatv/src/rivatv-driver.c:1130: error: unknown field ʽtypeʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1130: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1130: warning: (near initialization for ʽrivatv_vbiʼ)
/tmp/rivatv/src/rivatv-driver.c:1131: error: unknown field ʽhardwareʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1131: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1131: warning: (near initialization for ʽrivatv_vbiʼ)
/tmp/rivatv/src/rivatv-driver.c:1132: error: unknown field ʽfopsʼ specified in initializer
/tmp/rivatv/src/rivatv-driver.c:1132: warning: excess elements in struct initializer
/tmp/rivatv/src/rivatv-driver.c:1132: warning: (near initialization for ʽrivatv_vbiʼ)
make[2]: *** [/tmp/rivatv/src/rivatv-driver.o] Error 1
make[1]: *** [_module_/tmp/rivatv/src] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.18-ARCH'
make: *** [all-kbuild] Error 2

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλή τύχη :-P Φαίνεται ότι χρησιμοποιούν ακόμα ένα μεγάλο set από παρωχημένες συναρτήσεις - πιθανόν κληρονομιά από τους 2.4.x. Μάλλον το καλύτερο που έχεις να κάνεις αν δεν έχεις όρεξη να το φτιάξεις μόνος σου, είναι να περιμένεις ;-)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 1 μήνα μετά...
  • 1 μήνα μετά...

Πρόσφατα έκαναν update τον κώδικα του rivatv και πλέον γίνεται compile σε νεότερους πυρήνες. Για να δουλέψει μαζί με τους binary drivers της nvidia πρέπει να φορτωθεί το module με τις απαραίτητες παραμέτρους:

>
#modprobe rivatv binary=1 agp=1 dma=1 mmx=1

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...