[alsa-devel] RME Fireface alsa driver

Takashi Sakamoto o-takashi at sakamocchi.jp
Tue Dec 11 21:43:44 CET 2018


Hi,

On Tue, Dec 11, 2018 at 07:51:25PM +0000, thet wrote:
> I posted this a couple of weeks ago in the alsa users list but there was
> no response. I hope someone here can help.
> 
> I have a FF400 and I have been using ffado with it.
> 
> It came to my attention that there exists a ALSA driver for the FF400
> since the midi was working over alsa and midi is not supported in the
> ffado driver.
> 
> Also my system can see the FF400 in the sound control panel without jack
> or ffado running.
> 
> I am using Mint 19 cinnamon and the liquorix kernel. (though so far I
> have not noticed any difference between the liquorix kernel and the
> generic one except pre-empt performance).
>
> I would like to try using just the alsa driver and not ffado. Since I'm
> using the alsa midi support anyway it would be less total software to
> use the alsa driver for everything - assuming it supports everything I need
> for serious music recording.
> 
> However I can't get any sound out of the FF400 using the ALSA driver -
> it works ok with FFADO though. Also the midi works - presumably using
> the alsa driver.
> 
> I have tried using alsa directly in the sound control panel, using the
> alsa output from audacious, and the alsa driver from jack.
> 
> I get an error about setting the frames/period/buffer size.
 
Please share the 'error' with your command line. It's the most
important. Furthermore, please check kernel message with journalctl(1).

> The red light on the FF400 that shows no connection to a host stays on  -
> even though the system can see it is present. This light goes off if I
> start ffado and jack, or if I start ffado mixer.
> 
> Is there a guide somewhere on how to set up the ALSA drivers for the FF400?

I left the device already[2] and can't regenerate this issue, but in my
memory the device can generate sound when the red LED turns on. 


Some registers on Fireface 400 for configuration are write-only. To
avoid interrupting userspace software such as ffado stuffs, ALSA
fireface driver is programmed not to touch such registers. This means
that the driver requires some assists of userspace.

The red LED labeled 'HOST' is put off when writing a byte to a register 
In a case of Fireface 400, 0x'0000'8010'03fc is the register. But this
includes some settings for output signal of S/PDIF in coaxial interface.
You can set the register with linux-firewire-utils[1], for example.

$ ./firewire-request /dev/fw1 write 0x0000801003fc 0x1f
(The unit allows block request for 1 byte access.)

Or install 'libhinawa1' and 'gir1.2-hinawa-2.0' package and run below
script.

```
#!/usr/bin/python3

import gi
gi.require_version('Hinawa', '2.0')
from gi.repository import Hinawa

unit = Hinawa.FwUnit()
unit.open('/dev/fw1')
unit.listen()

req = Hinawa.FwReq()
req.append(0x1f)
req.write(unit, 0x0000801003fc, 0x1f)
```

[1] https://github.com/cladisch/linux-firewire-utils
[2] http://mailman.alsa-project.org/pipermail/alsa-devel/2015-December/102261.html


Regards

Takashi Sakamoto


More information about the Alsa-devel mailing list