FIXED: Problem with Declink MR driver under Ubuntu 22.04

Getting started with a Blackmagic product? Ask questions here about setup and installation.
  • Author
  • Message
Offline

stpaulsajaxcamera

  • Posts: 6
  • Joined: Sat Apr 09, 2022 11:30 am
  • Real Name: Richard Cooke

FIXED: Problem with Declink MR driver under Ubuntu 22.04

PostSat May 27, 2023 7:03 pm

My Ubuntu 20.04LTS system worked fine for over a year using your capture card with OBS and OBS-NDI plugin.

Suddenly, ~3 weeks ago, the video feed stopped. When I run the "Blackmagic Desktop Video Setup" program it says "no card detected"!

I thought the PCI card was toast. But when I did a "lspci" it was listed.

I upgraded the OS to Ubuntu 22.04LTS, no change. (that took a few hours!)

Thinking the old drivers might not be compatible with 22.04, I updated the drivers to 12.4.1, no change.

For a sanity check, I booted from Ubuntu 22.04LTS on a USB stick. Installed the 12.4.1 drivers and it WORKED!

So, thinking something inside the OS was confused, I wiped the disk and did a fresh install of Ubuntu 22.04LTS.

After doing updates, I installed the 12.4.1 package. And got the SAME "No card" error I started with!!!!

Argh!

I erased my disk and installed Ubuntu 20.04LTS. Package 12.4.1 works fine. But, now I cant find a combination of OBS-Studio and OBS-NDI plugin that work!

I will have to go back to Ubuntu 22. But I need help on how/why the driver is not seeing the card?

Thanks in advance.

Richard.

UPDATE:
I UPGRADED my 20.04 install to 22.04 LTS and the 12.4.1 driver stayed working! I installed OBS 29 (latest) and NDI plugin (had to roll back a few versions to get one that worked and did not cause a crash in OBS).

Everything worked fine for a few days. Now, 5 days later I test the system to make sure its ready for Sunday Service. And NO VIDEO! Argh!

I can see the card is still present:

Code: Select all
root@cameraControl:/etc# lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
00:14.2 Signal processing controller: Intel Corporation 200 Series PCH Thermal Subsystem
00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1
00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]
00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5 (rev f0)
00:1c.6 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #7 (rev f0)
00:1c.7 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #8 (rev f0)
00:1f.0 ISA bridge: Intel Corporation 200 Series PCH LPC Controller (B250)
00:1f.2 Memory controller: Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller
00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
00:1f.4 SMBus: Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
03:00.0 Multimedia video controller: Blackmagic Design DeckLink Mini Recorder



FIX:
As mentioned with adapting for the newest 6.x Kernel, it is now necessary to EDIT one of the SOURCE files with Ubuntu 22.04's 5.19.x kernel.

Background in this post: Linux Kernel 6.1 & Desktop Video 12.4.1

Steps to fix and install:
  • Download and install 12.4.1 Linux driver
  • Open terminal
  • Change to folder /var/lib/dkms/blackmagic-io/12.4.1a15/source
  • edit bmio_audio.c:
    Code: Select all
     sudo nano /var/lib/dkms/blackmagic-io/12.4.1a15/source/bmio_audio.c
  • Jump to start of edit point: Ctrl-/, then enter 433
  • This should land you on the definition of function snd_pcm_lib_preallocate_pages_for_all
  • If not, STOP something has changed! These instruction will not work without adaptation.
  • Remove the old function definition (5 lines): CTRL-K deletes ONE line at a time
  • Insert these lines:
    Code: Select all
     #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 19, 0))
       snd_pcm_lib_preallocate_pages_for_all(pcm,
          SNDRV_DMA_TYPE_CONTINUOUS,
          snd_dma_continuous_data(GFP_KERNEL,)
          bmio_audio_hardware.buffer_size,
          bmio_audio_hardware.buffer_size);
    #else
       snd_pcm_lib_preallocate_pages_for_all(pcm,
          SNDRV_DMA_TYPE_CONTINUOUS,
          NULL,
          bmio_audio_hardware.buffer_size,
          bmio_audio_hardware.buffer_size);
    #endif
  • Copy the new lines above, then in Nano paste them with SHIFT-CTRL-V
  • Exit with CTRL-X, press "Y" to save, then ENTER to confirm file name.
  • Compile:
    Code: Select all
    sudo dkms build -m blackmagic-io -v 12.4.1a15 -k $(uname -r)
  • Install:
    Code: Select all
    sudo dkms install -m blackmagic-io -v 12.4.1a15 -k $(uname -r)
  • Verify its working by either opening Media Express or Blackmagic Desktop Video Setup.
  • Alternatively, use LSPCI command to see if Kernel drivers are assigned:
    Code: Select all
    lspci -k
     03:00.0 Multimedia video controller: Blackmagic Design DeckLink Mini Recorder
       Subsystem: Blackmagic Design DeckLink Mini Recorder
       Kernel driver in use: blackmagic-io
       Kernel modules: blackmagic_io
  • The ReadMe with the Driver says to use this command:
    Code: Select all
    dkms status -m blackmagic-io -k `uname -r`
  • But for me it displays "installed" instead of the expected "loaded":
    Code: Select all
    dkms status -m blackmagic-io -k `uname -r`
    blackmagic-io/12.4.1a15, 5.19.0-43-generic, x86_64: installed

Now if only I could understand why it WAS working for almost a week before it STOPPED and I had to make this edit to fix it?

Return to Getting Started

Who is online

Users browsing this forum: No registered users and 32 guests