Wissensdatenbank
Digital Devices > Digital Devices Support > Wissensdatenbank

Suchbegriff(e)


MAX S8 4/8 "No MXL5XX found!" Troubleshooting

Lösung

MAX S8 4/8 "MXL5XX" Tuner Card Troubleshooting

MAX S8 4/8 · MXL5XX · DVB-S2 · Linux kernel driver

Platform: Ubuntu 24 LTS  |  Kernel: 6.8.x  |  Driver: dddvb (OE)

 

1.  Overview

This article covers diagnosis and resolution of a common failure mode where one or more Digital Devices MAX S8 tuner cards fail to initialise at boot. The symptom is I2C timeout errors in dmesg with the MXL5XX tuner chip not being detected, while other cards on the same system initialise correctly.

The ddbridge driver is an out-of-tree (OE) kernel module. It is not part of the mainline Linux kernel and must be built and installed separately from the dddvb project.

 

2.  Symptoms in dmesg

Run the following to see relevant log lines:

dmesg | grep ddbridge | grep -E 'registering|fail|timeout'

 

Failing card — what you will see

ddbridge 0000:01:00.0: I2C timeout, card 0, port 0, link 0

ddbridge 0000:01:00.0: I2C timeout, card 0, port 0, link 0

ddbridge 0000:01:00.0: I2C timeout, card 0, port 0, link 0

ddbridge 0000:01:00.0: No MXL5XX found!

ddbridge 0000:01:00.0: port_attach on port 0 failed

ddbridge 0000:01:00.0: fail3

ddbridge 0000:01:00.0: fail2

ddbridge 0000:01:00.0: fail1

ddbridge 0000:01:00.0: fail0

ddbridge 0000:01:00.0: fail

 

Working card — what you should see

ddbridge 0000:81:00.0: Read mxl_fw from link 0

ddbridge 0000:81:00.0: Set fmode link 0 = 1

ddbridge 0000:81:00.0: DVB: registering adapter 0 frontend 0 (MXL5XX)...

ddbridge 0000:81:00.0: DVB: registering adapter 1 frontend 0 (MXL5XX)...

Key difference: a working card logs 'Read mxl_fw from link 0' followed by adapter registrations. A failing card never reaches firmware upload and only shows I2C timeouts.

 

Card status at a glance — real-world example

Address

NUMA Node

Status

Result

0000:01:00.0

CPU 1 / Node 0

❌  FAILING

I2C timeouts — MXL5XX not found

0000:81:00.0

CPU 2 / Node 1

✅  OK

8 adapters registered (MXL5XX)

0000:82:00.0

CPU 2 / Node 1

✅  OK

8 adapters registered (MXL5XX)

 

⚠  The OE- suffix in dmesg (e.g. ddbridge(OE-)) means the module is a zombie — it was unloaded but got stuck. This requires a full server reboot to clear and cannot be resolved with rmmod.

 

3.  Step 1 — Check if the Tuner Chip is Physically Alive

Before assuming hardware failure, confirm whether the MXL5XX tuner chip is actually responding. This is the most important diagnostic step — it separates a dead card from a driver/slot problem.

 

3.1  Install i2c-tools

sudo apt install i2c-tools

 

3.2  List I2C buses

sudo i2cdetect -l | grep ddbridge

Expected output for a failing card (note: working cards do not expose I2C buses because firmware takes over):

i2c-4    i2c    ddbridge_00.0.0    I2C adapter

i2c-77   i2c    ddbridge_00.0.0    I2C adapter

⚠  Two entries with the same name is normal for ddbridge — they are the same bus exposed twice.

 

3.3  Scan the bus for devices

sudo i2cdetect -y 4

Expected output if the chip is alive:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00:                         -- -- -- -- 0c -- -- -- 

40:  -- -- -- -- -- -- -- -- -- -- -- -- -- 4d -- --

60:  60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

 

Address

Chip

Role

0x0c

LNBH

LNB voltage controller

0x4d

CXD2099

CI (Common Interface) controller

0x60

MXL5XX

Main tuner chip — must be present for card to work

 

Critical: address 0x60 must be present. If it is missing, the MXL5XX chip is dead or unpowered and the card needs physical inspection or replacement.

 

3.4  Read a byte directly from the chip

sudo i2ctransfer -y 4 r1@0x60

If the chip is alive this returns:

0x00

✔  If i2ctransfer returns 0x00, the chip is alive and responding. The failure is in the driver's firmware upload process, not in the hardware. The card is not dead.

 

4.  Step 2 — Driver and Module Diagnostics

4.1  Check module load state

lsmod | grep -E 'ddbridge|dvb|cxd'

Look at the use count (third column). A value of -1 means the module is in a zombie unload state and the server must be rebooted.

 

4.2  Check PCIe and NUMA topology

sudo lspci -D | grep -i 'digital devices'

