
π₯ 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.