Giter VIP home page Giter VIP logo

dvbhdhomerun's Introduction

Debian package for the Silicon Dust HDHomeRun DVB driver written by Villy Thomsen.

I will be extending the driver to pass singal strength and symbol quality information from the hdhomerun library.

Only package sources are provided. You must build the DEB's yourself. It's not hard, but I highly recommend you read the Debian Maintainers build guide.

$ git clone https://github.com/h0tw1r3/dvbhdhomerun
$ cd dvbhdhomerun && dpkg-buildpackage -b
$ cd ..
$ dpkg -i <builtpackages>.deb

dvbhdhomerun's People

Contributors

bwalsh517 avatar h0tw1r3 avatar happyheyoka avatar pierre-quelin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dvbhdhomerun's Issues

OMV 0.5

This does not seem to work with OpenMediaVault 0.5

HDHomerun seems to loose signal, but in reality it doesn't

My HDHomerun (HDHDR3-EU, dual tuner) works fine for a little while after starting dvbhomerun-utils, and I can watch TV through tvheadend. However, after a while (anywhere from a few minutes to half an hour or so), the signal just seems to drop. Switching to another channel doesn't work, and tvheadend reports "no input detected". The moment this happens is clearly visible when running femon:

status SCVYL | signal  94% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status SCVYL | signal  94% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status SCVYL | signal  94% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status S     | signal   0% | snr   0% | ber 0 | unc 0 |
status S     | signal   0% | snr   0% | ber 0 | unc 0 |
status       | signal   0% | snr   0% | ber 0 | unc 0 |
status S     | signal   0% | snr   0% | ber 0 | unc 0 |

However, even after this, the QuickTV application for Windows provided by SolliconDust has no problem tuning into a channel, and will happily show me the program.

Also, restarting dvbhdhomerun-utils immediately resolves the problem, as shown again by femon:

status       | signal   0% | snr   0% | ber 0 | unc 0 |
status       | signal   0% | snr   0% | ber 0 | unc 0 |
status     L | signal  11% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status SCVYL | signal  94% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status SCVYL | signal  94% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status SCVYL | signal  94% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK

The dvbhdhomrun stderr log is empty, and the stdout log doesn't seem to have a telltale entry around the time the signal "drops".

Another weird thing I see is this kind of output from femon:

status SCVYL | signal   0% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status       | signal   0% | snr   0% | ber 0 | unc 0 |
status SCVYL | signal   0% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status       | signal   0% | snr   0% | ber 0 | unc 0 |
status SCVYL | signal   0% | snr   0% | ber 0 | unc 0 | FE_HAS_LOCK
status       | signal   0% | snr   0% | ber 0 | unc 0 |

Notice the alternating "FE_HAS_LOCK", and the signal at 0%. In this state, I can still watch TV without any problems. Not sure if this is related, but I'm just putting it out there under the premise "more data is better", when investigating a bug.

I realize this may not be the most appropriate place for this, but this is kind of my last-ditch attempt to figure this out, as I am out of tricks. I know you are not the original author of this driver, but it looks like the original project is kind of dead.

If there is anything I can to help debugging this issue (more/other logging), I'd be happy to do so.

error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]

Hi. I've used your software 2 or 3 years for my, now old, HDTC-2US to schedule recordings of ATSC programs with kaffeine, thanks. Last year, newer kernels in Mageia, ROSA, OpenMandriva, and any distro I tried all failed the kernel module build in what looks to me the same way.

The latest I have made to work is 4.6.7-nrj-desktop-1rosa-x86_64 on ROSA.
4.9.30-desktop-1.mga6 on my installation of MGA6 RC fails with the same message, below, as all the failures. I installed 4.4.68-tmb-desktop-1.mga5 along with the kernel-devel package and it works. That makes me believe it's something in the kernel, as none of the other software is changed.

I followed some advice here to add -wno-error=incompatible-pointer-types and that failed differently. Maybe I should attach that output as a text file, as there's more to it, in case it is of interest. Thanks.

