Jump to content


hanjov

Member Since 20 Dec 2013
Offline Last Active 21 Dec 2013 12:58
-----

Topics I've Started

Connect HDHomeRun with Enigma2

20 December 2013 - 12:57

Hi Folks,

 

I have a VuDuo2 and a HDHomeRun (this is a network DVB-C / DVB-T tuner). The two tuners built-in are not enough, so I was thinking to connect my HDHomeRun network tuner to my VuDuo2.

 

With some effort, I was able to cross-compile the Library from the Vendor as well as the open-source kernel module.

 

Once loaded the kernel module is creating the necessary devices in /dev/dvb/ (adapter1 and adapter2 below):

# ll /dev/dvb/*
/dev/dvb/adapter0:
crw-rw---- 1 root video 212, 29 Dec 1 12:19 audio0
crw-rw---- 1 root video 212, 32 Dec 1 12:19 ca0
crw-rw---- 1 root video 212, 33 Dec 1 12:19 ca1
crw-rw---- 1 root video 212, 34 Dec 1 12:19 ca2
crw-rw---- 1 root video 212, 35 Dec 1 12:19 ca3
crw-rw---- 1 root video 212, 36 Dec 1 12:19 ca4
crw-rw---- 1 root video 212, 37 Dec 1 12:19 ca5
crw-rw---- 1 root video 212, 38 Dec 1 12:19 ca6
crw-rw---- 1 root video 212, 39 Dec 1 12:19 ca7
crw-rw---- 1 root video 212, 40 Dec 1 12:19 ca8
crw-rw---- 1 root video 212, 0 Dec 1 12:19 demux0
crw-rw---- 1 root video 212, 3 Dec 1 12:19 demux1
crw-rw---- 1 root video 212, 6 Dec 1 12:19 demux2
crw-rw---- 1 root video 212, 9 Dec 1 12:19 demux3
crw-rw---- 1 root video 212, 12 Dec 1 12:19 demux4
crw-rw---- 1 root video 212, 15 Dec 1 12:19 demux5
crw-rw---- 1 root video 212, 18 Dec 1 12:19 demux6
crw-rw---- 1 root video 212, 21 Dec 1 12:19 demux7
crw-rw---- 1 root video 212, 24 Dec 1 12:19 demux8
crw-rw---- 1 root video 212, 1 Dec 1 12:19 dvr0
crw-rw---- 1 root video 212, 4 Dec 1 12:19 dvr1
crw-rw---- 1 root video 212, 7 Dec 1 12:19 dvr2
crw-rw---- 1 root video 212, 10 Dec 1 12:19 dvr3
crw-rw---- 1 root video 212, 13 Dec 1 12:19 dvr4
crw-rw---- 1 root video 212, 16 Dec 1 12:19 dvr5
crw-rw---- 1 root video 212, 19 Dec 1 12:19 dvr6
crw-rw---- 1 root video 212, 22 Dec 1 12:19 dvr7
crw-rw---- 1 root video 212, 25 Dec 1 12:19 dvr8
crw-rw---- 1 root video 212, 30 Dec 1 12:19 frontend0
crw-rw---- 1 root video 212, 31 Dec 1 12:19 frontend1
crw-rw---- 1 root video 212, 2 Dec 1 12:19 net0
crw-rw---- 1 root video 212, 5 Dec 1 12:19 net1
crw-rw---- 1 root video 212, 8 Dec 1 12:19 net2
crw-rw---- 1 root video 212, 11 Dec 1 12:19 net3
crw-rw---- 1 root video 212, 14 Dec 1 12:19 net4
crw-rw---- 1 root video 212, 17 Dec 1 12:19 net5
crw-rw---- 1 root video 212, 20 Dec 1 12:19 net6
crw-rw---- 1 root video 212, 23 Dec 1 12:19 net7
crw-rw---- 1 root video 212, 26 Dec 1 12:19 net8
crw-rw---- 1 root video 212, 27 Dec 1 12:19 video0
crw-rw---- 1 root video 212, 28 Dec 1 12:19 video1

