MythTV Frontend Saga
by Russ Knize on Mar.26, 2025, under Computing, Linux
I’ve been using MythTV for more than two decades now. I have separate front and back ends, as I’ve always had some sort of server running in the basement that is on all the time. Our first front end was an original Xbox with a Cromwell BIOS running Xebian. It was just powerful enough to do the job at standard definition and we already had the DVD remote accessory, so it was the perfect choice. The Xebian project was eventually abandoned and despite my efforts to keep Debian on the Xbox going, software bloat made the experience rather sluggish. A VIA EPIA M10000 Mini-ITX system took its place in our living room, while the Xbox moved into our bedroom. We used the EPIA for many years until the capacitors started to fail.
At this point, we had our first HDTV in our basement: a Sony Wega KD-34XBR960 (what an epic boat-anchor of a CRT that was). I was using an ASUS A8N-VM based PC for the front end so that we could watch HD videos and I wanted something to replace the EPIA system that could at least decode HD on our living room SD TV without issue. nVidia, with their ION 2 chipset, was the only show in town with efficient, hardware-accelerated H.264 decoding on Linux that MythTV also natively supported. I picked up an ASUS AT3IONT-I Deluxe and built a new front end around it. The CPU is quite modest (Intel Atom 330), but this board is all about the integrated GPU and nvdec support. It worked fantastically and as a bonus the “Deluxe” version came with a remote that sort-of worked (remote controls and MythTV are a whole other thing).
Eventually it came time to retire the old Xbox and turn it back into a game console: it was getting unusably sluggish and there was no hope of watching any HD programming on it (even though the TV was SD). I wanted to get another identical ION based board, so I picked up an ASUS AT5IONT-I Deluxe. It had a noticeably faster CPU (Intel Atom D550), but was otherwise pretty similar. We used these as our main front ends for many years.
Then came the troubles: nVidia started obsoleting their older drivers and the GPUs on these ION boards were not supported by any of the newer drivers. I managed to limp things along for a few more Debian OS upgrades until it was no longer possible to shoe-horn the required, ancient binary drivers into modern X servers. The open-source nouveau drivers were and still are pretty terrible and did not seem to support the decoder blocks at all. The only way to keep using these old systems was to freeze the OS versions. This only worked to a point, as it became difficult to support newer versions of MythTV on older version of Debian without doing custom builds…which I grew tired of. I ran into the same problem on some of my older laptops and other machines with nVidia GPUs as well. I will not be buying any new nVidia-based hardware for the foreseeable future, as I like to reuse old hardware for other purposes. nVidia has decided to make that impossible by keeping even their most obsolete hardware closed.
Then there was the issue of HEVC. The hardware decoder blocks on these boards were several generations too old to have any support for H.265 decoding and the CPUs were far too modest to handle software decode. My only choice is to avoid HEVC files entirely, but that is getting more and more difficult. H.265 is a far superior codec for dealing with HD and especially 4k, so it is kind of silly to try to keep dancing around the problem.
Finally there is the issue of power. Running all these machines is neither cheap nor wise. I should be using something more efficient that preferably shuts-down when the TV is off.
The obvious choice is the Raspberry Pi. I have been exploring this on and off for at least a decade. I bought a first-generation one when it first came out in 2012. It is a fun little toy that I used on a few little projects, but it didn’t occur to me to try to use it as a MythTV front end. It seemed far too modest. I felt the same about the second-generation as well, though it turned out that with the right build options it could be made to work. While the Broadcom SoC is very capable, the issue has always been software support of the hardware acceleration blocks in Linux. Various licensing issues get in the way of a clean implementation. I did give it a shot with a Raspberry Pi 3, but I was not terribly impressed with it’s performance even after jumping through the necessary hoops to get everything to work. My ION-based machines seemed to work better overall. I was never able to get enough performance to support H.265 decoding on the CPU, so I abandoned it.
Then came the Raspberry Pi 4. It seemed like it was going to be the hot ticket, but I was too late to the party. The post-COVID supply chain crunch made buying any Raspberry Pi a total nightmare. I tried for a long time to get one through legitimate channels, but eventually had to give up. I wasn’t going to spend flipper dollars on eBay for one. Eventually, one of my back-orders got fulfilled and an RP4 turned up in the mail. I got busy with other things and forgot about it, so it sat on a shelf for a long time until….