Package Details: decklink 14.2.1-1

Git Clone URL: https://aur.archlinux.org/decklink.git (read-only, click to copy)
Package Base: decklink
Description: Drivers for Blackmagic Design DeckLink, Intensity or Multibridge video editing cards
Upstream URL: https://www.blackmagicdesign.com/support/family/capture-and-playback
Licenses: custom
Submitter: alub
Maintainer: goldensuneur
Last Packager: goldensuneur
Votes: 24
Popularity: 0.000002
First Submitted: 2015-10-03 15:38 (UTC)
Last Updated: 2024-09-18 17:33 (UTC)

Pinned Comments

goldensuneur commented on 2020-03-02 19:00 (UTC)

I finally had time to investigate the issue. It looks like that as of 11.5, the DesktopVideoHelper.service has to be running for the capture card to work properly.

Latest Comments

1 2 3 4 5 6 .. 25 Next › Last »

goldensuneur commented on 2024-10-15 07:46 (UTC)

Hi francisqureshi, I don't own a working capture card anymore so I only check if the driver builds on linux and linux-lts but I cannot check if it works fine when in use.

sploders101 commented on 2024-10-14 20:32 (UTC) (edited on 2024-10-14 20:32 (UTC) by sploders101)

In addition to enabling DesktopVideoHelper.service, I also had to put ibt=off in my kernel cmdline to keep the driver from crashing on kernel 6.11.3-arch1-1.

francisqureshi commented on 2024-10-14 17:07 (UTC) (edited on 2024-10-14 17:07 (UTC) by francisqureshi)

Hey there goldensuneur, thanks for all your efforts. Is it possible to use this with the latest kernels? Or more importantly, what version kernel do you recommend to use this decklink package?

icedream commented on 2024-05-07 22:13 (UTC) (edited on 2024-05-07 22:14 (UTC) by icedream)

I've basically copied a good chunk of the routines over into the PKGBUILD a while ago (forgot to post it here) and it seems to work.

Linking the patch here: https://raw.githubusercontent.com/icedream/customizepkg-config/4db6a787dfe6ad9a5a9d99bd8f2d1402f063e495/decklink.patches/0001-Add-signing-key-generation-post-install-secure-boot-.patch

I was hoping for someone to come up with a more simple, Arch-ified solution but this is the best I can do at the moment.

goldensuneur commented on 2024-04-16 13:21 (UTC)

I won't have the time to make the change in the next days so don't hesitate to make a patch and send it here. I'll update the PKGBUILD with it

icedream commented on 2024-04-16 00:40 (UTC) (edited on 2024-04-16 01:02 (UTC) by icedream)

Apparently the RPM spec has additional commands to get the driver to work on PCs with secure boot enabled, and that's the case on my Arch install. There's information about it in the ReadMe.txt section "Secure Boot" but the gist of it is:

  • It creates /var/lib/blackmagic/openssl.cnf and uses that configuration with OpenSSL to generate key & cert /var/lib/blackmagic/MOK.{priv,der}.
  • It checks for a script update-secureboot-policy in PATH
    • If it does not exist: It asks the user to enroll the key with sudo mokutil --import /var/lib/blackmagic/MOK.der, either non-interactively or interactively depending on whether running in TTY or not.
    • If it does exist: The script relies on the existence of /var/lib/shim-signed/mok/MOK.der (which supposedly is where the MOK is normally stored for shim?) instead. Other than that, same as above.
  • Blackmagic's dkms-helper script takes these two files (key/cert paths are hardcoded!) and signs the module itself with them but these files never got generated in our install script, hence the error messages.

Considering that there's many ways Arch can be set up with Secure Boot, maybe it's better to just port the part that generates the files to allow DKMS to not throw errors but instruct the user to enroll the keys if necessary with whatever method they used. I say "if necessary" because apparently my secure boot setup does not even require these modules to be signed properly...?

icedream commented on 2024-04-16 00:27 (UTC) (edited on 2024-04-16 00:28 (UTC) by icedream)

