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
-
AlmaLinux OS Kitten 10 Gives Power Users a Sneak Preview
If you're looking to kick the tires of AlmaLinux's upstream version, the developers have a purrfect solution.
-
Gnome 47.1 Released with a Few Fixes
The latest release of the Gnome desktop is all about fixing a few nagging issues and not about bringing new features into the mix.
-
System76 Unveils an Ampere-Powered Thelio Desktop
If you're looking for a new desktop system for developing autonomous driving and software-defined vehicle solutions. System76 has you covered.
-
VirtualBox 7.1.4 Includes Initial Support for Linux kernel 6.12
The latest version of VirtualBox has arrived and it not only adds initial support for kernel 6.12 but another feature that will make using the virtual machine tool much easier.
-
New Slimbook EVO with Raw AMD Ryzen Power
If you're looking for serious power in a 14" ultrabook that is powered by Linux, Slimbook has just the thing for you.
-
The Gnome Foundation Struggling to Stay Afloat
The foundation behind the Gnome desktop environment is having to go through some serious belt-tightening due to continued financial problems.
-
Thousands of Linux Servers Infected with Stealth Malware Since 2021
Perfctl is capable of remaining undetected, which makes it dangerous and hard to mitigate.
-
Halcyon Creates Anti-Ransomware Protection for Linux
As more Linux systems are targeted by ransomware, Halcyon is stepping up its protection.
-
Valve and Arch Linux Announce Collaboration
Valve and Arch have come together for two projects that will have a serious impact on the Linux distribution.
-
Hacker Successfully Runs Linux on a CPU from the Early ‘70s
From the office of "Look what I can do," Dmitry Grinberg was able to get Linux running on a processor that was created in 1971.