Moderator Control Panel ]

TBS 5922SE and Linux ARM SOC

TBS 5922SE and Linux ARM SOC

Postby alexletux » Tue Jan 26, 2016 4:39 am

I have an ODROID C1+ ARM SOC and want to use it with the TBS 5922SE for recording Sat TV, although TBS provides a Linux driver for x68/AMD64 systems only.

I got relatively far, but still do not get to see a picture.
dmesg reports the receiver in warm state, having loaded firmware and attached the frontend.'(detailed messages see below)
w_scan found all the channels on Astra 19.2E and 28.2E behind a DiSECQ switch and created the channels.conf file (!!!!)

But still, scan_s2 and szap_s2 as well the TV viewers like metv, tvheadend and Kodi show no device. Kaffeine shows a TV device called TMAX TAS2101 in TV settings, but does not show any channel, even if being fed a channels-all.dvb into ~/.kde/share/apps/kaffeine/ that works on another (x86) Linux PC. After starting channel scan, Kaffeine reports "no device" even though it is still there in TV Settings.

SMPlayer sees the channels, but still no picture.

It looks as if only one small thing is missing, but what?



Here is what I did:
found the tbs ARM Linux drivers sources here, coupled with a 4.4 kernel:
https://github.com/beam/linux_media.git

The modules have to be compiled for the correct kernel, so I downloaded the odroid kernel source and copied the following files from above linux-media source into the corresponding path of the odroid kernel source:

linux/drivers/media/usb/dvb-usb/tbs5922se.c
linux/drivers/media/usb/dvb-usb/tbs5922se.h

and because of the inclusion in tbs5922se.c:
linux/drivers/media/tuners/av201x.c
linux/drivers/media/tuners/av201x.h
linux/drivers/media/dvb-frontends/tas2101.c
linux/drivers/media/dvb-frontends/tas2101.h
linux/drivers/media/dvb-frontends/tas2101_priv.h

The kernel version has to correspond to my kernel 3.10.38-135, so I changed the first lines of the ODROID kernel Makefile:

linux/Makefile


to:
VERSION = 3
PATCHLEVEL = 10
SUBLEVEL = 80
EXTRAVERSION = -135



then I edited the following files (added the lines mentioned thereafter) so that the modules were built along with the other modules for the kernal
---
linux/drivers/media/dvb-frontends/Kconfig:


config DVB_TAS2101
tristate "Tmax TAS2101 based"
depends on DVB_CORE && I2C
default m if !MEDIA_SUBDRV_AUTOSELECT
help
A DVB-S demod and tuner module.
Say Y when you want to support this frontend.

---
linux/drivers/media/dvb-frontends/Makefile:


obj-$(CONFIG_DVB_TAS2101) += tas2101.o

---
linux/drivers/media/tuners/Kconfig:


config MEDIA_TUNER_AV201X
tristate "Airoha Technology AV201x silicon tuner"
depends on MEDIA_SUPPORT && I2C
default m if !MEDIA_SUBDRV_AUTOSELECT
help
Airoha Technology AV201x silicon tuner driver.

---
linux/drivers/media/tuners/Makefile:


obj-$(CONFIG_MEDIA_TUNER_AV201X) += av201x.o

---
linux/drivers/media/usb/dvb-usb/Kconfig:


config DVB_USB_TBS5922SE
tristate "TurboSight 5922SE DVB-S2 USB2.0 support"
depends on DVB_USB
select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT
select DVB_TAS2101 if MEDIA_SUBDRV_AUTOSELECT
select MEDIA_TUNER_AV201X if MEDIA_SUBDRV_AUTOSELECT
help
Say Y here to support the TurboSight 5922SE DVB-S USB2.0 receivers

---
linux/drivers/media/usb/dvb-usb/Makefile:


dvb-usb-tbs5922se-objs = tbs5922se.o
obj-$(CONFIG_DVB_USB_TBS5922SE) += dvb-usb-tbs5922se.o

---

I copied dvb-usb-tbsqbox-id5923.fw into /lib/firmware

After successfully compiling the kernel together with the modules, I copied
    - tas2101.ko into /lib/modules/3.10.80-135/kernel/drivers/media/dvb-frontends
    - av201x.ko into /lib/modules/3.10.80-135/kernel/drivers/media/tuners
    - dvb-usb-tbs5922se.ko into /lib/modules/3.10.80-135/kernel/drivers/media/usb/dvb-usb

then I typed
Code: Select All Code
sudo depmod -a
and
Code: Select All Code
sudo modprobe tas2101
, same with av201x and dvb-usb-tbs5922se


here some messages:
Code: Select All Code
dmesg | grep dvb

[ 5360.482991@1] dvb-usb: found a 'TBS 5922SE DVBS2 USB2.0' in cold state, will try to load a firmware
[ 5360.486407@1] dvb-usb: downloading firmware from file 'dvb-usb-tbsqbox-id5923.fw'
[ 5360.612290@3] dvb-usb: found a 'TBS 5922SE DVBS2 USB2.0' in warm state.
[ 5360.612622@3] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 5360.709972@3] dvb-usb: MAC address: 00:22:ab:c0:39:bc
[ 5360.843975@3] dvb-usb: schedule remote query interval to 150 msecs.
[ 5360.843997@3] dvb-usb: TBS 5922SE DVBS2 USB2.0 successfully initialized and connected.



Code: Select All Code
sudo lsmod

Module Size Used by
av201x 3262 1
dvb_usb_tbs5922se 7375 3
tas2101 8560 2 dvb_usb_tbs5922se
dvb_usb 17337 1 dvb_usb_tbs5922se
w1_gpio 3287 0
wire 20827 1 w1_gpio
joydev 8607 0
btusb 15563 0
aml_gpio 7838 0
fuse 70879 2
nls_cp437 5125 1


Code: Select All Code
sudo lsusb -v
(only the relevant part)
Bus 001 Device 009: ID 734c:5923 TBS Technologies China
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x734c TBS Technologies China
idProduct 0x5923
bcdDevice 0.01
iManufacturer 1 TBS-Tech
iProduct 2 TBS5922S
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
alexletux
 
Posts: 1
Joined: Sat Jan 23, 2016 9:16 pm

Return to Linux

Who is online

Users browsing this forum: No registered users and 2 guests