The more we know the harder it is to defeat us!

Some time ago, I have published a post about creating a Pan Tilt camera using UV4L library on a Raspberry Pi. It works really well. The camera position can be adjusted via a web interface while providing a live stream. It seems like a nice little thing. However, after upgrade of my Raspberry Pi from Debian Stretch to Debian Buster it broke down. The live stream is no longer available through UV4L on Debian Buster. Here is how to fix it!

The problem with UV4L is related to the SSL library. In Debian Buster it has changed a bit and now it does not work as expected. The solution to this problem was based on the post UV4L on raspbian buster.

First of all, the problem has to be identified. For this status of UV4L raspicam daemon needs to be checked. This can be done with following command

Above command will return something similar to

Immediately, you can see that there is something wrong since it returns failed status. Also, if you start analysing the output it can be seen that there is a problem with SSL library. Fixing this will fix the problem of running UV4L with Debian Buster on Raspberry Pi. Editing service script will solve this. Run following to edit the uv4l_raspicam.service file.

Original file looks like this

After modification it should look like the one below

As it can be easily noticed, an additional line

was added. It sets environmental variable for the configuration file of the OpenSSL. The tricky part is the file itself. If you try to copy current (Raspbian Buster) configuration file of OpenSSL to /etc/uv4l from /etc/ssl you will find soon enough that it does not solve the problem. This is because the file has changed and it differs from the one available on Debian Stretch. Following file is a copy of an original /etc/ssl/openssl.cnf from Debian Stretch. This will work on Raspberry Pi running Debian Buster. The file can be found here, just remember to rename it to openssl.cnf

After downloading the file rename it to openssl.cnf and copy it to your RPi with scp. Place it in /etc/uv4l. Now, reload systemctl daemon

Restart UV4L raspicam server

Check status of the server

Now, you should be able to see that everything went well

That’s all! You should have UV4L server working once again! Probably with an another release of the UV4L software it will be fixed but for now (as of the date of writing this article) the official release of UV4L working under Debian Buster for Raspberry Pi is unfortunately unavailable. You can always check the UV4L package site for new releases.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.