omikron
Posts: 13
Joined: Sat May 25, 2019 8:30 am

Building crazycat's media_build on RPi3

Sat May 25, 2019 8:52 am

Hello,

I am trying to make DVB EVOLVEO SIGMA T2 working.
Linux can see it as ID 0572:c68a Conexant Systems (Rockwell), Inc.

so I tried to use Crazycat's media-build

Code: Select all

sudo apt-get install raspberry-kernel-headers
sudo apt-get install libproc-processtable-perl git build-essential
git clone https://bitbucket.org/CrazyCat/media_build.git
cd media_build
./build.sh
sudo make install
This works well at desktop computer with Ubuntu. But not in recent Raspbian Lite.
It compiles and install without errors, but when I re-insert the device, /var/log/messages says that there are some problems with modules version.

Did anybody compile it on Pi3?

pesand
Posts: 3
Joined: Tue May 28, 2019 5:45 pm

Re: Building crazycat's media_build on RPi3

Tue May 28, 2019 6:12 pm

Hi, I am really happy that someone else has this tuner. Evolveo is a private brand of Czech company Abacus. Aren't you from Czech republic? Anyway tuner is rebranded Geniatech T230C2. Few months ago I have managed it to work with Orange Pi/Armbian. It was really painful and very time consuming. But now it works. My progress was similar to yours.

Code: Select all

apt install patchutils linux-headers-next-sunxi
sudo apt-get install git build-essential libproc-processtable-perl
sudo apt-get install dvb-apps dvb-tools w-scan vlc
git clone https://bitbucket.org/CrazyCat/media_build
cd media_build
./build
sudo make install
sudo make rmmod
sudo modprobe dvb_usb_cxusb
I also needed to charm with kernel version and it works with 4.20.12 for Armbian. But you may try

Code: Select all

sudo make rmmod
. It is the only difference in yours and mine process. Just now I am trying to make it work on rpi3, so I will give you a feedback.

omikron
Posts: 13
Joined: Sat May 25, 2019 8:30 am

Re: Building crazycat's media_build on RPi3

Wed May 29, 2019 8:10 am

pesand wrote:
Tue May 28, 2019 6:12 pm
Hi, I am really happy that someone else has this tuner. Evolveo is a private brand of Czech company Abacus. Aren't you from Czech republic?
I didnt know it about Evolveo.
Yes, I am from Prague.

This tuner is better in sensitivity than the PI DVB Hut and the most TVs

pesand
Posts: 3
Joined: Tue May 28, 2019 5:45 pm

Re: Building crazycat's media_build on RPi3

Wed May 29, 2019 12:43 pm

Greetings from Budweis ;-). Yesterday I have tried to compile drivers on latest raspbian full. I had to do some excercises with kernel versions before it finally compiled. But it still does not work. It sais

Code: Select all

[   82.794694] dvb_usb: disagrees about version of symbol rc_register_device
[   82.794711] dvb_usb: Unknown symbol rc_register_device (err -22)
[   82.794828] dvb_usb: disagrees about version of symbol rc_free_device
[   82.794836] dvb_usb: Unknown symbol rc_free_device (err -22)
[   82.794946] dvb_usb: disagrees about version of symbol rc_allocate_device
[   82.794953] dvb_usb: Unknown symbol rc_allocate_device (err -22)
[   82.795171] dvb_usb: disagrees about version of symbol rc_unregister_device
[   82.795178] dvb_usb: Unknown symbol rc_unregister_device (err -22)
and when I try modprobe

Code: Select all

modprobe: ERROR: could not insert 'dvb_usb_cxusb': Invalid argument
I am very happy, that on orange pi pc I somehow managed it to work. But I would like it to work on rpi too.
About sensitivity - I have very good DVB-T signal, so I can not compare. But RPi TV Hat works out of the box. This USB crap is a pain. This evening I will give it another try. I would like to use RPI with T230C2 as tvheadend and opi as TV box with kodi.

omikron
Posts: 13
Joined: Sat May 25, 2019 8:30 am

Re: Building crazycat's media_build on RPi3

Wed May 29, 2019 3:33 pm

Same result here. Lot of 'disagrees about version of symbol ...' in DVB stuff.
Maybe there are some differences between version of kernel and the headers.

I tried this both with pre installed kernel and with update && upgrade (which installs a bit newer kernel). With the same results.

pesand
Posts: 3
Joined: Tue May 28, 2019 5:45 pm

Re: Building crazycat's media_build on RPi3

Wed May 29, 2019 4:16 pm

Yes, I agree. I will try older raspbian and post results.

djwoef
Posts: 2
Joined: Mon Jun 24, 2019 7:25 pm

Re: Building crazycat's media_build on RPi3

Mon Jun 24, 2019 9:21 pm

So I was very anxious to see the result of the previous message :-)

Which (old) version of Raspbian works with the mediabuild because I was having the exact same problems and whatever I did, fooling around with kernel configs etc etc I always got the "dvb_usb: disagrees about version of symbol rc_register_device" error and things did not work. On Ubuntu 16.04 and 18.04 no problems! But Raspbian is the challenge.