On install, I get the following messages (focusing on the SSL errors here, seem to be related to driver signing or something like that as it uses a "MOK" key file that isn't there?), I'm still checking on what could be the cause of this. A reinstall does not help.

(4/9) Install DKMS modules
==> dkms install --no-depmod blackmagic-io/12.9a3 -k 6.8.6-AMD
At main.c:167:
- SSL error:FFFFFFFF80000002:system library::No such file or directory: crypto/bio/bss_file.c:67
- SSL error:10000080:BIO routines::no such file: crypto/bio/bss_file.c:75
sign-file: /var/lib/blackmagic/MOK.priv
ERR The driver was not able to be unloaded because it is in use
ERR You will need to reboot to use the new driver
==> dkms install --no-depmod blackmagic-io/12.9a3 -k 6.8.5-arch1-1
At main.c:167:
- SSL error:FFFFFFFF80000002:system library::No such file or directory: crypto/bio/bss_file.c:67
- SSL error:10000080:BIO routines::no such file: crypto/bio/bss_file.c:75
sign-file: /var/lib/blackmagic/MOK.priv
==> dkms install --no-depmod blackmagic/12.9a3 -k 6.8.5-arch1-1
At main.c:167:
- SSL error:FFFFFFFF80000002:system library::No such file or directory: crypto/bio/bss_file.c:67
- SSL error:10000080:BIO routines::no such file: crypto/bio/bss_file.c:75
sign-file: /var/lib/blackmagic/MOK.priv

goldensuneur commented on 2024-03-11 21:26 (UTC)

Thanks I missed this version in their RSS feed. I pushed a new version with simple patches for the build. As usual it builds on my machine but I cannot test it.

icedream commented on 2024-03-11 17:18 (UTC)

Got 12.8.1 with the following patch (hence will mark the package as outdated) but unfortunately it still fails on kernel 6.8.0.

diff --git a/PKGBUILD b/PKGBUILD
index df5908e..2ca4373 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,3 +4,3 @@ pkgname=(decklink mediaexpress)
 _pkgname=decklink
-pkgver=12.7
+pkgver=12.8.1
 pkgrel=1
@@ -16,3 +16,3 @@ options=('!strip' 'staticlibs')

-_pkgsrc_url="https://www.blackmagicdesign.com/api/register/us/download/b94e51eb5c6c45c48a04b09b72989448"
+_pkgsrc_url="https://www.blackmagicdesign.com/api/register/us/download/0636d85539fd4446a24f5952223cc1ec"
 _pkgsrc_file=${_pkgname}-${pkgver}.tar.gz
@@ -33,3 +33,3 @@ source=("${_pkgsrc_file}"::"${_pkgsrc_url}"
     )
-sha256sums=('71c8b827e80f2c42e742acf0239fca173261eb7afe31c34944ffe30176226a14')
+sha256sums=('aff42d039fe1d1fbe5c5df61f0b2434a75067a4e3c861a705dff5f4083e60c02')

icedream commented on 2024-03-11 17:13 (UTC)

Fails with kernel 6.8.0, I suppose this needs a new version or a patch:

/var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.c: In function ‘bm_mutex_alloc’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.c:178:9: error: implicit declaration of function ‘mutex_init’; did you mean ‘bm_util_init’? [-Werror=implicit-function-declaration]
  178 |         mutex_init(mutex);
      |         ^~~~~~~~~~
      |         bm_util_init
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.c: In function ‘bm_mutex_lock’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.c:189:9: error: implicit declaration of function ‘mutex_lock’; did you mean ‘bm_mutex_lock’? [-Werror=implicit-function-declaration]
  189 |         mutex_lock(mutex);
      |         ^~~~~~~~~~
      |         bm_mutex_lock
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.c: In function ‘bm_mutex_trylock’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.c:194:17: error: implicit declaration of function ‘mutex_trylock’; did you mean ‘bm_mutex_trylock’? [-Werror=implicit-function-declaration]
  194 |         return (mutex_trylock(mutex) != 0);
      |                 ^~~~~~~~~~~~~
      |                 bm_mutex_trylock
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.c: In function ‘bm_mutex_unlock’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.c:199:9: error: implicit declaration of function ‘mutex_unlock’; did you mean ‘bm_mutex_unlock’? [-Werror=implicit-function-declaration]
  199 |         mutex_unlock(mutex);
      |         ^~~~~~~~~~~~
      |         bm_mutex_unlock
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:243: /var/lib/dkms/blackmagic-io/12.7a4/build/bm_locks.o] Error 1
make[3]: *** Waiting for unfinished jobs....
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_util.c: In function ‘bm_alloc_aligned’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_util.c:140:37: error: ‘MAX_ORDER’ undeclared (first use in this function)
  140 |         if (get_order(alloc_size) < MAX_ORDER)
      |                                     ^~~~~~~~~
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_util.c:140:37: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_util.c: At top level:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_util.c:535:13: warning: no previous prototype for ‘get_event’ [-Wmissing-prototypes]
  535 | bm_event_t* get_event(void* event, bool create)
      |             ^~~~~~~~~
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_util.c:575:6: warning: no previous prototype for ‘put_event’ [-Wmissing-prototypes]
  575 | void put_event(bm_event_t* ev)
      |      ^~~~~~~~~
make[3]: *** [scripts/Makefile.build:243: /var/lib/dkms/blackmagic-io/12.7a4/build/bm_util.o] Error 1
In file included from ./include/linux/pci.h:2688,
                 from /var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c:31:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c: In function ‘bm_dma_sg_bus_map’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c:240:84: warning: implicit conversion from ‘bm_dma_direction_t’ {aka ‘enum bm_dma_direction’} to ‘enum dma_data_direction’ [-Wenum-conversion]
  240 |         int nents = dma_map_sg(&pci->pdev->dev, sgTable->sgl, sgTable->orig_nents, dir);
      |                                                                                    ^~~
./include/linux/dma-mapping.h:419:58: note: in definition of macro ‘dma_map_sg’
  419 | #define dma_map_sg(d, s, n, r) dma_map_sg_attrs(d, s, n, r, 0)
      |                                                          ^
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c: In function ‘bm_dma_sg_bus_unmap’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c:257:74: warning: implicit conversion from ‘bm_dma_direction_t’ {aka ‘enum bm_dma_direction’} to ‘enum dma_data_direction’ [-Wenum-conversion]
  257 |         dma_unmap_sg(&pci->pdev->dev, sgTable->sgl, sgTable->orig_nents, dir);
      |                                                                          ^~~
./include/linux/dma-mapping.h:420:62: note: in definition of macro ‘dma_unmap_sg’
  420 | #define dma_unmap_sg(d, s, n, r) dma_unmap_sg_attrs(d, s, n, r, 0)
      |                                                              ^
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c: In function ‘bm_dma_bus_map_kernel_subpage’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c:344:72: warning: implicit conversion from ‘bm_dma_direction_t’ {aka ‘enum bm_dma_direction’} to ‘enum dma_data_direction’ [-Wenum-conversion]
  344 |         subpage->busAddr = dma_map_single(&pci->pdev->dev, addr, size, dir);
      |                                                                        ^~~
./include/linux/dma-mapping.h:417:66: note: in definition of macro ‘dma_map_single’
  417 | #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
      |                                                                  ^
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c: In function ‘bm_dma_bus_unmap_kernel_subpage’:
/var/lib/dkms/blackmagic-io/12.7a4/build/bm_mm.c:357:76: warning: implicit conversion from ‘bm_dma_direction_t’ {aka ‘enum bm_dma_direction’} to ‘enum dma_data_direction’ [-Wenum-conversion]
  357 |         dma_unmap_single(&pci->pdev->dev, subpage->busAddr, subpage->size, dir);
      |                                                                            ^~~
./include/linux/dma-mapping.h:418:70: note: in definition of macro ‘dma_unmap_single’
  418 | #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
      |                                                                      ^