cat /sys/bus/pci/devices/0000:01:00.0/numa_node

Cards on different NUMA nodes (different CPU sockets) may have interrupt routing issues. Cards on NUMA node 1 (CPU 2) are generally more reliable on dual-socket servers.

 

4.3  Check IOMMU and interrupt routing

sudo dmesg | grep -E 'DMAR|IOMMU|iommu' | head -20

cat /proc/interrupts | grep ddbridge

If IRQ remapping is active (IR-IO-APIC entries) and the failing card is on a different NUMA node to the working cards, cross-NUMA interrupt routing is likely causing the I2C timeouts.

 

4.4  Check BIOS version

sudo dmidecode -t bios | grep -E 'Version|Release'

⚠  A BIOS older than 5 years on a dual-socket server is a likely contributor to PCIe slot and NUMA interrupt routing issues.

 

5.  Step 3 — Fixes (in order of preference)

Fix 1 — Disable IOMMU (try first, no hardware change needed)

sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=off"

sudo update-grub && sudo reboot

This disables Intel VT-d/IOMMU which is enabled by default in Ubuntu kernels from 22.04 onwards. Effective when the issue is caused by cross-NUMA interrupt remapping blocking DMA completions.

 

Fix 2 — Disable MSI interrupts for ddbridge

sudo modprobe ddbridge fmode=1 msi=0

Forces legacy INTx interrupts instead of MSI. Make permanent by creating a modprobe config:

echo 'options ddbridge fmode=1 msi=0' | sudo tee /etc/modprobe.d/ddbridge.conf

sudo update-initramfs -u && sudo reboot

 

Fix 3 — Move card to a CPU 2 PCIe slot (most reliable fix)

If software fixes do not resolve the issue, move the failing card from a CPU 1 slot into any available CPU 2 slot. This has been confirmed to resolve I2C timeout failures caused by NUMA node 0 interrupt routing problems.

        Power off the server completely and wait 30 seconds

        Move the failing card to a CPU 2 PCIe slot

        Power on and verify: dmesg | grep ddbridge | grep -E 'registering|fail|timeout'

✔  To confirm the slot is the problem and not the card, swap two cards between a CPU 1 and CPU 2 slot. If the previously working card then fails in the CPU 1 slot, the slot is confirmed faulty.

 

Fix 4 — Update BIOS

If the BIOS is from 2015 or earlier, a firmware update from the motherboard manufacturer may resolve ACPI and PCIe slot initialisation bugs affecting the CPU 1 domain.

 

6.  How to Reload the ddbridge Module Cleanly

⚠  The ddbridge module cannot be unloaded if any process has DVB devices open. Stop tvheadend, oscam, minisatip, or any other DVB client before attempting a reload.

 

Stop services

sudo systemctl stop tvheadend oscam minisatip 2>/dev/null

Unbind cards from driver

echo '0000:01:00.0' | sudo tee /sys/bus/pci/devices/0000:01:00.0/driver/unbind

echo '0000:81:00.0' | sudo tee /sys/bus/pci/devices/0000:81:00.0/driver/unbind

echo '0000:82:00.0' | sudo tee /sys/bus/pci/devices/0000:82:00.0/driver/unbind

Unload modules

sudo rmmod ddbridge cxd2099 dvb_core mc

Reload

sudo depmod -a

sudo modprobe ddbridge fmode=1 msi=0

 

7.  Quick Reference

 

Check all cards

dmesg | grep ddbridge | grep -E 'registering|fail|timeout'

Full ddbridge log

dmesg | grep ddbridge

Module state

lsmod | grep -E 'ddbridge|dvb|cxd'

List I2C buses

sudo i2cdetect -l | grep ddbridge

Scan I2C bus

sudo i2cdetect -y <bus_num>

Probe chip directly

sudo i2ctransfer -y <bus_num> r1@0x60

NUMA node of card

cat /sys/bus/pci/devices/0000:XX:00.0/numa_node

PCIe topology

sudo lspci -t

IOMMU status

sudo dmesg | grep -i iommu | head -10

BIOS version

sudo dmidecode -t bios | grep -E 'Version|Release'

Slot inventory

sudo dmidecode -t slot | grep -E 'Designation|Usage|Bus'

DVB devices

ls /dev/dvb/

 

 

 

This article is based on a live troubleshooting session on a dual-socket Intel server running Ubuntu 24 LTS with kernel 6.8.0 and the dddvb out-of-tree driver. The MXL5XX chip-alive check via i2ctransfer is the key technique that separates hardware failure from driver/slot issues.

 
War dieser Artikel hilfreich? ja / nein
Artikeldetails
Artikel-ID: 197
Kategorie: Linux
Datum (erstellt): 06-03-2026 09:57:18
Aufrufe: 105
Bewertung (Stimmen): Artikel wurde noch nicht bewertet (0)

 
« Zurück

Datenschutzerklärung | Impressum