VC-4: RHEL 8

The last time I wrote about VC-4, it was still based on Ubuntu 16.04. Crestron released an update around December 2020 that switched to Red Hat Enterprise Linux (RHEL) 8. I cut my teeth on Red Hat Linux 5, and once we had faster DSL Internet at home, I tried out a number of other Linux distros like Slackware, Debian, Gentoo, and finally Ubuntu. CentOS is a freely available version of RHEL, and the VC-4 installer claims to support either. So, in late December I decided I would create a new CentOS VM and try out the new version of VC-4.

It did not go well. The VC-4 install script checks for very specific package versions when installing and it kept failing. I went through the script and dumbed it down to simply install the latest version of each required package. This got through the installer but when I restarted the VM, the VC-4 services wouldn’t start correctly. It seemed to be some type of permissions problem communicating with Redis. The web UI would let you browse around, but trying to load programs or make configuration changes would fail.

I rebuilt the VM but this time installed all the pre-reqs manually, removed the version checks from the installer script, and let it run the parts where it sets up the database and register its own services. Better, but still failing to load and run programs. Deciding that I’d wasted enough time, I shelved the project for a bit and decided I would return again once Crestron released a new version of VC-4.

CentOS is EOL

Maybe a month or two later, I saw on Hacker News that Red Hat wasn’t going to support CentOS 8 beyond 2021. Poor Crestron. It seemed like they picked a stable OS, but the rug was pulled out from under them. Of course, any serious deployment of VC-4 would probably use RHEL with a support contract, but I wasn’t going to shell out for one of those just to experiment with VC-4. The Internet was buzzing with CentOS alternatives.

While Red Hat is killing off the standalone CentOS 8, something called CentOS Stream will continue to be available. It sounds like it’s a development branch of RHEL, so things might break more often than before. But they’re also making RHEL easier for developers to evaluate. Since signing up as a developer is free, I went that route. In a few short minutes, I was downloading an actual copy of RHEL 8 to test with:

Aside from the branded wallpapers, it feels no different than using CentOS. But best of all, running the Crestron VC-4 install script just works without any modification!

VC-4 2.4557.00043

Unfortunately, I don’t have the old Ubuntu-based VC-4 installed anymore. I wiped out the old VM once I had the new one up and running, so I can’t do a true comparison between the two. The RHEL-based VC-4 feels like it runs better than the older Ubuntu-based version, though. Navigating the web UI is pretty responsive and the system seems to boot up much faster. I did opt to give the VM 4GB of RAM this time around (pretty sure that’s what the Ubuntu VM had) but only access to 2 processor cores. The VM is also running a full Gnome environment which I’d like to kill off since it isn’t needed.

One of the problems developing VC-4 programs is that getting access to a console log is very different from running on a control system. If I want to run a simple test and spit something out to the console, it goes nowhere (well, /dev/null most likely). I could print something to the system error log (as we’ve done in the past), and there are ways to grep for Virtual Control messages:

# journalctl -u virtualcontrol.service -f

This prints out diagnostic messages from the VC-4 software as well. I don’t want to clutter up the system logs with my debugging messages, I wish there was a better way…

Next Time

In the next post, I’ll create a web-based console to use for debugging. Stay tuned!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s