zelikos / davincibox

Container for DaVinci Resolve installation and runtime dependencies on Linux
Apache License 2.0
104 stars 6 forks source link

davincibox

This project aims to provide a ready-to-go container with all of the needed dependencies to install and run DaVinci Resolve on Linux, based on information compiled by bluesabre in his GitHub Gist. This is primarily intended for users of image-based systems such as Fedora Silverblue, but can be used on any Linux distro that distrobox is available on.

Disclaimers

GPU Support

My own testing for davincibox has exclusively been with an AMD RX 6600XT GPU. However, other users have contributed test results here: #21

DaVinci Resolve Studio

Davincibox has had limited testing with DaVinci Resolve Studio. Use at your own risk. See #26

Codecs

DaVinci Resolve on Linux, especially the free version, has limited codec support. Unless you can show that certain codecs are available when using DaVinci Resolve outside of davincibox, but not when using davincibox, do not report issues about missing codecs here.

Running from the CLI

If you need to run davincibox from the CLI instead of using a desktop shortcut, you'll need to use the run-davinci script in davincibox, as it contains necessary workarounds for DaVinci Resolve to work in the container's Fedora Linux environment.

Requirements & GPU Information

You will need Podman, as well as distrobox or toolbox.

You will also need the latest release of DaVinci Resolve from Blackmagic's website.

If you're less comfortable in the CLI, I recommend using the setup.sh script from this repository to help simplify the setup process, but ultimately use of the CLI is a requirement.

AMD

AMD uses Mesa's rusticl for OpenCL support in DaVinci Resolve, due various issues with AMD's official option, ROCm. These issues largely stem from the fact that GPU support in ROCm is very limited.

ROCm does remain available as a fallback option:

If ROCm does work better for you and you would like to launch Resolve with ROCm automatically, you can also adjust the DaVinciResolve.desktop file in $HOME/.local/share/applications. Add rocm to the end of the Exec= line, before %u. e.g. Exec=/usr/bin/toolbox run -c davincibox /usr/bin/run-davinci rocm %u

Intel

For Intel GPUs, the intel-compute-runtime package is included and used by default.

rusticl is available to test as an alternative for Intel users. Similar to running ROCm for AMD as shown above, you can use run-davinci rusticl in the container to use rusticl instead of the intel-compute-runtime:

NVIDIA

NVIDIA users will need to install the nvidia-container-toolkit on their host OS. If you are using a Universal Blue image such as Bluefin, this will already be installed. Otherwise, see NVIDIA's installation guide for instructions for your distribution.

Setup

CLI:

Open a terminal, then run chmod +x /path/to/setup.sh

Then, /path/to/setup.sh /path/to/DaVinci_Resolve_versionnumber_Linux.run

GUI:

If you're more comfortable in a GUI:

If you're using GNOME, open Files and navigate to where you downloaded the script to. In the example below, the script is in the same folder that I extracted the DaVinci Resolve download to. I recommend you do the same for ease of use, as the rest of the instructions will assume you have done so.

Right-click, and select Properties.

Then, make sure "Executable as Program" is toggled on.

Right-click on an empty spot in the folder. You should see either "Open in Console" as in the screenshot, or "Open in Terminal." Either will be fine.

In the newly-opened terminal window, enter the command below. Replace 'version' with the version of DaVinci Resolve that you are installing (see screenshot for example):

./setup.sh ./DaVinci_Resolve_version_Linux.run

Then, follow any further prompts in the installation script.

Manual

First, get davincibox set up.

Distrobox:

Nvidia users only, append the --nvidia argument to the below command.

distrobox create -i ghcr.io/zelikos/davincibox:latest -n davincibox

Toolbox:

toolbox create -i ghcr.io/zelikos/davincibox:latest -c davincibox

On the host, run --appimage-extract on your DaVinci Resolve installer

/path/to/DaVinci_Resolve_version_Linux.run --appimage-extract

Then, run setup-davinci squashfs-root/AppRun distrobox/toolbox from within the container

e.g.

Distrobox:

distrobox enter davincibox -- setup-davinci squashfs-root/AppRun distrobox

Toolbox:

toolbox run --container davincibox setup-davinci squashfs-root/AppRun toolbox

The suffix at the end is for the add-davinci-launcher script. If omitted, setup will still run, but adding the launcher to your application menu won't work.

You can still run add-davinci-launcher separately, as either add-davinci-launcher distrobox or add-davinci-launcher toolbox, depending on what you're using.

After installation completes, you can remove the squashfs-root directory.

After setup, run sudo dnf update in the container to ensure drivers are up to date:

# Distrobox
distrobox enter davincibox -- sudo dnf update

# Toolbox
toolbox run -c davincibox sudo dnf update

Upgrading

Upgrading requires re-creating the davincibox container with the newest version of the image.

If a new version of davincibox is available and you want to upgrade, you can do so manually or with setup.sh.

setup.sh

Run setup.sh upgrade, then follow the installation steps above.

Manual

First, run podman image pull ghcr.io/zelikos/davincibox:latest

Then, follow the Uninstallation section below and go through manual setup again.

Uninstallation

Run ./setup.sh remove, or

Distrobox:

# If you are upgrading, you can avoid this line
distrobox enter davincibox -- add-davinci-launcher remove

distrobox stop davincibox
distrobox rm davincibox

Toolbox:

# If you are upgrading, you can avoid this line
toolbox run --container davincibox add-davinci-launcher remove

podman container stop davincibox
toolbox rm davincibox

Credits

Sean Davis, AKA bluesabre

Jorge Castro and Universal Blue