DeckLink Quad HDMI Recorder not recognized on Linux

Do you have questions about Desktop Video, Converters, Routers and Monitoring?
  • Author
  • Message
Offline

hyunbin_yoo

  • Posts: 1
  • Joined: Tue May 27, 2025 7:01 am
  • Real Name: Hyunbin Yoo

DeckLink Quad HDMI Recorder not recognized on Linux

PostTue May 27, 2025 7:30 am

Hello. I recently purchased a Blackmagic DeckLink Quad HDMI Recorder. I successfully installed it on my PC. I downloaded the latest Desktop Video for Windows (14.5) and Linux (14.4.1), adding the relevant drivers to each system.

OBS detected the device on the first run, but after a reboot it no longer detects the capture card on Linux. I ran a few diagnostic commands but I have no idea what is wrong since the system does detect the card and the output indicates that the module is inserted and the firmware is up to date.

On a separate note, is Blackmagic planning to phase out Linux support? I am a little concerned that the latest release of Desktop Video does not include a Linux version.

Code: Select all
> lspci | grep Blackmagic
05:00.0 Multimedia video controller: Blackmagic Design DeckLink Quad HDMI Recorder

> lsmod | grep blackmagic
blackmagic_io        2420736  4

> dkms status -m blackmagic-io -k `uname -r`
blackmagic-io/14.4.1a4, 6.14.7-arch2-1, x86_64: installed

> obs
debug: Found portal inhibitor
debug: Attempted path: /usr/bin/../share/obs/obs-studio/locale/en-US.ini
debug: Attempted path: /usr/bin/../share/obs/obs-studio/locale.ini
debug: Attempted path: /usr/bin/../share/obs/obs-studio/themes
debug: Attempted path: /usr/bin/../share/obs/obs-studio/themes/
info: Platform: Wayland
...
info: Kernel Version: Linux 6.14.7-arch2-1
info: Distribution: "Arch Linux" Unknown
info: Desktop Environment: GNOME (gnome)
info: Session Type: wayland
info: Qt Version: 6.9.0 (runtime), 6.9.0 (compiled)
info: Portable mode: false
info: OBS 31.0.3 (linux)
info: ---------------------------------
info: ---------------------------------
...
info: ---------------------------------
info: Initializing OpenGL...
info: Using EGL/Wayland
info: Initialized EGL 1.5
info: Loading up OpenGL on adapter NVIDIA Corporation NVIDIA GeForce RTX 3090/PCIe/SSE2
info: OpenGL loaded successfully, version 3.3.0 NVIDIA 570.153.02, shading language 3.30 NVIDIA via Cg compiler
info: ---------------------------------
info: video settings reset:
   base resolution:   1920x1080
   output resolution: 1920x1080
   downscale filter:  Bicubic
   fps:               60/1
   format:            NV12
   YUV mode:          Rec. 709/Full
info: NV12 texture support enabled
info: P010 texture support not available
info: Audio monitoring device:
   name: Default
   id: default
info: ---------------------------------
warning: Failed to load 'en-US' text for module: 'decklink-captions.so'
warning: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
info: Decklink API Compiled version 12.0
info: Decklink API Installed version 14.4.1
info: [pipewire] Available capture sources:
info: [pipewire]     - Monitor source
info: [pipewire]     - Window source
error: VAAPI: Failed to initialize display in vaapi_device_h264_supported
info: FFmpeg VAAPI H264 encoding not supported
error: VAAPI: Failed to initialize display in vaapi_device_av1_supported
info: FFmpeg VAAPI AV1 encoding not supported
error: VAAPI: Failed to initialize display in vaapi_device_hevc_supported
info: FFmpeg VAAPI HEVC encoding not supported
info: [obs-nvenc] NVENC version: 13.0 (compiled) / 13.0 (driver), CUDA driver version: 12.80, AV1 supported: false
error: os_dlopen(/usr/lib/obs-plugins/obs-websocket.so->/usr/lib/obs-plugins/obs-websocket.so): libqrcodegencpp.so.1: cannot open shared object file: No such file or directory

