RAW development with Vulkan darktable
Getting Started
There are already precompiled binary packages of vkdt for most common distributions, and you can easily set them up using your Linux version's package manager. However, for Ubuntu 20.04, Linux Mint 20.x, and Arch Linux (plus its derivatives such as Manjaro), you still have to compile the program.
The following tutorial is therefore divided into several sections: First I will look into installing or compiling vkdt, before moving on to describe how to set up color management and introduce the main editing tools. Finally, I will look into configuring the graph and creating camera profiles for the noise reduction filter.
OBS Repository
The vkdt developer provides packages for many common distributions via the Open Build Service (OBS). But you first need to install the driver for your graphics card, including the Vulkan components. Open source drivers are usually installed automatically when you set up the operating system. However, you often have to install the proprietary driver retroactively for NVIDIA cards. In most cases, the Vulkan driver files come on the disc along with the driver, but sometimes you have to add individual packages.
Next you call the OBS repository page [13] for vkdt in the web browser and click on the icon for the operating system you are using. Two links will then appear lower down. Use the first, Grab repository and install manually, to add the repository to the system's software sources. This is the recommended approach so that you can update vkdt easily later on. Lower down on the page, you will now see instructions on how to add the repository to the package sources and install vkdt. Open a terminal window, copy the four command lines from the OBS repository page one after the other, paste them in the terminal, and press the Enter key each time to confirm that you want to run the commands.
Alternatively, you can download an installation package directly. To do this, click Grab binary packages directly and then click on the operating system version you are using. In the download dialog that opens, select Save file and click OK. The package usually ends up in the ~/Downloads/
folder. Open a terminal, change to this directory, and type ls -l
to display its content. The name of the vkdt package always starts with vkdt_
, but the rest changes depending on when it was created and on the package format.
Listing 1 shows the command for installing from the filesystem on a system with Debian package management. Apt checks all dependencies and adds them if necessary. However, the vkdt developer tries to keep the number of dependencies as low as possible. You may find out that Apt does not display many dependencies, or none at all, and instead just installs vkdt.
Listing 1
Installing the vkdt Package
$ sudo apt install ./vkdt_0~git1637146454.a12c186-0_amd64.deb
Compiling vkdt
Basically, compiling vkdt does not cause any major worries. The list of dependencies on GitHub is sort of complete but often does not give you the exact package name. And the name may not be easy to locate. This is why I compiled the program on Ubuntu 20.04 and on Manjaro and tried to put together more accurate and complete dependency lists (Listing 2 and Listing 3). For Ubuntu 20.04 and systems based on it, you need to install the Vulkan SDK from LunarG [14] first. The Vulkan version in the Ubuntu repository is outdated.
Listing 2
Ubuntu Dependencies
$ sudo apt install libvulkan-dev glslang-tools glslang-dev libglfw3 libglfw3-dev libimgui-dev libpugixml-dev libpugixml1v5 libstdc6++ libstdc++-10-dev libstdc++-9-dev libjpeg-turbo-progs libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev zlib1g zlib1g-dev libjpeg-dev libomp-10-dev libomp5-10 libomp-dev make pkg-config clang libclang-dev rsync cmake libexiv2-dev libexiv2-27
Listing 3
Arch Linux and Manjaro Dependencies
$ sudo pacman -S vulkan-headers glslang glfw-x11 pugixml libstdc++5 zlib libjpeg-turbo openmp make pkgconf clang rsync cmake exiv2
After setting up the dependencies, download the vkdt source code from GitHub. You may need to install git
first for this. Then open a terminal window and enter the commands from Listing 4. git
will then create a directory vkdt/
and copy the source code of the program into it. Change to the folder and then load the submodules (Listing 4, lines 3 and 4).
Listing 4
Downloading the Source Code
01 $ git clone https://github.com/hanatos/vkdt.git --recursive 02 $ cd vdkt 03 $ git submodule init 04 $ git submodule update
Be sure to compile vkdt with Exiv2 support. The software will only recognize the orientation of the photos after you've done so (and be able to create camera profiles for the noise reduction filter). To do this, create a config.mk
file in vkdt/bin/
. Open config.mk.defaults
, which is in the same directory, copy its contents, and paste it into config.mk
. Now, find the lines # vkdt_USE_EXIV2=1
and # export vkdt_USE_EXIV2
in config.mk
. Uncomment both by removing the hashtag at the start of the line, and then save config.mk
.
Then change to the vkdt/bin/
directory and compile the program by calling make
. Compiling will take a few minutes even on fast hardware. If all goes well, you will end up with several new files and subdirectories in /vkdt/bin/
, including the vkdt
program file. Last but not least, add the vkdt/bin/
path to the PATH
variable in your .bashrc
to be able to conveniently start the program from anywhere without specifying the path.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Budgie 10.10 Scheduled for Q1 2025 with a Surprising Desktop Update
If Budgie is your desktop environment of choice, 2025 is going to be a great year for you.
-
Firefox 134 Offers Improvements for Linux Version
Fans of Linux and Firefox rejoice, as there's a new version available that includes some handy updates.
-
Serpent OS Arrives with a New Alpha Release
After months of silence, Ikey Doherty has released a new alpha for his Serpent OS.
-
HashiCorp Cofounder Unveils Ghostty, a Linux Terminal App
Ghostty is a new Linux terminal app that's fast, feature-rich, and offers a platform-native GUI while remaining cross-platform.
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.