Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Assistance Unsupported Software
  • Search

Hi, how can I install the blackmagic driver?

This forum covers all Gentoo-related software not officially supported by Gentoo. Ebuilds/software posted here might harm the health and stability of your system(s), and are not supported by Gentoo developers. Bugs/errors caused by ebuilds from overlays.gentoo.org are covered by this forum, too.
Post Reply
Advanced search
8 posts • Page 1 of 1
Author
Message
elover
Apprentice
Apprentice
Posts: 181
Joined: Wed Nov 20, 2019 12:32 pm
Location: Spain

Hi, how can I install the blackmagic driver?

  • Quote

Post by elover » Thu Mar 27, 2025 6:27 pm

I bought an 8k capture machine and I am not able to install the driver.

I leave the programme with the instructions in case someone with more knowledge helps me.
https://drive.google.com/file/d/1289gkp ... sp=sharing
Top
xineg
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 126
Joined: Tue Mar 14, 2006 10:03 am
Location: Australia.

  • Quote

Post by xineg » Fri Mar 28, 2025 7:07 am

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/megaco ... ktop-video.
I would perhaps go that way?
Top
elover
Apprentice
Apprentice
Posts: 181
Joined: Wed Nov 20, 2019 12:32 pm
Location: Spain

  • Quote

Post by elover » Fri Mar 28, 2025 8:11 am

xineg wrote: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/megaco ... ktop-video.
I would perhaps go that way?
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.
Top
xineg
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 126
Joined: Tue Mar 14, 2006 10:03 am
Location: Australia.

  • Quote

Post by xineg » Fri Mar 28, 2025 9:56 am

elover
elover wrote:
xineg wrote: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/megaco ... ktop-video.
I would perhaps go that way?
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?
Top
NeddySeagoon
Administrator
Administrator
User avatar
Posts: 56085
Joined: Sat Jul 05, 2003 9:37 am
Location: 56N 3W

  • Quote

Post by NeddySeagoon » Fri Mar 28, 2025 10:20 am

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.
Top
elover
Apprentice
Apprentice
Posts: 181
Joined: Wed Nov 20, 2019 12:32 pm
Location: Spain

  • Quote

Post by elover » Fri Mar 28, 2025 12:31 pm

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/sup ... 0d74/Linux

card: DeckLink 8k pro G2
KEY: 13104906


lspci -v

Code: Select all

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: Select all

[   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.
Top
elover
Apprentice
Apprentice
Posts: 181
Joined: Wed Nov 20, 2019 12:32 pm
Location: Spain

  • Quote

Post by elover » Fri Mar 28, 2025 1:31 pm

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: Select all

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: Select all

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: Select all

# 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
}


Top
NeddySeagoon
Administrator
Administrator
User avatar
Posts: 56085
Joined: Sat Jul 05, 2003 9:37 am
Location: 56N 3W

  • Quote

Post by NeddySeagoon » Fri Mar 28, 2025 3:10 pm

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.
Top
Post Reply

8 posts • Page 1 of 1

Return to “Unsupported Software”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic