Context
I have a set-top-box Octagon SF4008, which is designed to run OpenEmbedded-based Linux distributions. I currently have openATV installed on it.
Typically, users want to connect the video output of such set-top-boxes to a display and then they want to watch the channels via a front-end GUI like Enigma2.
My use case is different. I would like to stream the channels over the computer network. I could use Enigma2 for that, but I consider Tvheadend to be more user-friendly and more feature-rich.
Question
I would like to run Tvheadend directly on the set-top-box and I am looking for a simple way to install it there.
Options
The package manager used by openATV is opkg. The preconfigured repositories contain many Enigma2-specific packages, but only very few generic ones like perl
, python
, vim
and similar. There is no Tvheadend package in there, nor in any other opkg-compatible repository for the compatible architecture (armv7l/armhf) that I am aware of.
The preconfigured repositories contain no build tools like make
, no compilers and no development versions of the basic libraries. So, compiling Tvheadend directly on the set-top-box would require quite a complex setup. It is definitely possible and perhaps easier to cross-compile it elsewhere. However, I would prefer to use precompiled binaries.
I know that Tvheadend provides APT repositories with Debian packages for the compatible armhf
architecture. I also found out that opkg can handle installing .deb files. However, because of the runtime dependencies, foreign packages would only work properly when all of their native dependencies are installed as well.
Perhaps I could install Debian on the set-top-box directly. There is a flashing procedure which includes rewriting the kernel image and then extracting an archive of the root file system. I am not familiar with the bootloader and I do not know whether or how it needs to be modified in order to properly boot a standard Linux kernel. Moreover, the custom hardware drivers may at first need to be extracted from the currently running Linux kernel.
Problem
The above mentioned options may all work, but I consider them to be unnecessarily complex. I believe that there should be a simpler way. Perhaps the already mentioned options can be simplified. Or maybe there is a much simpler way of which I am just not aware.