Updated 6-14-2011Part one: Firewire audio on AVLinux 4.2/AVLinux 5.0 with the JuJu firewire driver stack.1a. AVLinux 5.0 users only: Disable transparent hugepage support.
As root, edit /etc/default/grub and add
transparent_hugepage=never
to the GRUB_CMDLINE_LINUX_DEFAULT line.
Then, run (as root)
update-grub
...and reboot.
AVLinux 5 users will also want to set CPU frequency scaling to 'performance' by right-clicking the CPU scaling applet in the system tray. To boot with the CPU governor set to performance, edit /usr/share/trayfreq/trayfreq.config.
1. Boot up your computer, then turn on and plug in your firewire device(s).
2. Start Jack Control (qjackctl) and enter these settings:
Driver: firewire
Priority: 70
Frames/Period: 64
Sample Rate: 44100
Periods/Buffer: 3
Timeout (msec): 2000
The rest of the settings can be left at their defaults.

(These settings should yield about 10ms actual round trip latency, which is generally considered negligible. It is possible to run some devices at even lower latencies, but doing so will greatly increase CPU usage, and isn't officially supported anyway.)
If you want to use a higher sampling rate, it is a good idea to increase the Frames/period setting, as a higher sampling rate will lower latency and increase CPU load. If you set your sampling rate to 96000, set Frames/Period to 128 and you should still have round trip latencies of just under 10ms.
3. Click 'OK' to save your settings, then click 'start' to start the Jack audio server. In a second or two, your devices should sync up. Fire up the LinuxDSP Jack Patchbay and you should see all the available inputs and outputs. Here's a screenshot of the patchbay with two PreSonus Firepods connected:

4. Finally, start up your favorite Jack-aware application and you should be happily on your way!
----------------------------------------------------------------------------------------------
Part two: Firewire audio on AVLinux with a realtime kernel and the legacy firewire drivers.Some devices are not yet functional on the new firewire stack, and some hardware configurations will not perform well without a realtime kernel. If you are having performance issues, or if you just prefer things the way they used to be, here's how you can get it all set up:
1. Install a realtime kernel:
2.6.33.7.2-rt30 is the latest realtime kernel and is a good choice unless you need the nvidia binary drivers.
2.6.31.12-rt21 is a rock-solid kernel and will work with the nvidia drivers.
You can find the kernels here:
http://www.remastersys.com/forums/index.php?topic=1243.0Unzip the kernel files, then install them using gdebi. Install the kernel image first, then the headers.
2. Add 'libraw1394' to /etc/modules:
As root, edit /etc/modules and add
libraw1394
to a new line, somewhere above 'loop'. Then save and close the file.
3. Add your username to the 'disk' group:
You can easily do this through the 'User Setup' tab of the Remastersys control panel. This will give your user the ability to access the raw1394 device node, which requires root access. This comes with the obligatory 'security risk' warning.
**Note: this is defined by the presence of the following line, in /lib/udev/rules.d/91-permissions.rules:
KERNEL=="raw1394", GROUP="disk"
This should already be there in any AVLinux installation.
4. Prioritize IRQ's:
(IRQ threading is the reason we use the RT kernel in the first place, so we might as well take advantage of it.)
As root, edit /etc/default/rtirq
The line we are interested in is RTIRQ_NAME_LIST. By default it reads:
RTIRQ_NAME_LIST="rtc snd usb i8042"
Add ohci1394 second in the list, so it looks like this:
RTIRQ_NAME_LIST="rtc ohci1394 snd usb i8042"
If you're using a laptop with PC-Card firewire controller, where a card controller is involved, the card controller's device name (usually 'yenta') should be before ohci1394 in the list.
RTIRQ_NAME_LIST="rtc yenta ohci1394 snd usb i8042"
Then save and exit.
(For a more detailed explanation, and for more IRQ tweaks, read this very informative page:
http://subversion.ffado.org/wiki/IrqPriorities)
6. Reboot:
At this point, all settings should be in place. With your firewire device(s) plugged in and turned on, reboot into the realtime kernel. (While rebooting with the firewire stuff plugged in sometimes causes issues when using the Juju firewire stack, it works better to have them connected when using the legacy driver stack, especially if you have several devices daisy-chained.)
7. You're ready to get Jack set up and running. For help on that, return to part one of the guide, step 2.
(Note: the AVLinux kernels are compiled with only one firewire driver stack in place. So, no module blacklisting is necessary - you can switch between the Juju firewire stack and the legacy driver stack by simply rebooting into a different kernel. The Liquorix-based kernels only include the Juju stack, while the RT kernels only include the legacy stack.)
8. (Optional - may help but it's hard to tell...) Prioritize the tasklet threads - the bottom half of your IRQ handlers.
(must be run as root)
ps -eLo pid,cmd | grep tasklet| awk '{ system("chrt -f -p 78 " $1)}'
It sets their priority to 78.
* You can choose another number if you like - it should be less than the firewire controller's priority, but higher than your Jack priority setting. 78 is a good number if you have set rtirq as described above. I find it works well to put that command in /etc/rc.local, so it is run on bootup.
----------------------------------------------------------------------------------------------
Troubleshooting:A good place to start is the command 'ffado-test ListDevices'. It should output something like this:
trulan@AVLinux:~$ ffado-test ListDevices
-----------------------------------------------
FFADO test and diagnostic utility
Part of the FFADO project -- www.ffado.org
Version: 2.999.0-
(C) 2008, Daniel Wagner, Pieter Palmers
This program comes with ABSOLUTELY NO WARRANTY.
-----------------------------------------------
=== 1394 PORT 0 ===
Node id GUID VendorId ModelId Vendor - Model
0 0x000a9200c6121078 0x00000A92 0x00010066 Presonus - PreSonus FIREPOD
1 0x000a9200c5112047 0x00000A92 0x00010066 Presonus - PreSonus FIREPOD
02553417864: Error (configrom.cpp)[ 150] initialize: Could not parse config rom of node 2 on port 0
no message buffer overruns
This will show any connected firewire devices. The 'config rom' error is normal.
For more information, run 'ffado-diag'. Please include the output of this command when asking for help.