VC-4: Part 0

I started to write a series of posts about programming on Crestron’s VC-4 platform, but realized I should probably back up and document how I got my VC-4 instance running.

The first thing I did was create a new virtual machine in VirtualBox:

I wasn’t sure about memory requirements, but figured 4GB should be OK. I’m only going to leave it running while I’m messing around with it anyway:

And I’ll create a new 20GB hard drive image since that should be plenty for this purpose:

After creating the new virtual machine, I check the system settings to make sure everything looks good. Only change I’d like to make is bump up the processor count to 2:

When we start the VM for the first time, it asks for a start-up disk. Crestron’s instructions say you should use Ubuntu 16.04, but I didn’t have that handy, so I’m going to try Debian 10.3.0 and see if that works:

I’m not going to show every slide of the Debian installer, but I do want to make sure our hostname is set to vc-4:

After a few minutes, we have a bright shiny new Debian system ready to use:

I did mess up one thing during setting up this VM, I want to change the network adapter to Bridge mode so I can hit it from my computer:

Now I can PuTTY into my VC-4 instance instead of using the console window:

I need to copy the VC-4 software package to my instance and install it. This is covered in the VC-4 installation guide. Then I try # apt install virtualcontrol to see what happens:

Uh oh! Looks like I need to add i386 architecture support to get the right packages. Use # dpkg --add-architecture i386 then # apt update to get everything in order. Now we should be able to install everything we need for Virtual Control:

I just accept defaults at all the prompts. Once the installation is finished, browse to the URL of your server http://ipaddress/VirtualControl/config/settings/:

It works! If this were a real server, we’d want to lock down access to it by requiring authentication. This is covered in the Debian Apache Hardening guide.

After a fresh install, this server is using 4GB of disk space and 220MB of RAM. So if I were building this test machine again, I’d probably scale down to 8GB of hard disk space and 2GB of RAM. Comparing this to the specs for the recently released MC4, that device only has 1GB of RAM and 8GB of Flash storage. So it’s probably safe to scale back on our resource limits, but I’ll leave things where they are for these posts.

Update: So while the web UI loaded OK, the virtualcontrol service dies on startup so you can’t do a whole lot in the web UI. It looks like this is because some of the apps (like /opt/crestron/virtualcontrol/CrestronApps/bin/AppWatchdog) are linked against libssl.so.1.0.0 and Debian 10 ships with libssl.so.1.1.0. I downloaded the correct package from https://packages.debian.org/jessie/i386/libssl1.0.0/download and was able to install it side-by-side with libssl1.1.0.

Update: Even after installing libssl1.0.0, AppWatchdog still doesn’t want to start correctly. It fails to connect to the Redis datastore. It almost looks like it isn’t getting the environment variable for CRESTRON_HOME. Not sure why that is, and I can’t dig into the source of AppWatchdog to see why it’s failing. Guess I’ll have to switch over to Ubuntu 16.04 after all.

Leave a Reply

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

WordPress.com Logo

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

Facebook photo

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

Connecting to %s