error: os_dlopen(/usr/lib/obs-plugins/obs-websocket.so->/usr/lib/obs-plugins/obs-websocket.so): libqrcodegencpp.so.1: cannot open shared object file: No such file or directory

warning: Module '/usr/lib/obs-plugins/obs-websocket.so' not loaded
info: ---------------------------------
info:   Loaded Modules:
info:     text-freetype2.so
info:     rtmp-services.so
info:     obs-x264.so
info:     obs-webrtc.so
info:     obs-vst.so
info:     obs-transitions.so
info:     obs-qsv11.so
info:     obs-outputs.so
info:     obs-nvenc.so
info:     obs-libfdk.so
info:     obs-filters.so
info:     obs-ffmpeg.so
info:     linux-v4l2.so
info:     linux-pulseaudio.so
info:     linux-pipewire.so
info:     linux-jack.so
info:     linux-capture.so
info:     linux-alsa.so
info:     image-source.so
info:     frontend-tools.so
info:     decklink.so
info:     decklink-output-ui.so
info:     decklink-captions.so
info: ---------------------------------
info: ---------------------------------
info: Available Encoders:
info:   Video Encoders:
info:    - ffmpeg_svt_av1 (SVT-AV1)
info:    - ffmpeg_aom_av1 (AOM AV1)
info:    - obs_nvenc_h264_tex (NVIDIA NVENC H.264)
info:    - obs_nvenc_hevc_tex (NVIDIA NVENC HEVC)
info:    - obs_x264 (x264)
info:   Audio Encoders:
info:    - ffmpeg_aac (FFmpeg AAC)
info:    - ffmpeg_opus (FFmpeg Opus)
info:    - ffmpeg_pcm_s16le (FFmpeg PCM (16-bit))
info:    - ffmpeg_pcm_s24le (FFmpeg PCM (24-bit))
info:    - ffmpeg_pcm_f32le (FFmpeg PCM (32-bit float))
info:    - ffmpeg_alac (FFmpeg ALAC (24-bit))
info:    - ffmpeg_flac (FFmpeg FLAC (16-bit))
info:    - libfdk_aac (libfdk AAC)
info: ==== Startup complete ===============================================
info: All scene data cleared
info: ------------------------------------------------
info: pulse-input: Server name: 'PulseAudio (on PipeWire 1.4.3) 15.0.0'
info: pulse-input: Audio format: s32le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_output.pci-0000_0c_00.4.analog-stereo.monitor' (default)
info: [Loaded global audio device]: 'Desktop Audio'
info: pulse-input: Server name: 'PulseAudio (on PipeWire 1.4.3) 15.0.0'
error: pulse-input: An error occurred while getting the source info!
info: pulse-am: Server name: 'PulseAudio (on PipeWire 1.4.3) 15.0.0'
info: pulse-am: Audio format: s32le, 48000 Hz, 2 channels
info: pulse-am: Started Monitoring in 'alsa_output.pci-0000_0c_00.4.analog-stereo'
info: [Loaded global audio device]: 'Mic/Aux'
info:     - monitoring: monitor and output
info: Switched to scene 'Scene'
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Scene':
info:     - source: 'Blackmagic Device' (decklink-input)
info: ------------------------------------------------
info: adding 21 milliseconds of audio buffering, total audio buffering is now 21 milliseconds (source: Desktop Audio)
Offline

luca-dev94

  • Posts: 10
  • Joined: Thu Oct 17, 2024 9:42 pm
  • Real Name: Luca G

Re: DeckLink Quad HDMI Recorder not recognized on Linux

PostFri May 30, 2025 10:15 am

Same here but in my case there's an error trying to build the kernel module caused by a gcc version mismatch.


