The dddvb package contains the Linux driver for all Digital Devices DVB cards (Octopus, Cine, MAX, RESI, Octopus NET). It is an out-of-tree driver, which means it is compiled against the kernel you are running. Every time the kernel is updated, the driver has to be compiled again – otherwise your cards disappear after a reboot.
DKMS (Dynamic Kernel Module Support) automates exactly that. You register the driver source once, and from then on DKMS rebuilds and installs it automatically whenever a new kernel is installed.
This guide uses the current release dddvb 0.9.41. If a newer version is available at github.com/DigitalDevices/dddvb/tags, simply replace 0.9.41 with that version number everywhere below.
0.9.41
Contents
sudo
/usr/src
/var/lib/dkms
If you just want the driver installed, use the script below. It performs every step of this guide: installs the prerequisites, downloads the source, writes dkms.conf, and registers, builds and installs the module.
dkms.conf
sudo wget -O dddvb-dkms-install.sh http://linuxsupport.digital-devices.eu/u_scr/dkms/dddvb-dkms-install.sh sudo chmod +x dddvb-dkms-install.sh sudo ./dddvb-dkms-install.sh
Options:
sudo ./dddvb-dkms-install.sh # install 0.9.41 (default) sudo ./dddvb-dkms-install.sh 0.9.40 # install a different release sudo ./dddvb-dkms-install.sh 0.9.41 --kernel-dvb-core # keep the kernel's own dvb-core sudo ./dddvb-dkms-install.sh --uninstall # remove every dddvb version
The complete script, if you prefer to copy it by hand or review it first:
#!/bin/bash # # dddvb-dkms-install.sh # --------------------------------------------------------------------------- # Download, register and build the Digital Devices "dddvb" driver with DKMS, # so that every future kernel update rebuilds the driver automatically. # # Usage: sudo ./dddvb-dkms-install.sh [VERSION] [--kernel-dvb-core] # sudo ./dddvb-dkms-install.sh --uninstall # # sudo ./dddvb-dkms-install.sh # install 0.9.41 (default) # sudo ./dddvb-dkms-install.sh 0.9.40 # install a different release # sudo ./dddvb-dkms-install.sh 0.9.41 --kernel-dvb-core # # keep the kernel's own dvb-core # sudo ./dddvb-dkms-install.sh --uninstall # remove every dddvb version # # Tested with DKMS 3.x on Debian/Ubuntu; also handles Fedora and Arch. # Digital Devices support - https://support.digital-devices.eu # --------------------------------------------------------------------------- set -euo pipefail VERSION="0.9.41" KERNEL_DVB_CORE="no" UNINSTALL="no" PKG="dddvb" # Every module this package can produce. Used to clean up leftovers. ALL_MODULES="dvb-core ddbridge octonet drxk lnbp21 stv090x stv6110x cxd2099 \ tda18271c2dd stv0367dd tda18212dd cxd2843 stv6111 stv0910 lnbh25 mxl5xx" # The 13 frontend/tuner modules, in the order they are written to dkms.conf. FRONTENDS="drxk lnbp21 stv090x stv6110x cxd2099 tda18271c2dd stv0367dd \ tda18212dd cxd2843 stv6111 stv0910 lnbh25 mxl5xx" say() { printf '\n\033[1;32m==> %s\033[0m\n' "$*"; } warn() { printf '\n\033[1;33m!!! %s\033[0m\n' "$*"; } die() { printf '\n\033[1;31mERROR: %s\033[0m\n' "$*" >&2; exit 1; } for arg in "$@"; do case "$arg" in --kernel-dvb-core) KERNEL_DVB_CORE="yes" ;; --uninstall) UNINSTALL="yes" ;; --help|-h) sed -n '2,19p' "$0"; exit 0 ;; -*) die "Unknown option: $arg" ;; *) VERSION="$arg" ;; esac done [ "$(id -u)" -eq 0 ] || die "Please run this script as root: sudo $0 $*" # --------------------------------------------------------------------------- # Helper: unregister every dddvb version DKMS currently knows about. # This must run BEFORE a new dkms.conf is written, so that DKMS deletes the # modules listed in the OLD configuration. # --------------------------------------------------------------------------- remove_registered_versions() { command -v dkms >/dev/null || return 0 local v for v in $(dkms status -m "$PKG" 2>/dev/null | sed -n "s|^$PKG[/,] *\([^,]*\),.*|\1|p" | sort -u); do say "Unregistering ${PKG}/${v} from DKMS" dkms remove "${PKG}/${v}" --all || true done } # --------------------------------------------------------------------------- # Helper: delete dddvb modules left over in /lib/modules/*/updates/ # Old dvb-core.ko or octonet.ko files here will be loaded instead of the # kernel's own modules and are a classic source of "it used to work" reports. # --------------------------------------------------------------------------- purge_stale_modules() { local found=0 d m f for d in /lib/modules/*/updates /lib/modules/*/updates/dkms; do [ -d "$d" ] || continue for m in $ALL_MODULES; do for f in "$d/$m.ko" "$d/$m.ko.zst" "$d/$m.ko.xz" "$d/$m.ko.gz"; do if [ -f "$f" ]; then echo " removing $f" rm -f "$f" found=1 fi done done done if [ "$found" = "1" ]; then for d in /lib/modules/*/; do [ -d "${d}kernel" ] && depmod "$(basename "$d")" 2>/dev/null || true done fi } # --------------------------------------------------------------------------- # Uninstall mode # --------------------------------------------------------------------------- if [ "$UNINSTALL" = "yes" ]; then say "Removing all dddvb DKMS modules" remove_registered_versions say "Cleaning leftover module files" purge_stale_modules say "Source trees left in place (delete manually if you want them gone):" ls -d /usr/src/${PKG}-* 2>/dev/null || echo " none" echo "" echo "Done. Reboot to make sure the in-kernel driver is used again." exit 0 fi SRC="/usr/src/${PKG}-${VERSION}" TARBALL="https://github.com/DigitalDevices/dddvb/archive/refs/tags/${VERSION}.tar.gz" # --------------------------------------------------------------------------- # 1. Install DKMS, a compiler and the headers of the running kernel # --------------------------------------------------------------------------- say "Installing build prerequisites" if command -v apt-get >/dev/null; then apt-get update apt-get install -y dkms build-essential wget "linux-headers-$(uname -r)" elif command -v dnf >/dev/null; then dnf install -y dkms kernel-devel kernel-headers gcc make wget elif command -v pacman >/dev/null; then pacman -S --needed --noconfirm dkms base-devel wget linux-headers else die "Unsupported distribution. Install dkms, gcc, make and the kernel headers manually, then re-run." fi [ -d "/lib/modules/$(uname -r)/build" ] || die \ "No kernel headers found for the running kernel $(uname -r). Install the matching linux-headers package (or reboot into the kernel you have headers for) and run this script again." # --------------------------------------------------------------------------- # 2. Fetch the source into /usr/src/dddvb-<version> # --------------------------------------------------------------------------- say "Downloading dddvb ${VERSION}" if [ -d "$SRC" ]; then echo " $SRC already exists - reusing it." else wget -q --show-progress -O "/tmp/${PKG}-${VERSION}.tar.gz" "$TARBALL" \ || die "Download failed. Check that tag ${VERSION} exists: https://github.com/DigitalDevices/dddvb/tags" tar -xf "/tmp/${PKG}-${VERSION}.tar.gz" -C /usr/src rm -f "/tmp/${PKG}-${VERSION}.tar.gz" [ -d "$SRC" ] || die "The archive did not unpack to $SRC" fi # --------------------------------------------------------------------------- # 3. Clean up any previous installation (before the new dkms.conf is written) # --------------------------------------------------------------------------- remove_registered_versions say "Cleaning leftover module files from earlier installations" purge_stale_modules # --------------------------------------------------------------------------- # 4. Generate dkms.conf # --------------------------------------------------------------------------- say "Writing ${SRC}/dkms.conf" { echo "# Generated by dddvb-dkms-install.sh on $(date -u '+%Y-%m-%d %H:%M UTC')" echo "PACKAGE_NAME=\"${PKG}\"" echo "PACKAGE_VERSION=\"${VERSION}\"" echo 'AUTOINSTALL="yes"' echo "" if [ "$KERNEL_DVB_CORE" = "yes" ]; then echo 'MAKE[0]="make -j$(nproc) KERNEL_DVB_CORE=y KDIR=/lib/modules/${kernelver}/build kernelver=${kernelver}"' echo 'CLEAN="make KERNEL_DVB_CORE=y clean"' else echo 'MAKE[0]="make -j$(nproc) KDIR=/lib/modules/${kernelver}/build kernelver=${kernelver}"' echo 'CLEAN="make clean"' fi echo "" i=0 # dvb-core and octonet are only built when dddvb uses its own dvb-core if [ "$KERNEL_DVB_CORE" != "yes" ]; then echo "BUILT_MODULE_NAME[$i]=\"dvb-core\"" echo "BUILT_MODULE_LOCATION[$i]=\"dvb-core\"" echo "DEST_MODULE_LOCATION[$i]=\"/updates/dkms\"" echo "" i=$((i + 1)) fi echo "BUILT_MODULE_NAME[$i]=\"ddbridge\"" echo "BUILT_MODULE_LOCATION[$i]=\"ddbridge\"" echo "DEST_MODULE_LOCATION[$i]=\"/updates/dkms\"" echo "" i=$((i + 1)) if [ "$KERNEL_DVB_CORE" != "yes" ]; then echo "BUILT_MODULE_NAME[$i]=\"octonet\"" echo "BUILT_MODULE_LOCATION[$i]=\"ddbridge\"" echo "DEST_MODULE_LOCATION[$i]=\"/updates/dkms\"" echo "" i=$((i + 1)) fi for m in $FRONTENDS; do echo "BUILT_MODULE_NAME[$i]=\"${m}\"" echo "BUILT_MODULE_LOCATION[$i]=\"frontends\"" echo "DEST_MODULE_LOCATION[$i]=\"/updates/dkms\"" echo "" i=$((i + 1)) done } > "${SRC}/dkms.conf" # --------------------------------------------------------------------------- # 5. Register, build and install with DKMS # --------------------------------------------------------------------------- say "dkms add ${PKG}/${VERSION}" dkms add "${PKG}/${VERSION}" say "dkms build ${PKG}/${VERSION}" dkms build "${PKG}/${VERSION}" say "dkms install ${PKG}/${VERSION}" dkms install "${PKG}/${VERSION}" --force # --------------------------------------------------------------------------- # 6. Report # --------------------------------------------------------------------------- say "Result" dkms status -m "$PKG" if [ -d /sys/firmware/efi ] && command -v mokutil >/dev/null 2>&1 \ && mokutil --sb-state 2>/dev/null | grep -qi enabled; then warn "Secure Boot is ENABLED on this machine - unsigned DKMS modules will not load." cat <<'EOF' Either enroll a signing key: sudo apt install shim-signed sudo update-secureboot-policy --new-key sudo update-secureboot-policy --enroll-key # reboot and confirm the key in the blue MOK Manager screen or turn Secure Boot off in the BIOS/UEFI setup. EOF fi cat <<'EOF' Done. Reboot, or load the driver right now: sudo modprobe ddbridge dmesg | grep -i ddbridge ls /dev/dvb/ EOF
Everything after this point explains the same procedure step by step, so you can run it manually or understand what the script does.
Installing DKMS also pulls in the compiler toolchain (gcc, make). The kernel headers are a separate package and are listed explicitly below, because a missing header package is the most common reason for a failed build.
gcc
make
sudo apt update sudo apt install dkms build-essential wget linux-headers-$(uname -r)
sudo dnf install dkms kernel-devel kernel-headers gcc make wget
sudo pacman -S dkms base-devel wget linux-headers
Check that DKMS is there and that the headers for your running kernel are in place:
dkms --version ls -d /lib/modules/$(uname -r)/build
No such file or directory
DKMS expects the source of a package called dddvb at version 0.9.41 to live in /usr/src/dddvb-0.9.41. The directory name must match package-version exactly.
dddvb
/usr/src/dddvb-0.9.41
cd /usr/src sudo wget -O dddvb-0.9.41.tar.gz https://github.com/DigitalDevices/dddvb/archive/refs/tags/0.9.41.tar.gz sudo tar -xf dddvb-0.9.41.tar.gz sudo rm dddvb-0.9.41.tar.gz ls -d /usr/src/dddvb-0.9.41
-O
wget
0.9.41.tar.gz
tar
dddvb-0.9.41
dkms.conf tells DKMS how to build the package and which modules come out of the build. Create it inside the source directory:
sudo nano /usr/src/dddvb-0.9.41/dkms.conf
Paste the following content. It is valid for dddvb 0.9.41 and builds all 16 modules the package provides.
# dkms.conf for the Digital Devices dddvb driver, version 0.9.41 # Place as /usr/src/dddvb-0.9.41/dkms.conf PACKAGE_NAME="dddvb" PACKAGE_VERSION="0.9.41" AUTOINSTALL="yes" MAKE[0]="make -j$(nproc) KDIR=/lib/modules/${kernelver}/build kernelver=${kernelver}" CLEAN="make clean" BUILT_MODULE_NAME[0]="dvb-core" BUILT_MODULE_LOCATION[0]="dvb-core" DEST_MODULE_LOCATION[0]="/updates/dkms" BUILT_MODULE_NAME[1]="ddbridge" BUILT_MODULE_LOCATION[1]="ddbridge" DEST_MODULE_LOCATION[1]="/updates/dkms" BUILT_MODULE_NAME[2]="octonet" BUILT_MODULE_LOCATION[2]="ddbridge" DEST_MODULE_LOCATION[2]="/updates/dkms" BUILT_MODULE_NAME[3]="drxk" BUILT_MODULE_LOCATION[3]="frontends" DEST_MODULE_LOCATION[3]="/updates/dkms" BUILT_MODULE_NAME[4]="lnbp21" BUILT_MODULE_LOCATION[4]="frontends" DEST_MODULE_LOCATION[4]="/updates/dkms" BUILT_MODULE_NAME[5]="stv090x" BUILT_MODULE_LOCATION[5]="frontends" DEST_MODULE_LOCATION[5]="/updates/dkms" BUILT_MODULE_NAME[6]="stv6110x" BUILT_MODULE_LOCATION[6]="frontends" DEST_MODULE_LOCATION[6]="/updates/dkms" BUILT_MODULE_NAME[7]="cxd2099" BUILT_MODULE_LOCATION[7]="frontends" DEST_MODULE_LOCATION[7]="/updates/dkms" BUILT_MODULE_NAME[8]="tda18271c2dd" BUILT_MODULE_LOCATION[8]="frontends" DEST_MODULE_LOCATION[8]="/updates/dkms" BUILT_MODULE_NAME[9]="stv0367dd" BUILT_MODULE_LOCATION[9]="frontends" DEST_MODULE_LOCATION[9]="/updates/dkms" BUILT_MODULE_NAME[10]="tda18212dd" BUILT_MODULE_LOCATION[10]="frontends" DEST_MODULE_LOCATION[10]="/updates/dkms" BUILT_MODULE_NAME[11]="cxd2843" BUILT_MODULE_LOCATION[11]="frontends" DEST_MODULE_LOCATION[11]="/updates/dkms" BUILT_MODULE_NAME[12]="stv6111" BUILT_MODULE_LOCATION[12]="frontends" DEST_MODULE_LOCATION[12]="/updates/dkms" BUILT_MODULE_NAME[13]="stv0910" BUILT_MODULE_LOCATION[13]="frontends" DEST_MODULE_LOCATION[13]="/updates/dkms" BUILT_MODULE_NAME[14]="lnbh25" BUILT_MODULE_LOCATION[14]="frontends" DEST_MODULE_LOCATION[14]="/updates/dkms" BUILT_MODULE_NAME[15]="mxl5xx" BUILT_MODULE_LOCATION[15]="frontends" DEST_MODULE_LOCATION[15]="/updates/dkms"
What the settings mean:
PACKAGE_NAME
PACKAGE_VERSION
AUTOINSTALL="yes"
MAKE[0]
${kernelver}
KDIR
kernelver
BUILT_MODULE_NAME[n]
BUILT_MODULE_LOCATION[n]
dvb-core
ddbridge
frontends
DEST_MODULE_LOCATION[n]
/lib/modules/<kernel>/updates/dkms/
MAKE="make -j 4 KERNELDIR=/lib/modules/${kernelver}/build"
KERNELDIR
The 16 modules are:
octonet
cxd2099
cxd2843
drxk
lnbh25
lnbp21
mxl5xx
stv0367dd
stv090x
stv0910
stv6110x
stv6111
tda18212dd
tda18271c2dd
stv0367
tda18212
*dd
Register the source tree with DKMS:
sudo dkms add dddvb/0.9.41
Compile it against the running kernel:
sudo dkms build dddvb/0.9.41
Install the resulting modules and refresh the module dependency database:
sudo dkms install dddvb/0.9.41
dkms install
/updates/dkms/
1. DKMS should report the package as installed for your kernel:
dkms status -m dddvb
dddvb/0.9.41, 6.8.0-79-generic, x86_64: installed
2. The 16 modules should be present:
ls /lib/modules/$(uname -r)/updates/dkms/
3. Load the driver and confirm the version really comes from DKMS:
sudo modprobe ddbridge modinfo ddbridge | grep -E 'filename|version'
filename: /lib/modules/6.8.0-79-generic/updates/dkms/ddbridge.ko.zst version: 0.9.41
filename
.../kernel/drivers/media/pci/ddbridge/
.../updates/dkms/
sudo depmod -a
4. Your card should show up in the kernel log and as DVB adapters:
dmesg | grep -i ddbridge ls /dev/dvb/
A reboot at this point is recommended, so that you confirm the card also comes up cleanly on a cold start.
Because AUTOINSTALL="yes" is set, installing a new kernel package triggers DKMS automatically: the driver is compiled for the new kernel and installed before you reboot. Nothing has to be done by hand.
Two conditions must be met for this to work:
linux-headers-generic
linux-headers-amd64
After a kernel upgrade you can verify that both kernels are covered:
dddvb/0.9.41, 6.8.0-79-generic, x86_64: installed dddvb/0.9.41, 6.8.0-84-generic, x86_64: installed
If a kernel is missing from that list, build for all installed kernels with:
sudo dkms autoinstall
You can trigger a rebuild at any time, for example after installing missing headers:
sudo apt install linux-headers-$(uname -r) sudo dkms build dddvb/0.9.41 --force sudo dkms install dddvb/0.9.41 --force
To build for a kernel that is not currently running, name it explicitly:
sudo dkms install dddvb/0.9.41 -k 6.8.0-84-generic --force
/lib/modules/<kernel>/updates/dkms/
Example: moving from 0.9.39 to 0.9.41.
# 1. unregister the old version - this deletes its modules sudo dkms remove dddvb/0.9.39 --all # 2. make sure nothing was left behind ls /lib/modules/$(uname -r)/updates/dkms/ # 3. install the new version (steps 2-4 of this guide) cd /usr/src sudo wget -O dddvb-0.9.41.tar.gz https://github.com/DigitalDevices/dddvb/archive/refs/tags/0.9.41.tar.gz sudo tar -xf dddvb-0.9.41.tar.gz sudo rm dddvb-0.9.41.tar.gz sudo nano /usr/src/dddvb-0.9.41/dkms.conf # PACKAGE_VERSION="0.9.41" sudo dkms add dddvb/0.9.41 sudo dkms build dddvb/0.9.41 sudo dkms install dddvb/0.9.41 # 4. reboot, then confirm the new version is loaded modinfo ddbridge | grep -E 'filename|version'
If step 2 still lists .ko files after the removal, delete them manually and run sudo depmod -a. The install script at the top of this page does this cleanup for you.
.ko
To go back to the driver that ships with your kernel:
sudo dkms remove dddvb/0.9.41 --all ls /lib/modules/$(uname -r)/updates/dkms/ # should no longer list dddvb modules sudo rm -rf /usr/src/dddvb-0.9.41 sudo depmod -a sudo reboot
dvb-core.ko
octonet.ko
/lib/modules/<kernel>/updates/
With Secure Boot enabled, the kernel refuses to load modules that are not signed with a trusted key. The build and install succeed, but the driver never loads and dmesg shows something like Loading of unsigned module is rejected or Key was rejected by service.
dmesg
Loading of unsigned module is rejected
Key was rejected by service
Check the current state:
mokutil --sb-state
You have two options.
Debian/Ubuntu can generate a Machine Owner Key and use it to sign every DKMS module automatically:
sudo apt install shim-signed mokutil sudo update-secureboot-policy --new-key sudo update-secureboot-policy --enroll-key # you will be asked for a one-time password, then reboot
During the next boot the blue MOK Manager screen appears. Choose Enroll MOK → Continue → Yes, enter the one-time password and let the machine boot. Then rebuild once so the modules get signed:
sudo dkms build dddvb/0.9.41 --force sudo dkms install dddvb/0.9.41 --force
Turn Secure Boot off in the BIOS/UEFI setup of the server. This is usually the simplest choice for a headend machine in a rack.
By default dddvb brings its own dvb-core and it replaces the one from your kernel. That is the configuration Digital Devices tests and recommends.
On very recent mainline kernels you may prefer to keep the kernel’s dvb-core, for example to avoid replacing a subsystem used by other tuner hardware in the same machine. The driver supports this through make KERNEL_DVB_CORE=y.
make KERNEL_DVB_CORE=y
DTV_INPUT
If you want this variant, use this dkms.conf instead. It builds 14 modules – no dvb-core, no octonet:
# dkms.conf for the Digital Devices dddvb driver, version 0.9.41 # Variant: build against the KERNEL'S own dvb-core (make KERNEL_DVB_CORE=y) # Place as /usr/src/dddvb-0.9.41/dkms.conf PACKAGE_NAME="dddvb" PACKAGE_VERSION="0.9.41" AUTOINSTALL="yes" MAKE[0]="make -j$(nproc) KERNEL_DVB_CORE=y KDIR=/lib/modules/${kernelver}/build kernelver=${kernelver}" CLEAN="make KERNEL_DVB_CORE=y clean" BUILT_MODULE_NAME[0]="ddbridge" BUILT_MODULE_LOCATION[0]="ddbridge" DEST_MODULE_LOCATION[0]="/updates/dkms" BUILT_MODULE_NAME[1]="drxk" BUILT_MODULE_LOCATION[1]="frontends" DEST_MODULE_LOCATION[1]="/updates/dkms" BUILT_MODULE_NAME[2]="lnbp21" BUILT_MODULE_LOCATION[2]="frontends" DEST_MODULE_LOCATION[2]="/updates/dkms" BUILT_MODULE_NAME[3]="stv090x" BUILT_MODULE_LOCATION[3]="frontends" DEST_MODULE_LOCATION[3]="/updates/dkms" BUILT_MODULE_NAME[4]="stv6110x" BUILT_MODULE_LOCATION[4]="frontends" DEST_MODULE_LOCATION[4]="/updates/dkms" BUILT_MODULE_NAME[5]="cxd2099" BUILT_MODULE_LOCATION[5]="frontends" DEST_MODULE_LOCATION[5]="/updates/dkms" BUILT_MODULE_NAME[6]="tda18271c2dd" BUILT_MODULE_LOCATION[6]="frontends" DEST_MODULE_LOCATION[6]="/updates/dkms" BUILT_MODULE_NAME[7]="stv0367dd" BUILT_MODULE_LOCATION[7]="frontends" DEST_MODULE_LOCATION[7]="/updates/dkms" BUILT_MODULE_NAME[8]="tda18212dd" BUILT_MODULE_LOCATION[8]="frontends" DEST_MODULE_LOCATION[8]="/updates/dkms" BUILT_MODULE_NAME[9]="cxd2843" BUILT_MODULE_LOCATION[9]="frontends" DEST_MODULE_LOCATION[9]="/updates/dkms" BUILT_MODULE_NAME[10]="stv6111" BUILT_MODULE_LOCATION[10]="frontends" DEST_MODULE_LOCATION[10]="/updates/dkms" BUILT_MODULE_NAME[11]="stv0910" BUILT_MODULE_LOCATION[11]="frontends" DEST_MODULE_LOCATION[11]="/updates/dkms" BUILT_MODULE_NAME[12]="lnbh25" BUILT_MODULE_LOCATION[12]="frontends" DEST_MODULE_LOCATION[12]="/updates/dkms" BUILT_MODULE_NAME[13]="mxl5xx" BUILT_MODULE_LOCATION[13]="frontends" DEST_MODULE_LOCATION[13]="/updates/dkms"
Or, with the script from the top of this page:
sudo ./dddvb-dkms-install.sh 0.9.41 --kernel-dvb-core
sudo dkms remove dddvb/0.9.41 --all
Your kernel headers for kernel ... cannot be found
sudo apt install linux-headers-$(uname -r)
Bad return status for module build
/var/lib/dkms/dddvb/0.9.41/build/make.log
Module ... .ko not found in the build directory
KERNEL_DVB_CORE=y
modprobe ddbridge
dmesg | tail
modinfo ddbridge | grep filename
/dev/dvb/
dmesg | grep -i ddbridge
lspci -nn | grep -i "Digital Devices"
65535 packets lost due to low DMA performance
When you open a support ticket, please attach:
dkms status
uname -a
lsb_release -a
/var/lib/dkms/dddvb/<version>/build/make.log
lspci -vnn | grep -A3 -i "Digital Devices"
Contributions and alternative approaches sent to us by customers.
Copy both files into the same directory and run ./install_dkms.sh from there. It performs the complete DKMS run, assuming DKMS is already installed (sudo apt install dkms).
./install_dkms.sh
sudo apt install dkms
wget http://linuxsupport.digital-devices.eu/u_scr/@kai/dkms.conf wget http://linuxsupport.digital-devices.eu/u_scr/@kai/install_dkms.sh chmod +x install_dkms.sh ./install_dkms.sh
If you find any mistake or have something to add, please write to the author and the article will be corrected.
Palii Dmytropaliydmn@digitaldevices.deLast updated: 21 September 2026 – dddvb 0.9.41
« Zurück
Datenschutzerklärung | Impressum