Package Base Details: decklink

Git Clone URL: https://aur.archlinux.org/decklink.git (read-only, click to copy)
Submitter: alub
Maintainer: goldensuneur
Last Packager: goldensuneur
Votes: 24
Popularity: 0.000162
First Submitted: 2015-10-03 15:38 (UTC)
Last Updated: 2024-04-12 20:17 (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 .. 24 Next › Last »

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)
      |                                                                      ^

sleduc commented on 2023-09-26 08:09 (UTC)

Ok that's great, indeed it works with the latest version, thanks for the update !

goldensuneur commented on 2023-09-26 08:02 (UTC)

Latest version released today by Blackmagic fixes the build issue.

sleduc commented on 2023-09-25 10:28 (UTC)

Hello,

The package does not build any more with kernel >= 6.5.0 due to some kernel API change : see error in https://pastebin.com/3UmdRxhx

Parameter 'vmas' was removed from functions 'get_user_pages' and 'get_user_pages_remote', since 6.5-rc1: https://lore.kernel.org/lkml/20230626085035.e66992e96b4c6d37dad54bd9@linux-foundation.org/

The following patch seems to be fixing the issue : https://pastebin.com/FZVwR181

ToadKing commented on 2023-06-28 22:44 (UTC)

@YAOMTC If the user has an alternative kernel installed they would have a different header package. See the dependencies for dkms. It is up to the user to also have the appropriate header package installed for dkms.