Having bought the August DVB-T230 which is actually also the Geniatech T230C2 ( idVendor=0572, idProduct=c68a:) described here https://www.linuxtv.org/wiki/index.php/Geniatech_T230C2

Actually I got it to work once for a very short moment with a new kernel but was not able to reproduce it. It was after the './build', 'make install' and 'make rmmod' command but before the reboot. I did some manual 'insertmod' and 'modprobe' of a few modules and suddenly got it to work without error. Dit some scanning of frequencies and saw it was working! Then I did a reboot and I was having back the symbol problems again. Could not get it to work again. :-(

I started my own investigation because I saw heaven but lost it again!

There is some discussions/misunderstanding about other media_builds and distro's which should support the Geniatech T230C2. Believe me, they do not work. I tried them all. The mediabuild of Crazycat is the only one that works because I saw it! (even if it was for a short time).

Libreelec was a tricky one! There were some rumours about a special build of Libreelec should supported this device and many more. I tried them all! Libreelec 9 and up does not support it. Libreelec 8.2.5 DOES recognize the device. Whaaw! Finally something! Everythings seems ok, the firmware is even loaded but when doing some real scanning it is not able to lock on any frequency. Waste of time!

Now the goodies! This is the setup that worked for me!

I installed the last version of raspbian (2019-04-08) and booted it.

Dont install the raspberrypi-kernel-headers! I will give you the latest one and that will not work.

You need to go to version 4.9.59-v7+.

How do you do this? Look at https://github.com/Hexxeh/rpi-firmware/commits/master and scroll back until you see 'kernel: Bump to 4.9.59'. It was on committed on 29 Oct 2017. Sorry guys! Its a bit old but at least it works! Click the message and look for the 'git_hash' in the page. In this case it is '6820d0cbec64cfee481b961833feffec8880111e'

Then download this kernel version with Raspbian command

Code: Select all

'rpi-update <hash>'
It will backup the old moduled and install version 4.9.59 of the kernel and its modules.
Reboot! It will boot into the new (old) kernel.

Now get the sources of this kernel by using the rpi-tool

Code: Select all

 wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source
Get the sources and place them under /usr/src

Code: Select all

 sudo ./rpi-source  --dest /usr/src
Check if onder /lib/modules/4.9.59-v7+/ the build and source links point to the right location.

Code: Select all

lrwxrwxrwx  1 root root     14 Jun 23 14:09 build -> /usr/src/linux
lrwxrwxrwx  1 root root     14 Jun 23 14:09 source -> /usr/src/linux
And /usr/src should look like this:

Code: Select all

lrwxrwxrwx  1 root root        55 Jun 23 14:09 linux -> /usr/src/linux-6820d0cbec64cfee481b961833feffec8880111e
drwxrwxr-x 25 root root      4096 Jun 23 14:09 linux-6820d0cbec64cfee481b961833feffec8880111e
If you have other sources installed this might mess things up. It should look like this!

Now its time for mediabuild

Code: Select all

 git clone https://bitbucket.org/CrazyCat/media_build
Compile it.

Code: Select all

 cd media_build/
 ./build 
If everything compiled ok do the following:

Code: Select all

 sudo rm -rf /lib/modules/`uname -r`/kernel/drivers/media/*
And then:

Code: Select all

make install
And
Reboot and check 'dmesg'

Mine looks like this.

Code: Select all

[    2.901994] usb 1-1.4: Product: EyeTV Stick
[    2.902002] usb 1-1.4: Manufacturer: Geniatech
[    2.902009] usb 1-1.4: SerialNumber: 161206
[    3.027129] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    3.110577] systemd-journald[117]: Received request to flush runtime journal from PID 1
[    3.403877] media: loading out-of-tree module taints kernel.
[    3.406112] media: Linux media interface: v0.10
[    3.443061] videodev: Linux video capture interface: v2.00
[    3.443080] WARNING: You are using an experimental version of the media stack.
                As the driver is backported to an older kernel, it doesn't offer
                enough quality for its usage in production.
                Use it with care.
               Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):

[    3.465191] WARNING: You are using an experimental version of the media stack.
                As the driver is backported to an older kernel, it doesn't offer
                enough quality for its usage in production.
                Use it with care.
               Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):

[    3.505733] WARNING: You are using an experimental version of the media stack.
                As the driver is backported to an older kernel, it doesn't offer
                enough quality for its usage in production.
                Use it with care.
               Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):

[    3.562698] dvb-usb: found a 'Mygica T230C2 DVB-T/T2/C' in warm state.
[    3.831447] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[    3.832142] dvbdev: DVB: registering new adapter (Mygica T230C2 DVB-T/T2/C)
[    3.832163] usb 1-1.4: media controller created
[    3.833580] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[    3.857268] i2c i2c-3: Added multiplexed i2c bus 4
[    3.857283] si2168 3-0064: Silicon Labs Si2168-D60 successfully identified
[    3.857292] si2168 3-0064: firmware version: D 6.0.1
[    3.870039] si2157 4-0060: Silicon Labs Si2141 successfully attached
[    3.870113] usb 1-1.4: DVB: registering adapter 0 frontend 0 (Silicon Labs Si2168)...
[    3.870143] dvbdev: dvb_create_media_entity: media entity 'Silicon Labs Si2168' registered.
[    3.921220] Registered IR keymap rc-total-media-in-hand-02
[    3.921438] rc rc0: Mygica T230C2 DVB-T/T2/C as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/rc/rc0
[    3.921756] input: Mygica T230C2 DVB-T/T2/C as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/rc/rc0/input0
[    3.922003] rc rc0: lirc_dev: driver dvb_usb_cxusb registered at minor = 0, scancode receiver, no transmitter
[    3.922011] dvb-usb: schedule remote query interval to 100 msecs.
[    3.922124] dvb-usb: Mygica T230C2 DVB-T/T2/C successfully initialized and connected.
[    3.922247] usbcore: registered new interface driver dvb_usb_cxusb
And 'usb-devices' shows

Code: Select all

T:  Bus=01 Lev=02 Prnt=02 Port=04 Cnt=02 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0572 ProdID=c68a Rev=08.00
S:  Manufacturer=Geniatech
S:  Product=EyeTV Stick
S:  SerialNumber=161206
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=01 Prot=01 Driver=dvb_usb_cxusb
Please let me know if someone found a newer kernel to work with!

Enjoy!

jiritusla
Posts: 1
Joined: Wed Nov 06, 2019 9:24 am

Re: Building crazycat's media_build on RPi3

Wed Nov 06, 2019 10:01 am

Hi,
trying to follow guide by djwoef but facing strange behavior on step where the rpi-update is used.

Code: Select all

root@raspberrypi:~# rpi-update 6820d0cbec64cfee481b961833feffec8880111e
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Invalid hash given

Code: Select all

root@raspberrypi:~# uname -a
Linux raspberrypi 4.19.81-v8+ #1276 SMP PREEMPT Fri Nov 1 14:37:55 GMT 2019 aarch64 GNU/Linux
On the other hand update to hash 'a6b3e852ca70f2a12850b4542438583cc3b29788' which is the one where
bump was committed proceeds

Code: Select all

root@raspberrypi:~# rpi-update a6b3e852ca70f2a12850b4542438583cc3b29788
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
#############################################################
This update bumps to rpi-4.9.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934
##############################################################
 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   168    0   168    0     0    697      0 --:--:-- --:--:-- --:--:--   697
100 54.0M    0 54.0M    0     0  3755k      0 --:--:--  0:00:14 --:--:-- 4306k
 *** Updating firmware
 *** Updating kernel modules
 *** depmod 4.9.59-v7+
 *** depmod 4.9.59+
 *** Updating VideoCore libraries
 *** Using HardFP libraries
 *** Updating SDK
 *** Running ldconfig
 *** Storing current firmware revision
 *** Deleting downloaded files
 *** Syncing changes to disk
 *** If no errors appeared, your firmware was successfully updated to a6b3e852ca70f2a12850b4542438583cc3b29788
 *** A reboot is needed to activate the new firmware
but after the reboot I still have the ' 4.19.81-v8+'.

I'm lost, please show the path...

mrtomng
Posts: 1
Joined: Fri Nov 15, 2019 2:57 pm

Re: Building crazycat's media_build on RPi3

Fri Nov 15, 2019 4:50 pm

After going round in a circles I've managed to build a kernel with support for this device.

I _think_ the problem is that the kernels shipped since 4.9.59 have multimedia support built in to the kernel instead of as a module. When we build the crazycat build, it wants to replace the multimedia module but it gets ignored if it's built in.

As a result, I've built the entire kernel from scratch - with the multimedia as a module - and then built the crazycat media src. Taking inspiration from @djwoef and https://www.raspberrypi.org/documentati ... uilding.md you can try the following. It takes a long time but the link also mentions how you would build the kernel on a more powerful machine.

Of course, this could break your pi install so be warned

Code: Select all

cd $HOME
wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source
chmod +x rpi-source
sudo ./rpi-source  --dest /usr/src
This gets the source for the current kernel.

Code: Select all

sudo apt install git bc bison flex libssl-dev ncurses-dev
Install packages so we can build the kernel

Code: Select all

cd /usr/src/linux
make oldconfig
make menuconfig
In menuconfig, go to Device Drivers and the hover over Multimedia Support and press 'm' to make it a module instead of building in to the kernel (Can someone suggest if we can say 'N' for multimedia to speed up the compile?). Then exit and save.

Code: Select all

make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/kernel7.img
Then make a cup of tea, cook a meal and do your ironing (3hrs maybe!). I've copied to kernel7.img on my RPi3 but could differ (see https://www.raspberrypi.org/documentati ... uilding.md)

Reboot!

Code: Select all

uname -a
Check that the built date/time is today so you know it's your kernel

Code: Select all

cd $HOME
git clone https://bitbucket.org/CrazyCat/media_build
cd media_build
./install.sh
Finish off your ironing and reboot!

I then used this tutorial from step 2 to install tvheadend - https://dirtyoptics.com/raspberry-pi-tv ... tvheadend/

Return to “Media centres”