Using FireWire on a Raspberry Pi
After learning Apple killed off FireWire (IEEE 1394) support in macOS 26 Tahoe, I started looking at alternatives for old FireWire equipment like hard drives, DV cameras, and A/V gear.
I own an old Canon GL1 camera, with a 'DV' port. I could plug that into an old Mac (like the dual G4 MDD above) with FireWire—or even a modern Mac running macOS < 26, with some dongles—and transfer digital video footage between the camera and an application like Final Cut Pro.
But with Apple killing off support, and my desire to have a modern, supported hardware solution, I turned to Linux and dvgrab .
Linux will likely drop support for IEEE 1394 in 2029, but at least that gives me three more years!
On a Raspberry Pi, I can plug in this GeeekPi Mini PCIe HAT, and connect a StarTech Mini PCIe FireWire adapter. This allows the Pi to recognize the FireWire controller:
$ lspci 0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21) 0001:01:00.0 PCI bridge: Texas Instruments XIO2213A/B/XIO2221 PCI Express to PCI Bridge [Cheetah Express] (rev 01) 0001:02:00.0 FireWire (IEEE 1394): Texas Instruments XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (rev 01) 0002:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21) 0002:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
But to use it, you have to recompile the Linux kernel with FireWire support, then configure the Pi's PCIe bus for 32-bit DMA support, since old FireWire controllers like the TI XIO2213A and VIA VT6315N don't support 64-bit access.
Recompile the Linux Kernel with Firewire support
Recompile the Linux kernel, enabling the following features:
... continue reading