View previous topic :: View next topic |
Author |
Message |
elover Apprentice

Joined: 20 Nov 2019 Posts: 177 Location: Spain
|
|
Back to top |
|
 |
xineg Tux's lil' helper


Joined: 14 Mar 2006 Posts: 124 Location: Australia.
|
Posted: Fri Mar 28, 2025 7:07 am Post subject: |
|
|
elover
I downloaded that file and poked around and it's a whole lot of .deb files, which
are essentially for debian or ubuntu,. however rather than messing around with those,
there's an overlay called megacoffee that has the blackmagic video here:
https://gpo.zugaina.org/Overlays/megacoffee/media-libs/blackmagic-desktop-video.
I would perhaps go that way? |
|
Back to top |
|
 |
elover Apprentice

Joined: 20 Nov 2019 Posts: 177 Location: Spain
|
Posted: Fri Mar 28, 2025 8:11 am Post subject: |
|
|
Hello, thank you for your reply
Yes, I tried another ebuild and it gave me error, I searched the error on the internet and found the same error on the blackmagic forums, it was related to kernel 6.13. Someone published two patches, I applied them and it compiled perfectly, I can install the binaries from the .deb package manually to my root, run dkms and start modprobe and it worked, what happens is that this last driver is old and it doesn't detect my capture machine, in blackmagig is version 4.15 for mac and windows, but they haven't released yet in linux.
I have to open a post in the blackmagic forums asking why it doesn't detect my card. |
|
Back to top |
|
 |
xineg Tux's lil' helper


Joined: 14 Mar 2006 Posts: 124 Location: Australia.
|
Posted: Fri Mar 28, 2025 9:56 am Post subject: |
|
|
elover
elover wrote: |
Hello, thank you for your reply
Yes, I tried another ebuild and it gave me error, I searched the error on the internet and found the same error on the blackmagic forums, it was related to kernel 6.13. Someone published two patches, I applied them and it compiled perfectly, I can install the binaries from the .deb package manually to my root, run dkms and start modprobe and it worked, what happens is that this last driver is old and it doesn't detect my capture machine, in blackmagig is version 4.15 for mac and windows, but they haven't released yet in linux.
I have to open a post in the blackmagic forums asking why it doesn't detect my card. |
In the link you originally gave (with 14.4) there are many Firmware bin files, perhaps your card requires this firmware? |
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55180 Location: 56N 3W
|
Posted: Fri Mar 28, 2025 10:20 am Post subject: |
|
|
elover,
dmesg will tell if you need firmware but it fails to load.
kernel drivers bind to devices by knowing the Vendor and Device ID (mostly).
If you feel lucky, add the Vendor and Device ID to your kernel module and see what happens.
== edit ==
Knowing how your device is connected and its Vendor and Device ID would be good.
I'm not about to download your file from Google. Javascript ... etc. but I might get it from the source, if you post a link. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
elover Apprentice

Joined: 20 Nov 2019 Posts: 177 Location: Spain
|
Posted: Fri Mar 28, 2025 12:31 pm Post subject: |
|
|
NeddySeagoon wrote: | elover,
dmesg will tell if you need firmware but it fails to load.
kernel drivers bind to devices by knowing the Vendor and Device ID (mostly).
If you feel lucky, add the Vendor and Device ID to your kernel module and see what happens.
== edit ==
Knowing how your device is connected and its Vendor and Device ID would be good.
I'm not about to download your file from Google. Javascript ... etc. but I might get it from the source, if you post a link. |
Hello, thank you for replying
I'm sending you the link to the model of the card and the code you are asked to download.
https://www.blackmagicdesign.com/es/support/download/5baba0af3eda41ee9cd0ec7349660d74/Linux
card: DeckLink 8k pro G2
KEY: 13104906
lspci -v
Code: | 0c:00.0 Multimedia video controller: Blackmagic Design DeckLink 8K Pro
Subsystem: Blackmagic Design DeckLink 8K Pro
Flags: bus master, fast devsel, latency 0, IRQ 189, IOMMU group 19
Memory at a0400000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: blackmagic-io
Kernel modules: blackmagic_io
|
edit: dmesg | grep blackmagic
Code: | [ 17.297658] blackmagic_io: loading out-of-tree module taints kernel.
[ 17.297691] blackmagic_io: module license 'Proprietary' taints kernel.
[ 17.297704] blackmagic_io: module license taints kernel.
[ 17.307536] blackmagic-io 0000:0c:00.0: enabling device (0000 -> 0002)
[ 17.323701] BlackmagicIO: DeckLink 8K Pro (1) as blackmagic!io0 [0000:0c:00.0]
[ 17.323782] BlackmagicIO: Initialised serial driver for blackmagic!io0
[ 17.330688] BlackmagicIO: DeckLink 8K Pro (3) as blackmagic!io1 [0000:0c:00.0]
[ 17.330692] BlackmagicIO: Initialised serial driver for blackmagic!io1
[ 17.335754] BlackmagicIO: DeckLink 8K Pro (2) as blackmagic!io2 [0000:0c:00.0]
[ 17.335757] BlackmagicIO: Initialised serial driver for blackmagic!io2
[ 17.341559] BlackmagicIO: DeckLink 8K Pro (4) as blackmagic!io3 [0000:0c:00.0]
[ 17.341563] BlackmagicIO: Initialised serial driver for blackmagic!io3 |
Last edited by elover on Fri Mar 28, 2025 2:24 pm; edited 1 time in total |
|
Back to top |
|
 |
