Ubuntu 16.04, tvheadend and SiliconDust HDHomeRun

Decided I would compile Tvheadend again and install it on a Ubuntu 16.04 host. Below is some of my notes that will help others with this installation and problems I hit along the way.

Required packages.

apt-get install unzip libcurl4-openssl-dev pkg-config git build-essential dvb-apps gettext libssl-dev cmake liburiparser-dev libavahi-client-dev
apt-get install hdhomerun-config

Installation/Compiling steps.

wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz
tar zxvf libiconv-1.15.tar.gz
cd libiconv/
make install

I created a user called “tvh” which will be used for the running of the software, this way it doesn’t run as root. Plenty of guides about that detail how to create your user and associated correct group assignments to it. So I won’t cover these steps/operations.

Noticed when I executed the product post being compiled i was getting an error.

tvh@oscar:/usr/local/bin$ ./tvheadend
./tvheadend: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

As you can see from the output below, it’s a library issue.

tvh@oscar:/usr/local/bin$ ldd tvheadend
        linux-vdso.so.1 =>  (0x00007fff1d1e6000)
        libdvben50221.so => /usr/lib/libdvben50221.so (0x00007f3545385000)
        libdvbapi.so => /usr/lib/libdvbapi.so (0x00007f3545180000)
        libucsi.so => /usr/lib/libucsi.so (0x00007f3544f69000)
        libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f3544d00000)
        libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f35448bc000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f35446a1000)
        liburiparser.so.1 => /usr/lib/x86_64-linux-gnu/liburiparser.so.1 (0x00007f3544486000)
        libavahi-common.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-common.so.3 (0x00007f354427a000)
        libavahi-client.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-client.so.3 (0x00007f3544068000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f3543e1c000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3543c18000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f35439fa000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f35436f1000)
        libiconv.so.2 => not found
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f35434e8000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3543166000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3542d9d000)
        libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f3542d17000)
        /lib64/ld-linux-x86-64.so.2 (0x00005642bf9af000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3542b01000)
        libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f35428de000)
        liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f35426bc000)
        libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f35423db000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f354216a000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f3541f56000)

Perform the following steps to address it.

cd /usr/lib/x86_64-linux-gnu
ln -s /usr/local/lib/libiconv.so.2.6.0 libiconv.so.2.6.0
ln -s /usr/local/lib/libiconv.so.2 libiconv.so.2
ln -s /usr/local/lib/libiconv.so libiconv.so

It would appear that Tvheadend has had some improvements since the last time I compiled and installed it.

As shown below we now see a new logo for the product, and now get a wizard which helps with the setup.

Tvheadend is such a great application.