Code: Select all
Building module(s)
# command: make -j12 KERNELRELEASE=6.14.8-200.fc41.x86_64 KERNELRELEASE=6.14.8-200.fc41.x86_64
touch .blackmagic.o.cmd
make -C /lib/modules/6.14.8-200.fc41.x86_64/build M=/var/lib/dkms/blackmagic-io/14.4.1a4/build
make[1]: Entering directory '/usr/src/kernels/6.14.8-200.fc41.x86_64'
make[2]: Entering directory '/var/lib/dkms/blackmagic-io/14.4.1a4/build'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)
  You are using:           gcc (GCC) 14.3.1 20250523 (Red Hat 14.3.1-1)

I hope Blackmagic is not planning to phase out Linux support because I purchased a capture card only for that reason
Offline

Westerj

  • Posts: 2
  • Joined: Wed Jun 11, 2025 4:59 am
  • Real Name: John Westedale

Re: DeckLink Quad HDMI Recorder not recognized on Linux

PostWed Jun 11, 2025 6:31 pm

Base Fed40 install.

Have a header/devel/kernel-version quondry. there seems no solution?

back to previous version of desktopvideo.

HONESTLY, I BOUGHT THIS CARD TO AVOID THIS. I actually bought 2.

root@fedora:/var/lib/dkms/blackmagic/14.4.1a4/build# rpm -qa | grep kernel| grep -e header -e devel
kernel-headers-6.14.3-100.fc40.x86_64
kernel-devel-6.14.5-100.fc40.x86_64
kernel-devel-matched-6.14.5-100.fc40.x86_64
root@fedora:/var/lib/dkms/blackmagic/14.4.1a4/build# make clean
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions built-in.o Module.symvers Module.markers modules.order
root@fedora:/var/lib/dkms/blackmagic/14.4.1a4/build# make
touch .bmd-support.o.cmd
make -C /lib/modules/`uname -r`/build M=/var/lib/dkms/blackmagic/14.4.1a4/build
make[1]: Entering directory '/usr/src/kernels/6.14.5-100.fc40.x86_64'
make[2]: Entering directory '/var/lib/dkms/blackmagic/14.4.1a4/build'
CC [M] blackmagic_serial.o
blackmagic_serial.c:374:6: warning: no previous prototype for ‘blackmagic_serial_tx_interrupt’ [-Wmissing-prototypes]
374 | void blackmagic_serial_tx_interrupt(void *driver, int continue_tx)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blackmagic_serial.c:573:5: warning: no previous prototype for ‘blackmagic_serial_probe’ [-Wmissing-prototypes]
573 | int blackmagic_serial_probe(struct blackmagic_device *ddev, struct device *dev)
| ^~~~~~~~~~~~~~~~~~~~~~~
blackmagic_serial.c:608:6: warning: no previous prototype for ‘blackmagic_serial_remove’ [-Wmissing-prototypes]
608 | void blackmagic_serial_remove(struct blackmagic_device *ddev)
| ^~~~~~~~~~~~~~~~~~~~~~~~
blackmagic_serial.c:616:12: warning: no previous prototype for ‘blackmagic_serial_init’ [-Wmissing-prototypes]
616 | int __init blackmagic_serial_init(void)
| ^~~~~~~~~~~~~~~~~~~~~~
blackmagic_serial.c:661:13: warning: no previous prototype for ‘blackmagic_serial_exit’ [-Wmissing-prototypes]
661 | void __exit blackmagic_serial_exit(void)
| ^~~~~~~~~~~~~~~~~~~~~~
CC [M] blackmagic_core.o
blackmagic_core.c:97:1: warning: no previous prototype for ‘blackmagic_find_device_by_minor’ [-Wmissing-prototypes]
97 | blackmagic_find_device_by_minor(int minor)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blackmagic_core.c:116:1: warning: no previous prototype for ‘blackmagic_find_device_by_id’ [-Wmissing-prototypes]
116 | blackmagic_find_device_by_id(int id)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
blackmagic_core.c:134:27: warning: no previous prototype for ‘blackmagic_find_device_by_ptr’ [-Wmissing-prototypes]
134 | struct blackmagic_device *blackmagic_find_device_by_ptr(void *ptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blackmagic_core.c:373:1: warning: no previous prototype for ‘blackmagic_create_device’ [-Wmissing-prototypes]
373 | blackmagic_create_device(struct pci_dev *pdev)
| ^~~~~~~~~~~~~~~~~~~~~~~~
blackmagic_core.c:439:1: warning: no previous prototype for ‘blackmagic_destroy_device’ [-Wmissing-prototypes]
439 | blackmagic_destroy_device(struct blackmagic_device *ddev)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] blackmagic_lib.o
blackmagic_lib.c:569:5: warning: no previous prototype for ‘dl_thread_wrapper’ [-Wmissing-prototypes]
569 | int dl_thread_wrapper(void *data)
| ^~~~~~~~~~~~~~~~~
CC [M] blackmagic_dma.o
CC [M] blackmagic_gate.o
blackmagic_gate.c:107:25: warning: no previous prototype for ‘dl_alloc_gate’ [-Wmissing-prototypes]
107 | struct blackmagic_gate *dl_alloc_gate(void)
| ^~~~~~~~~~~~~
blackmagic_gate.c:130:6: warning: no previous prototype for ‘dl_free_gate’ [-Wmissing-prototypes]
130 | void dl_free_gate(struct blackmagic_gate *gate)
| ^~~~~~~~~~~~
blackmagic_gate.c:135:6: warning: no previous prototype for ‘dl_gate_set_device’ [-Wmissing-prototypes]
135 | void dl_gate_set_device(struct blackmagic_gate *gate, void *dev)
| ^~~~~~~~~~~~~~~~~~
blackmagic_gate.c:175:14: warning: no previous prototype for ‘dl_gate_lock’ [-Wmissing-prototypes]
175 | void __sched dl_gate_lock(struct blackmagic_gate *gate)
| ^~~~~~~~~~~~
blackmagic_gate.c:184:6: warning: no previous prototype for ‘dl_gate_lock_interrupt’ [-Wmissing-prototypes]
184 | bool dl_gate_lock_interrupt(struct blackmagic_gate *gate)
| ^~~~~~~~~~~~~~~~~~~~~~
blackmagic_gate.c:241:6: warning: no previous prototype for ‘dl_gate_unlock’ [-Wmissing-prototypes]
241 | void dl_gate_unlock(struct blackmagic_gate *gate)
| ^~~~~~~~~~~~~~
blackmagic_gate.c:295:5: warning: no previous prototype for ‘dl_gate_sleep’ [-Wmissing-prototypes]
295 | int dl_gate_sleep(struct blackmagic_gate *gate, void* key)
| ^~~~~~~~~~~~~
blackmagic_gate.c:366:6: warning: no previous prototype for ‘dl_gate_wakeup’ [-Wmissing-prototypes]
366 | void dl_gate_wakeup(struct blackmagic_gate *gate, void* key)
| ^~~~~~~~~~~~~~
make[4]: *** No rule to make target 'bmd-support.o', needed by 'blackmagic.o'. Stop.
make[3]: *** [/usr/src/kernels/6.14.5-100.fc40.x86_64/Makefile:2037: .] Error 2
make[2]: *** [/usr/src/kernels/6.14.5-100.fc40.x86_64/Makefile:263: __sub-make] Error 2
make[2]: Leaving directory '/var/lib/dkms/blackmagic/14.4.1a4/build'
make[1]: *** [Makefile:263: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/kernels/6.14.5-100.fc40.x86_64'
make: *** [Makefile:44: all] Error 2
root@fedora:/var/lib/dkms/blackmagic/14.4.1a4/build#

this is an up-to-date Fedora 40... but with:

root@fedora:/var/lib/dkms/blackmagic/14.4.1a4/build# rpm -qa | grep kernel| grep -e header -e devel
kernel-headers-6.14.3-100.fc40.x86_64
kernel-devel-6.14.5-100.fc40.x86_64
kernel-devel-matched-6.14.5-100.fc40.x86_64
root@fedora:/var/lib/dkms/blackmagic/14.4.1a4/build# uname -r
6.14.5-100.fc40.x86_64

Return to Post Production

Who is online

Users browsing this forum: No registered users and 15 guests