/dev/dvb/adapter1:
crw-rw---- 1 root video 212, 41 Dec 6 18:45 demux0
crw-rw---- 1 root video 212, 42 Dec 6 18:45 dvr0
crw-rw---- 1 root video 212, 43 Dec 6 18:45 frontend0

/dev/dvb/adapter2:
crw-rw---- 1 root video 212, 44 Dec 6 18:45 demux0
crw-rw---- 1 root video 212, 45 Dec 6 18:45 dvr0
crw-rw---- 1 root video 212, 46 Dec 6 18:45 frontend0

Also the helper application that is part of the kernel module is working without any issues:

# ./userhdhomerun
Fri Dec 6 18:45:42 2013 Num of devices = 1
Fri Dec 6 18:45:42 2013
Fri Dec 6 18:45:42 2013 Device 12202921 is type 1 and has 2 tuners
Fri Dec 6 18:45:42 2013
Fri Dec 6 18:45:42 2013 Name of device: 12202921-0
Fri Dec 6 18:45:42 2013 Tuner type set to "DVB-C" based on conf file
Fri Dec 6 18:45:42 2013 Tuner: 0
Fri Dec 6 18:45:42 2013 Set initial pass-all filter for tuner: 1
Fri Dec 6 18:45:42 2013
Fri Dec 6 18:45:42 2013 Name of device: 12202921-1
Fri Dec 6 18:45:42 2013 Tuner type set to "DVB-C" based on conf file
Fri Dec 6 18:45:42 2013 Tuner: 1
Fri Dec 6 18:45:42 2013 Set initial pass-all filter for tuner: 1
Fri Dec 6 18:45:42 2013
Fri Dec 6 18:45:42 2013 Registered tuner, id from kernel: 0 name: 12202921-0
Fri Dec 6 18:45:42 2013 Registered tuner, id from kernel: 1 name: 12202921-1
Fri Dec 6 18:46:31 2013 START FEED: Pid = 285
Fri Dec 6 18:46:31 2013 PidFilter: 0x285
Fri Dec 6 18:46:31 2013 hdhomerun_device_stream_start: 1
Fri Dec 6 18:46:31 2013 Open data device: /dev/hdhomerun_data0
Fri Dec 6 18:46:43 2013 STOP FEED: Pid = 285
Fri Dec 6 18:46:43 2013 Stop writing to dvr0
Fri Dec 6 18:46:43 2013 hdhomerun_device_stream_stop
Fri Dec 6 18:46:43 2013 hdhomerun_device_stream_stop, stopped
Fri Dec 6 18:46:43 2013 Network error count : 0
Fri Dec 6 18:46:43 2013 Overflow error count : 0
Fri Dec 6 18:46:43 2013 Transport error count : 0
Fri Dec 6 18:46:43 2013 Sequence error count : 0

Using dvbsnoop you can see that the tuner is working fine, however Enigma did not recognize the tuner (or rather the two new tuners). After a little research I found out that Enigma is not looking at /dev/dvb/, but rather reads /proc/bus/nim_sockets to list the tuners. Unfortunatenly my tuner is not in this list:

# cat /proc/bus/nim_sockets
NIM Socket 0:
Type: DVB-C
Name: Vuplus DVB-C NIM(CXD1978)
Mode 0: DVB-C
Mode 1: DVB-T
Frontend_Device: 0
I2C_Device: 2
NIM Socket 1:
Type: DVB-C
Name: Vuplus DVB-C NIM(CXD1978)
Mode 0: DVB-C
Mode 1: DVB-T
Frontend_Device: 1
I2C_Device: 3

I was trying to trick Enigma by pointing to a different file where I manually added my tuner, but that did not really work. Although I was able to see the tuner in the config dialogue (and I could see that it was working by checking the network traffic) Enigma did not show the video.

 

From what I read on the Internet this might be related to the vtuners in /dev/misc/ and maybe also the entries in /sys/class/dvb/, but I don't quite understand how these things are related.

 

Could anybody give me a hint how I can connect my dvb-device to Enigma?

 

Thanks a lot

Greetings

Hanjo