How To Install Silicondust HDHomerun on Fedora 19

HDHomeRun is a TV tuner for computers – Ethernet attached. Once connected to your home router you can access the HDHomeRun Tuners from any computer, anywhere in your home. Watch / Record TV from anywhere you have a computer.First, you have to install some per-requisites to build the dvbhdhomerun drivers needed on Fedora.

$ sudo yum -y install asciidoc binutils-devel cmake elfutils-devel gcc-c++ hdhomerun hdhomerun-devel kernel-devel newt-devel python-devel perl-ExtUtils-Embed redhat-rpm-config rpm-build zlib-devel xmlto hmaccalc bison pciutils-devel audit-libs-devel pesign

Then, you should grab the source code from Download latest CVS from Next, run the following commands to download the kernel source and install it. Replace the kernel/linux directories and filenames to match the ones that you have. At this point become root.


# yumdownloader --source kernel
# rpm -ivh kernel-$(uname -r).src.rpm
# cd ~/rpmbuild
# rpmbuild -bp --target $(arch) --rmsource --rmspec SPECS/kernel.spec
# cd BUILD/kernel-3.9.fc19/linux-3.9.9-301.fc19.x86_64
# cp configs/kernel-3.9.9-x86_64.config .config

Now, in the directory that you are in,do a uname -a and copy the second dash to the end, then open the Makefile with vi or another editor and paste into the EXTRAVERSION line. My paste was “-301.fc19.x86_64″. Then do the next commands, changing the kernel to match your version.

make oldconfig
cp /usr/src/kernels/3.9.9-301.fc19.x86_64/Module.symvers .
make prepare scripts

Now, change back to the directory where you downloaded the dvbhdhomerun source package and run the following commands to unbundle it.

tar -xvzf dvbhdhomerun_0.0.15.tar.gz
cd dvbhdhomerun-0.0.15/kernel/

Then, edit the Makefile in that directory with vi or whatever you prefer and change the KERNEL_DIR line to ~/rpmbuild/BUILD/kernel-3.9.fc19/linux-3.9.9-301.fc19.x86_64/ changing the kernel and linux versions to match your systems. Then run this to get to the next directory you need.

cd ../userhdhomerun/

Then edit CMakeLists.txt with vi or whatever and change SET(LIBHDHOMERUN_PATH /usr/lib/libhdhomerun) to SET(LIBHDHOMERUN_PATH /usr/include/hdhomerun)

Now, do the following to compile everything.

cd ../kernel/ && make && make install
cp ../debian/dvbhdhomerun-utils.udev /etc/udev/rules.d/
systemctl restart systemd-udevd.service
modprobe dvb_hdhomerun
cd ../userhdhomerun/
make run

After the last command, you should see some lines you can CTRL+C to stop this. Run the next line to install it.

make install

That should have all you need to get going. You will need whatever user you want to run the service as to be a member of the video group. You can start the daemon with the command line if you have a mythtv user or as root if you are not running MythTV. The syntax is:

/usr/local/bin/userhdhomerun -f -u mythtv 
/usr/local/bin/userhdhomerun -f -u root

Next we want to load the module at start., in /etc/sysconfig/modules/ create a file called hdhomerun.modules with the following content.

exec /sbin/modprobe dvb_hdhomerun >/dev/null 2>&1

Save the file and set the permissions to 755. This will load the module at reboot. After rebooting you can verify the modules are loaded by executing

$ lsmod | grep dvb_hdhomerun
dvb_hdhomerun 20053 0
dvb_hdhomerun_core 14646 1 dvb_hdhomerun
dvb_core 114934 1 dvb_hdhomerun

Next we need to do a little work with firewalld to allow the system to see the HDHomerun device.

If you have firewalld running you have to to stop and disable it or make a port exception for UDP 65001.

$ sudo sudo systemctl stop firewalld.service

To disable the service

$ sudo sudo systemctl disable firewalld.service

If you want to add the port run the following commands, with the firewalls service still running.

$ sudo firewall-cmd --permanent --zone public --add-port=65001/udp
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-all

Now that we have it installed we need to run discovery and then configuration. Running the hdhomerun_config command without any parameters will give you the usage.

 $ sudo /usr/bin/hdhomerun_config
hdhomerun_config discover
hdhomerun_config <id> get help
hdhomerun_config <id> get <item>
hdhomerun_config <id> set <item> <value>
hdhomerun_config <id> scan <tuner> [<filename>]
hdhomerun_config <id> save <tuner> <filename>
hdhomerun_config <id> upgrade <filename>
$ sudo hdhomerun_config discover
hdhomerun device 10329610 found at


Now we have the device id, in this case 10329610. Let’s set the channel map


$ sudo hdhomerun_config 10329610 set /tuner0/channelmap us-cable


Run a channel scan

$ sudo hdhomerun_config 10329610 scan /tuner0 scan.txt

Check the signal strength using the following command:

hdhomerun_config 10329610 get /tuner0/status
Viewing Programs Using Kaffeine

Kaffeine is a KDE TV viewing program. It is in the normal Fedora repositories. First we need to install it and enable the rpmfusion repositories if they are not already on your system.

$ sudo yum -y install kaffeine xine-lib xine-lib-extras-freeworld xine-ui

Next open Kaffeine and click on the Television > Channels > Start Scan. After the scan is completed select the stations you want from the discovery and click Add Selected and click OK. You can now click on the stations and watch TV.

One Response to “How To Install Silicondust HDHomerun on Fedora 19”

  1. Vijay Venkatram says:

    Thanks for the great Tutorial, 1 Question how to do you get Kaffeine to work with HDHomerun network setup. the devices option is not there. only by inserting Hauppauge tv usb stick the option of devices appear.

    The option to scan channels is greyed out.

    I have US Cable with Comcast.

    Too bad i could not get Kaffeine to work, any idea how i can get it to work ? any help would be greatly appreciated.


Leave a Reply

Your email address will not be published. Required fields are marked *