elover Apprentice

Joined: 20 Nov 2019 Posts: 177 Location: Spain
|
Posted: Fri Mar 28, 2025 1:31 pm Post subject: |
|
|
Hi, I have an ebuild and some patches, can someone create me the ebuild for these patches?
blackmagic-14.4.1a4-001-fix_for_kernel_6.13.patch
Code: | diff -Naur ./blackmagic-14.4.1a4.orig/blackmagic_core.c ./blackmagic-14.4.1a4/blackmagic_core.c
--- ./blackmagic-14.4.1a4.orig/blackmagic_core.c 2025-02-27 10:13:50.096498345 +0100
+++ ./blackmagic-14.4.1a4/blackmagic_core.c 2025-02-27 10:36:01.394582532 +0100
@@ -93,6 +93,12 @@
static LIST_HEAD(blackmagic_devices);
static DEFINE_SPINLOCK(blackmagic_devices_lock);
+struct blackmagic_device *blackmagic_find_device_by_minor(int minor);
+struct blackmagic_device *blackmagic_find_device_by_id(int id);
+struct blackmagic_device *blackmagic_find_device_by_ptr(void *ptr);
+struct blackmagic_device *blackmagic_create_device(struct pci_dev *pdev);
+void blackmagic_destroy_device(struct blackmagic_device *ddev);
+
struct blackmagic_device *
blackmagic_find_device_by_minor(int minor)
{
diff -Naur ./blackmagic-14.4.1a4.orig/blackmagic_gate.c ./blackmagic-14.4.1a4/blackmagic_gate.c
--- ./blackmagic-14.4.1a4.orig/blackmagic_gate.c 2025-02-27 10:13:50.096498345 +0100
+++ ./blackmagic-14.4.1a4/blackmagic_gate.c 2025-02-27 10:20:50.869524953 +0100
@@ -39,6 +39,7 @@
#endif
#include "blackmagic_iml.h"
#include "blackmagic_core.h"
+#include "blackmagic_gate.h"
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
#define raw_spinlock_t spinlock_t
diff -Naur ./blackmagic-14.4.1a4.orig/blackmagic_gate.h ./blackmagic-14.4.1a4/blackmagic_gate.h
--- ./blackmagic-14.4.1a4.orig/blackmagic_gate.h 2025-02-27 10:13:50.096498345 +0100
+++ ./blackmagic-14.4.1a4/blackmagic_gate.h 2025-02-27 10:42:55.959608748 +0100
@@ -31,7 +31,7 @@
struct blackmagic_gate;
-struct blackmagic_gate *dl_alloc_gate();
+struct blackmagic_gate *dl_alloc_gate(void);
void dl_free_gate(struct blackmagic_gate *gate);
void dl_gate_set_device(struct blackmagic_gate *gate, void *dev);
@@ -40,7 +40,7 @@
void dl_gate_unlock(struct blackmagic_gate *gate);
int dl_gate_sleep(struct blackmagic_gate *gate, void* key);
-void dl_gate_wakeup(struct blackmagic_gate *gate);
+void dl_gate_wakeup(struct blackmagic_gate *gate, void* key);
#endif
diff -Naur ./blackmagic-14.4.1a4.orig/blackmagic_lib.h ./blackmagic-14.4.1a4/blackmagic_lib.h
--- ./blackmagic-14.4.1a4.orig/blackmagic_lib.h 2025-02-27 10:13:50.096498345 +0100
+++ ./blackmagic-14.4.1a4/blackmagic_lib.h 2025-02-27 10:22:57.397532954 +0100
@@ -163,6 +163,8 @@
extern unsigned int dl_poll_wait(void *filp, struct dl_wait_queue_head_t *queue, void *wait, int write);
extern void dl_destroy_wait_queue_cache(void);
+int dl_thread_wrapper(void *data);
+
/* FPU save/restore */
extern void dl_kernel_fpu_begin(void);
extern void dl_kernel_fpu_end(void);
diff -Naur ./blackmagic-14.4.1a4.orig/blackmagic_serial.c ./blackmagic-14.4.1a4/blackmagic_serial.c
--- ./blackmagic-14.4.1a4.orig/blackmagic_serial.c 2025-02-27 10:13:50.097498345 +0100
+++ ./blackmagic-14.4.1a4/blackmagic_serial.c 2025-02-27 10:22:57.429532956 +0100
@@ -38,6 +38,12 @@
static struct tty_driver *blackmagic_tty_driver = NULL;
+void blackmagic_serial_tx_interrupt(void *driver, int continue_tx);
+int blackmagic_serial_probe(struct blackmagic_device *ddev, struct device *dev);
+void blackmagic_serial_remove(struct blackmagic_device *ddev);
+int __init blackmagic_serial_init(void);
+void __exit blackmagic_serial_exit(void);
+
static inline void *get_driver_from_serial(struct blackmagic_serial *sdev)
{
return container_of(sdev, struct blackmagic_device, sdev)->driver;
diff -Naur ./blackmagic-14.4.1a4.orig/Makefile ./blackmagic-14.4.1a4/Makefile
--- ./blackmagic-14.4.1a4.orig/Makefile 2025-02-27 10:13:50.096498345 +0100
+++ ./blackmagic-14.4.1a4/Makefile 2025-02-27 11:21:26.401754853 +0100
@@ -49,3 +49,6 @@
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions built-in.o Module.symvers Module.markers modules.order
+bmd-support.o: bmd-support.o_shipped
+ cp bmd-support.o_shipped bmd-support.o
+
|
blackmagic-io-14.4.1a4-001-fix_for_kernel_6.13.patch
Code: | diff -Naur ./blackmagic-io-14.4.1a4.orig/bm_util.c ./blackmagic-io-14.4.1a4/bm_util.c
--- ./blackmagic-io-14.4.1a4.orig/bm_util.c 2025-02-27 10:13:40.489497737 +0100
+++ ./blackmagic-io-14.4.1a4/bm_util.c 2025-02-27 10:52:53.343646525 +0100
@@ -120,7 +120,9 @@
};
#define MEM_ALIGN(mem, align) (((vm_address_t)(mem) + ((align) - 1)) & ~((align) - 1))
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0)
#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
void* bm_alloc_aligned(size_t size, uint32_t flags)
{
diff -Naur ./blackmagic-io-14.4.1a4.orig/Makefile ./blackmagic-io-14.4.1a4/Makefile
--- ./blackmagic-io-14.4.1a4.orig/Makefile 2025-02-27 10:13:40.461497735 +0100
+++ ./blackmagic-io-14.4.1a4/Makefile 2025-02-27 11:21:26.422754854 +0100
@@ -52,3 +52,6 @@
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions built-in.o Module.symvers Module.markers modules.order
+blackmagic.o: blackmagic.o_shipped
+ cp blackmagic.o_shipped blackmagic.o
+
|
ebuild
Code: |
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop systemd linux-mod-r1 udev
DESCRIPTION="Desktop Video drivers & tools for products by Blackmagic Design (e.g. DeckLink)"
HOMEPAGE="https://www.blackmagicdesign.com/"
# Desktop Video Revision
REV="a6"
# SDK Package Version
SDK_VERSION="${PV}"
SRC_URI="
Blackmagic_Desktop_Video_Linux_${PV}.tar.gz
headers? ( Blackmagic_DeckLink_SDK_${SDK_VERSION}.zip )
"
UNPACKED_DIR="desktopvideo-${PV}${REV}-x86_64"
S="${WORKDIR}/${UNPACKED_DIR}"
LICENSE="BlackmagicDesktopVideo"
SLOT="0"
# Some files are precompiled binaries for amd64 only
KEYWORDS="-* ~amd64"
IUSE="autostart +headers X"
# xdg autostart is used, so it won't work on a machine without desktop
REQUIRED_USE="autostart? ( X )"
RESTRICT="fetch"
RDEPEND="
llvm-runtimes/libcxx
llvm-runtimes/libcxxabi
virtual/libusb
virtual/udev
X? (
dev-qt/qtcore:5
dev-qt/qtnetwork:5
dev-qt/qtgui:5
dev-qt/qtdbus:5
dev-qt/qtwidgets:5
)
"
BDEPEND="
app-arch/unzip
"
CONFIG_CHECK="
SOUND
SND
SND_PCM
"
PATCHES=(
"${FILESDIR}/${P}-fix-c-prototypes.patch"
)
QA_PREBUILT="usr/*"
pkg_nofetch() {
einfo "Please visit ${HOMEPAGE} and download \"Desktop Video ${PV} for Linux\""
if use headers; then
einfo "and \"Desktop Video ${SDK_VERSION} SDK for Linux\""
fi
einfo "for your product from the support section and move it to DISTDIR"
einfo ""
einfo " expected filenames: ${SRC_URI}"
einfo ""
einfo "The license should be shown and has to be accepted before the download"
einfo "starts."
}
src_unpack() {
# shellcheck disable=SC2086
unpack ${A}
cd "${WORKDIR}" || die
tar xfz "Blackmagic_Desktop_Video_Linux_${PV}/other/x86_64/${UNPACKED_DIR}.tar.gz" \
|| die "Failed to unpack driver sources"
}
src_prepare() {
default
sed -i "s:usr/lib:usr/$(get_libdir):g" \
usr/lib/systemd/system/* \
etc/udev/rules.d/* \
|| die "Failed to correct lib paths in config files"
}
src_compile() {
# library/tools are binary but kernel module requires compilation
local modlist=(
blackmagic="misc:${S}/usr/src/blackmagic-${PV}${REV}"
blackmagic-io="misc:${S}/usr/src/blackmagic-io-${PV}${REV}"
)
local modargs=(
KERNELRELEASE="${KV_FULL}"
)
linux-mod-r1_src_compile
}
src_install() {
linux-mod-r1_src_install
udev_dorules etc/udev/rules.d/*.rules
insinto /etc/dracut.conf.d
doins etc/dracut.conf.d/*.conf
dolib.so usr/lib/lib*.so
dodir "/usr/$(get_libdir)/blackmagic/DesktopVideo"
cp -vR usr/lib/blackmagic/DesktopVideo/* \
"${ED}/usr/$(get_libdir)/blackmagic/DesktopVideo" \
|| die "Failed to copy libs and firmware"
dosym \
"../$(get_libdir)/blackmagic/DesktopVideo/DesktopVideoUpdateTool" \
/usr/bin/DesktopVideoUpdateTool
dosym \
"../$(get_libdir)/blackmagic/DesktopVideo/DesktopVideoHelper" \
/usr/sbin/DesktopVideoHelper
use X && dosym \
"../$(get_libdir)/blackmagic/DesktopVideo/BlackmagicDesktopVideoSetup" \
/usr/bin/BlackmagicDesktopVideoSetup
if use X; then
domenu usr/share/applications/*.desktop
dodoc -r usr/share/doc/*
local icon_size
for icon_size in 256 128 48 32 16; do
doicon -s ${icon_size} usr/share/icons/hicolor/${icon_size}x${icon_size}/*
done
fi
doman usr/share/man/man1/*
newinitd "${FILESDIR}/DesktopVideoHelper.initd" blackmagic-DesktopVideoHelper
systemd_dounit usr/lib/systemd/system/*
if use headers; then
insinto /usr/include/blackmagic
# The .cpp files are needed as well
doins "${WORKDIR}/Blackmagic DeckLink SDK ${SDK_VERSION}/Linux/include"/*.{h,cpp}
fi
if use autostart; then
insinto /etc/xdg/autostart
doins etc/xdg/autostart/*
fi
find "${ED}" -iname "*License*.*" -delete || die
find "${ED}" \( \
-iname "libc++*.so*" -o \
-iname "libgcc*.so*" -o \
-iname "libqt*.so*" -o \
-iname "libusb*.so*" \
\) -delete || die "Failed to remove vendored libs"
}
pkg_postinst() {
linux-mod-r1_pkg_postinst
udev_reload
einfo ""
einfo "Please do *NOT* report any QA errors to Gentoo or Blackmagic!"
einfo ""
einfo "The kernel module is simply called blackmagic or blackmagic-io "
einfo "depends on your BMD device. You may want to modprobe it now to see "
einfo "if it works (it should print your devices to kernel log)."
einfo ""
einfo "Installed tools are DesktopVideoUpdateTool. !!!! Notice rename. !!!!"
einfo "maybe you need to add blackmagic-DesktopVideoHelper to autostart, to be able to list devices"
einfo ""
if use autostart; then
einfo "Automated update check has been installed."
else
einfo "Automated update check has *not* been installed this time. (set USE flag"
einfo "autostart if you want that)"
fi
einfo ""
einfo "If your product is not being recognized, you may need to increase the vmalloc"
einfo "limit in your kernel. You can do that by adding e.g. vmalloc=256M to your kernel"
einfo "boot line. You can see current usage by running"
einfo ""
einfo " # grep VmallocUsed /proc/meminfo"
einfo ""
}
pkg_postrm() {
udev_reload
}
|
|
|
Back to top |
|
 |
NeddySeagoon Administrator


Joined: 05 Jul 2003 Posts: 55180 Location: 56N 3W
|
Posted: Fri Mar 28, 2025 3:10 pm Post subject: |
|
|
elover,
Put the patches into /etc/portage/patches/... and emerge your kernel.
Portage will apply the patches for you. just like that to quote Tommy Cooper.
The ebuild goes into your local overlay. That's covered on the Wiki too. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|