Compiling driver for DVB-C stick (TT CT2-4400) SOLVED

54 53539
Post Last Edited by maxwell at 2014-8-7 12:17


No time right now, will elaborate later. Working on BPi, modprobe forced sit2fe.ko and dvb-usb-dvbsky and boom, dvb device is available and tvheadend recognises it immediately!

Getting “no symbol version for module_layout” in dmesg when modprobing and kernel gets tainted. For the moment I think I can live with it, but sure I want a clean install some time soon. Just so glad, that the arm module actually works. Haven't seen anyone around being able to have it work properly.


Hi Maxwell
A few things come to mind...
When building the modules did you get the "Module.symvers not found" warning?
Probably that warning has come back to haunt,with the dmesg error.
You could request Tony Zhang for the Module.symvers file and build the modules against it.

Had you copied the .config file from your (running) BPi to the x-compile kernel source tree?
If not you could try that.

You could even try running "make modules_prepare" on the x-compile kernel before compiling the modules.

If all fails,you could x-compile your own kernel(you've already done that it seems),build the modules from the kernel source tree,build the dvb modules and use this set on your Lubuntu.

heck with all your recent Linux Kung-Fu(like someone termed it) you could even roll out your own distro...MaxUbuntu   

the kernel tainted message is probably due to the proprietary(nonGPL) binary,sit2.o

do keep us posted..

Post Last Edited by maxwell at 2014-8-7 17:49

Hi Sashijoseph,
it has been quite a ride the last couple of days, steep learning curve and I had probably given up earlier without your hints and tips. So a big thanks to you!

Regarding .config:
As I read some text about one having problems cross compiling earlier, there was a suggestion to compile exactly like his target system configuration. So yes, I got me the .config from /proc/config.gz today for both RPi and BPi, just to be save. But nothing changed though. At least I now know that I use the exact kernel config in the future.

Regarding Module.symvers:
I actually stumbled upon those error messages when compiling for the Raspberry. I got me that file for the RPi from the repo and the message went away but now I was left with another error "Source EABI 0 -> Target EABI 5" error messages.

** UPDATE EABI error ***
Duh, just found out, that I used the sit2.o for Cortex A9 instead of the also available RPi sit2.o to compile! Probably the error reason AND why I didn't get anything to work on the pi :-D

When I headed back for the more important BPi cross compile I just compiled and everything went smooth, so I thought I had the one for the BPi. But I just noticed I don't have it on my CompilerBox, I have it on my real BPi though. I will just copy it over from my BPi to my VM and recompile as my last action tonight and see if those modules are finally accepted as they are :-D

I will read up on "make modules_prepare" and try that (of course). And yes, maybe I will do my complete own image, because MaxUbuntu doesn't sound too bad. :-D

Just a quick summary, what is needed to make this CT2-4400 (and some other new models from Technotrend):
Get media_build-bst from Manufacturer
Get precompiled closed source module Sit2.o for ARM
Get BPi Kernel Sources and build it with its modules
Compile media_build-bst (sit2fe.ko, dvb-usb-v2.ko, dvb-usb-dvbsky,ko are the three modules that don't exist in vanilla BPi)
Make Install media_build-bst on BPi

Sound like 5 quick steps to victory, normally. :-D

I head back to some more testing now and will probably do a roundup/how to in another post.

Oh and the tainted message, at least in this context here, isn't all too bad?

I WILL keep you posted.


Before I close my eyes for tonight,

.config and Module.symvers from target BPi didn't work. Still need to force those modules, same errors.

So for the moment I added to my "/etc/rc.local" :

  1. # Force DVB stick
  2. sudo modprobe -f sit2fe
  3. sudo modprobe -f rc-tt-1500
  4. sudo modprobe -f dvb-usb-dvbsky
Copy the Code
This works perfectly. Kaffeine likes it and more importantly TVHeadend, the main purpose of this whole thing. :-)

Good night

BIG news Maxwell !!

btw did you try replacing the BPi kernel with your compiled one...still have to force modprobe?

Anyway it's time to sit back and enjoy the fruits of labor  

Hey maxwell

I'm sorry that I didn't answer earlier, but I had to do loads of work... I'm going to try this now. I hope it works


Post Last Edited by maxwell at 2014-8-8 13:58

Yes, VERY big news, now I can finally enjoy the power of the BPi for streaming live TV to my Media Clients (XBMC) with amazing switch times far faster than my old config (PCIe DVB-C Card with DVBViewer Recording Service as Backend)! Never thought I could have better and faster switch times than with a PCIe card. TVHeadend rules there, didn't test DVBlink or similar though. 2nd stick is coming soon. :-D

I still get the same error messages in demesg. Still have the "exec format error" in Shell when I try to modprobe without "-f". I didn't do that step to use my own kernel, yet. Can I compile the modules for my stick right into it? That would be pretty cool. I will sure try that soon (looking for new Linux challenges) :-D

Best of luck to you!! Been quite some text posted here, just ask, if questions occur and I try to give a more compressed answer here. ;-)

Cheers to you guys

Regarding Module.symvers, I just learned from a message board:

The Module.symvers is (re)generated when you (re)compile modules. Run make modules, and you should get a Module.symvers file at the root of the kernel tree. Note that if you only ran make and not make modules, you haven't built any modules yet. The symbols from the kernel itself (vmlinux or one of the architecture-dependent image formats) are in

So using my Module.symvers from my running BPi isnt' neccessary. It probably got created when I test compiled the kernel on it with no real purpose. :-D

Post Last Edited by maxwell at 2014-8-8 17:58

On my post #6 on page one, when I wasn't even doing the cross compiling, I got the error:

scripts/basic/fixdep: 1: scripts/basic/fixdep: Syntax error:

when trying to compile directly on the BPi. This error is easily dismissed by doing a

make modules_prepare

in the Linux Kernel source directory. It is compiling the media_build on the BPi right now. Let's see if those modules can finally be loaded without force :-D

Doing that on the cross compile mashine as Sashijoseph suggested didn't work or maybe I was just doing something wrong there. Thumbs pressed - as we say here....

Damn it, still get the exec error. Going on forcing then for a while ;-)

Nice weekend guys!

So using my Module.symvers from my running BPi isnt' neccessary. It probably got created when I test compiled the kernel on it with no real purpose. :-D

Maxwell,did the BPi have a Module.symvers by itself...if I remember correctly the kernel sources are not installed by default in the BPi distro(no "build" directory).

The kernel you have x-compiled would have generated a Module.symvers which in turn would have been used for building the out of tree DVB modules.So,in a way,these new modules would be sort of version-connected to your x-compiled kernel but not the BPi kernel(remember even if the kernel tree is the same,even a different compile option could change/setup certain data structures in the kernel which could cause a mismatch)
That's why I wanted you to try your x-compiled kernel on the Bpi,just to confirm whether this actually is the case or sth. else.

You have to log in before you can reply Login | Sign Up

Points Rules