`[rolf@z170i kernel]$ uname -r
4.9.30-desktop-1.mga6

[rolf@z170i kernel]$ make
Downloading kernel header dependencies...
######################################################################## 100.0%
######################################################################## 100.0%
######################################################################## 100.0%
make -C /lib/modules/uname -r/build M=/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel modules
make[1]: Entering directory '/usr/src/kernel-4.9.30-desktop-1.mga6'
CC [M] /home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_init.o
CC [M] /home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_data.o
CC [M] /home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_control.o
In file included from /home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_control.c:30:0:
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_control.c: In function ‘dvb_hdhomerun_control_init’:
./include/linux/kfifo.h:333:1: warning: ignoring return value of ‘__kfifo_int_must_check_helper’, declared with attribute warn_unused_result [-Wunused-result]
__kfifo_int_must_check_helper(
^
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_control.c:272:2: note: in expansion of macro ‘kfifo_alloc’
kfifo_alloc(&control_fifo_user, control_bufsize, GFP_KERNEL);
^
./include/linux/kfifo.h:333:1: warning: ignoring return value of ‘__kfifo_int_must_check_helper’, declared with attribute warn_unused_result [-Wunused-result]
__kfifo_int_must_check_helper(
^
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_control.c:282:2: note: in expansion of macro ‘kfifo_alloc’
kfifo_alloc(&control_fifo_kernel, control_bufsize, GFP_KERNEL);
^
LD [M] /home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun.o
CC [M] /home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.o
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.c:283:25: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.get_frontend = dvb_hdhomerun_fe_get_frontend,
^
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.c:283:25: note: (near initialization for ‘dvb_hdhomerun_fe_ofdm_ops.get_frontend’)
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.c:345:18: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.get_frontend = dvb_hdhomerun_fe_get_frontend,
^
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.c:345:18: note: (near initialization for ‘dvb_hdhomerun_fe_qam_ops.get_frontend’)
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.c:408:18: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.get_frontend = dvb_hdhomerun_fe_get_frontend,
^
/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.c:408:18: note: (near initialization for ‘dvb_hdhomerun_fe_atsc_ops.get_frontend’)
cc1: some warnings being treated as errors
scripts/Makefile.build:299: recipe for target '/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.o' failed
make[2]: *** [/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel/dvb_hdhomerun_fe.o] Error 1
Makefile:1483: recipe for target 'module/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel' failed
make[1]: *** [module/home/rolf/git/h0tw1r3-dvbhdhomerun/dvbhdhomerun/kernel] Error 2
make[1]: Leaving directory '/usr/src/kernel-4.9.30-desktop-1.mga6'
Makefile:27: recipe for target 'dvb_hdhomerun' failed
make: *** [dvb_hdhomerun] Error 2
[rolf@z170i kernel]$
`

20170603-modules-make-fail.txt

Complile Problem

I'm a real novice so I need some help on an Ubuntu 20.04 install. I figured out how to add all the dependencies that at first were not present. The build shows two problems:

[ 12%] Building CXX object CMakeFiles/userhdhomerun.dir/main.o
/home/russ/dvbhdhomerun/userhdhomerun/main.cpp: In function ‘int main(int, char**)’:
/home/russ/dvbhdhomerun/userhdhomerun/main.cpp:135:16: warning: ignoring return value of ‘int setgid(__gid_t)’, declared with attribute warn_unused_result [-Wunused-result]
135 | setgid(group->gr_gid);
| ~~~~~~^~~~~~~~~~~~~~~
/home/russ/dvbhdhomerun/userhdhomerun/main.cpp:143:16: warning: ignoring return value of ‘int setuid(__uid_t)’, declared with attribute warn_unused_result [-Wunused-result]
143 | setuid(passwd->pw_uid);

The second issue is:

[ 50%] Building CXX object CMakeFiles/userhdhomerun.dir/hdhomerun_controller.o
/home/russ/dvbhdhomerun/userhdhomerun/hdhomerun_controller.cpp: In constructor ‘HdhomerunController::HdhomerunController(int)’:
/home/russ/dvbhdhomerun/userhdhomerun/hdhomerun_controller.cpp:74:22: error: ‘hdhomerun_discover_find_devices_custom’ was not declared in this scope; did you mean ‘hdhomerun_discover_find_devices_custom_v3’?
74 | int numOfDevices = hdhomerun_discover_find_devices_custom(0, HDHOMERUN_DEVICE_TYPE_TUNER, HDHOMERUN_DEVICE_ID_WILDCARD, devices, m_maxDevices);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| hdhomerun_discover_find_devices_custom_v3
make[4]: *** [CMakeFiles/userhdhomerun.dir/build.make:102: CMakeFiles/userhdhomerun.dir/hdhomerun_controller.o] Error 1
make[4]: Leaving directory '/home/russ/dvbhdhomerun/userhdhomerun/build'
make[3]: *** [CMakeFiles/Makefile2:104: CMakeFiles/userhdhomerun.dir/all] Error 2
make[3]: Leaving directory '/home/russ/dvbhdhomerun/userhdhomerun/build'
make[2]: *** [Makefile:130: all] Error 2
make[2]: Leaving directory '/home/russ/dvbhdhomerun/userhdhomerun/build'
make[1]: *** [Makefile:32: all] Error 2
make[1]: Leaving directory '/home/russ/dvbhdhomerun/userhdhomerun'
make: *** [debian/rules:18: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

I tried going into the file in question and just adding "_v3" but that just led to a different error.

I have no idea how to address these problems. Any help would be appreciated.

Update to work on latest Sid release?

Hi

Thanks for this, will you do an update to make it work on current Debian Sid?

I tried and get an error, where it can't modprobe dvb_hdhomerun.

Kernel cannot add device

After getting your code to compile and load into my computer I noticed the dmesg had some errors in it. Seems to be a bad pointer somewhere in your code. I've attached my dmesg output, hopefully you know how to decipher it.

I did see that there is a failure early on

[   16.531894] DVB: registering new adapter (HDHomeRun)
[   16.531896] vmalloc: allocation failure: 18446743833813787648 bytes
[   16.531897] userhdhomerun: page allocation failure: order:0, mode:0xd2

I tried increasing my vmalloc in grub (not sure if it worked), but I didn't increase it by 18,446,743 terabytes either.

dmesg.txt

System Info:
Running in ESXi system
Fresh install of Ubuntu 15.04 x64

Steps to reproduce:

  1. Install Ubuntu
  2. Install compile tools
  3. Run dpkg-buildinstall -i

unable to get this to build on ubuntu 16.04

[ 50%] Building CXX object CMakeFiles/userhdhomerun.dir/hdhomerun_controller.o
/home/matt/dvbhdhomerun/userhdhomerun/hdhomerun_controller.cpp: In constructor ‘HdhomerunController::HdhomerunController(int)’:
/home/matt/dvbhdhomerun/userhdhomerun/hdhomerun_controller.cpp:74:144: error: ‘hdhomerun_discover_find_devices_custom’ was not declared in this scope
   int numOfDevices = hdhomerun_discover_find_devices_custom(0, HDHOMERUN_DEVICE_TYPE_TUNER, HDHOMERUN_DEVICE_ID_WILDCARD, devices, m_maxDevices);
                                                                                                                                                ^
CMakeFiles/userhdhomerun.dir/build.make:134: recipe for target 'CMakeFiles/userhdhomerun.dir/hdhomerun_controller.o' failed
make[4]: *** [CMakeFiles/userhdhomerun.dir/hdhomerun_controller.o] Error 1
make[4]: Leaving directory '/home/matt/dvbhdhomerun/userhdhomerun/build'
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/userhdhomerun.dir/all' failed
make[3]: *** [CMakeFiles/userhdhomerun.dir/all] Error 2
make[3]: Leaving directory '/home/matt/dvbhdhomerun/userhdhomerun/build'
Makefile:127: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/home/matt/dvbhdhomerun/userhdhomerun/build'
Makefile:32: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/matt/dvbhdhomerun/userhdhomerun'
debian/rules:17: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

Compile error

Tried your build instructions, got compile error. Looks non-obvious to fix.

/usr/bin/make -C build  all
make[2]: Entering directory '/root/src/dvbhdhomerun/userhdhomerun/build'
make[3]: Entering directory '/root/src/dvbhdhomerun/userhdhomerun/build'
make[4]: Entering directory '/root/src/dvbhdhomerun/userhdhomerun/build'
Scanning dependencies of target userhdhomerun
make[4]: Leaving directory '/root/src/dvbhdhomerun/userhdhomerun/build'
make[4]: Entering directory '/root/src/dvbhdhomerun/userhdhomerun/build'
[ 14%] Building CXX object CMakeFiles/userhdhomerun.dir/main.o
[ 28%] Building CXX object CMakeFiles/userhdhomerun.dir/conf_inifile.o
[ 42%] Building CXX object CMakeFiles/userhdhomerun.dir/hdhomerun_control.o
[ 57%] Building CXX object CMakeFiles/userhdhomerun.dir/hdhomerun_controller.o
/root/src/dvbhdhomerun/userhdhomerun/hdhomerun_controller.cpp: In constructor ‘HdhomerunController::HdhomerunController(int)’:
/root/src/dvbhdhomerun/userhdhomerun/hdhomerun_controller.cpp:74:144: error: ‘hdhomerun_discover_find_devices_custom’ was not declared in this scope
 devices_custom(0, HDHOMERUN_DEVICE_TYPE_TUNER, HDHOMERUN_DEVICE_ID_WILDCARD, devices, m_maxDevices);
                                                                                                   ^
CMakeFiles/userhdhomerun.dir/build.make:123: recipe for target 'CMakeFiles/userhdhomerun.dir/hdhomerun_controller.o' failed
make[4]: *** [CMakeFiles/userhdhomerun.dir/hdhomerun_controller.o] Error 1
make[4]: Leaving directory '/root/src/dvbhdhomerun/userhdhomerun/build'
CMakeFiles/Makefile2:91: recipe for target 'CMakeFiles/userhdhomerun.dir/all' failed
make[3]: *** [CMakeFiles/userhdhomerun.dir/all] Error 2
make[3]: Leaving directory '/root/src/dvbhdhomerun/userhdhomerun/build'
Makefile:116: recipe for target 'all' failed
make[2]: *** [all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.