bas-t / ffdecsawrapper

FFdecsa empowered softcam for MythTV
GNU General Public License v3.0
17 stars 9 forks source link

TBS driver support #2

Closed nickb937 closed 11 years ago

nickb937 commented 11 years ago

TBS brand DVB-S and DVB-C drivers are built from their own tar file of V4L. This simple patch will allow a user of TBS cards to have dvbloopback link with the correct module symbol versions. Once this patch is applied, they need to specify --dvb_dir to point to their built drivers.

./configure --dvb_dir=/root/tbs/linux-tbs-drivers/linux make

root@satellite:~/ffdecsawrapper/contrib/ffdecsawrapper# git diff
diff --git a/contrib/ffdecsawrapper/configure b/contrib/ffdecsawrapper/configure
index 06f45c3..d0ff64e 100755
--- a/contrib/ffdecsawrapper/configure
+++ b/contrib/ffdecsawrapper/configure
@@ -445,7 +445,11 @@ fi
 # Distinguish between '3.6 or lower' and '3.7 or higher' kernels

 if test "x$dvb_path" != "x"; then
-  cp -f $dvb_path/drivers/media/dvb-core/dvbdev.h dvbloopback/module/dvbdev.h
+  if [ -e "$dvb_path/drivers/media/dvb/dvb-core/dvbdev.h" ]; then
+    cp -f $dvb_path/drivers/media/dvb/dvb-core/dvbdev.h dvbloopback/module/dvbdev.h
+  else
+    cp -f $dvb_path/drivers/media/dvb-core/dvbdev.h dvbloopback/module/dvbdev.h
+  fi
 else
   if [ $FIRST_DIGIT -eq 3 ]; then
     if [ $SECOND_DIGIT -lt 7 ]; then
bas-t commented 11 years ago

Your diff does nothing with Module.symvers. As for the devdev.h: that has been taken care of. I've got reports from other TBS drivers users that it works fine as it is now

bas-t commented 11 years ago

I did a quick check. Seems that you may have a good point after all. Am I correct that tbs uses the older dvbdev.h? If so, did you use it with a newer kernel (3.7 or higher?)

I allready had the patch in place, but removed it again, because v4l allways uses the newer dvbdev.h I will re-aply it.

bas-t commented 11 years ago

Committed b819e1a017

Any TBS driver related issues left?

nickb937 commented 11 years ago

Yes, the TBS drivers use an old dvbdev.h which does not appear to be compatible with the dvbdev.h I have on my 3.8.0 kernel. The whole V4L layer is built from the TBS tree, so it's better to use the one in the tree than try to use the vendor kernel version.

Before the change:

[657941.359442] dvbloopback: disagrees about version of symbol dvb_register_adapter [657941.359446] dvbloopback: Unknown symbol dvb_register_adapter (err -22) [657941.359462] dvbloopback: disagrees about version of symbol dvb_unregister_device [657941.359463] dvbloopback: Unknown symbol dvb_unregister_device (err -22) [657941.359486] dvbloopback: disagrees about version of symbol dvb_register_device [657941.359487] dvbloopback: Unknown symbol dvb_register_device (err -22) [657941.359492] dvbloopback: disagrees about version of symbol dvb_unregister_adapter [657941.359494] dvbloopback: Unknown symbol dvb_unregister_adapter (err -22)

After the change:

[731238.385167] /root/ffdecsawrapper/contrib/ffdecsawrapper/dvbloopback/module/dvb_loopback.c: frontend loopback driver v0.0.1 [731238.385170] dvbloopback: registering 1 adapters [731238.385194] DVB: registering new adapter (DVB-LOOPBACK) [864485.990013] dvbloopback: Got wrong response (2158522173 != 18446744073709551615) [864781.235966] /root/ffdecsawrapper/contrib/ffdecsawrapper/dvbloopback/module/dvb_loopback.c: Unregistering ca loopback devices [864781.236385] removing dvblb proc adapter [864781.236386] dvblb init = 100

I shall open other issues if I find further TBS related problems. The last time I tried channel scanning with sasc, dvbloopback and TBS, the whole kernel locked up (with mutex patch applied)