No alternative text provided

πŸ”₯ Fixing dvgrab Freezes and FireWire Reboots on Linux

TL;DR: dvgrab was hanging mid-capture, and sometimes even rebooting my PC. Disabling IOMMU in BIOS solved the issue.

This is a follow-up to my previous article about digitizing Digital8 and Hi8 tapes.

While capturing videos from my Sony Handycam using dvgrab and a FireWire PCIe card, I ran into a super annoying issue:
πŸŽ₯ The recording would hang randomly mid-capture, without any error from dvgrab.
β›” Even worse, my PC would reboot shortly after β€” no logs, no warning, nothing.

At first, I couldn’t find anything helpful in the logs. But then I dug into journalctl and noticed this:

1kernel: firewire_ohci 0000:05:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0019 address=0xfeceb040 flags=0x0050]

After some digging online, it turns out this issue is related to IOMMU. IOMMU is a hardware feature that maps device-visible virtual addresses to physical addresses β€” useful for virtualization and DMA isolation. But in some configurations (especially on AMD systems), it causes kernel-level issues with FireWire.

πŸ› οΈ The Fix

I went into my BIOS, found the IOMMU setting (it was set to Auto), and disabled it.

And boom β€” no more hangs, no more reboots, no more FireWire errors in journalctl.
dvgrab now captures smoothly, every time. πŸš€

πŸ” Recap

  • Symptom: dvgrab hangs mid-capture, system reboots
  • Cause: FireWire + AMD IOMMU + Kernel DMA issues
  • Fix: Disable IOMMU in BIOS

This one change was a life saver for continuing my Digital8 digitization project.
Hope it helps someone out there struggling with a similar FireWire nightmare!


PS: I'm running Linux on a desktop PC with an AMD CPU and a PCIe FireWire card.