2 个不稳定版本
0.2.0 | 2023 年 4 月 18 日 |
---|---|
0.1.1 | 2022 年 8 月 5 日 |
#1238 在 硬件支持
290KB
6.5K SLoC
该库包含 IEEE 1394 总线连接的 RME Fireface 系列型号的协议实现。
Fireface 系列
RME GmbH 于 2004 年推出 Fireface 800 作为其在 IEEE 1394 总线上的第一款音频和音乐单元产品。它归类为早期型号,以及 2007 年推出的 Fireface 400,它们具有相似的协议,该协议简单地使用异步写入事务来配置内部功能。
后一种型号包括 Fireface UFX(2011 年推出)、Fireface UCX(2012 年推出)和 Fireface 802(2014 年推出)。后一种型号采用 4 字节命令机制来配置内部 DSP 功能。
后一种型号还支持通用串行总线 (USB),因此假设在连接到 USB 时,4 字节命令可以通过 USB 控制数据包传输。此外,该包支持 IEEE 1394 总线作为后端。
ALSA fireface 驱动程序
Linux 声音子系统,即 ALSA,提供可加载的内核模块(snd-fireface
)作为设备的驱动程序。驱动程序维护音频帧和 MIDI 消息的等时数据包流,因为其他内部功能,如数字信号处理,可以直接由用户空间应用程序操作。
该包是对运行时程序的补充实现,以满足其目的。
依赖项
这是依赖项列表。
glib 和 hinawa crate 需要一些底层系统库
Linux FireWire 子系统的功能通过 hinawa crate 和库调用,以与 IEEE 1394 总线中的节点进行通信,因此该 crate 不可移植。
支持的型号
这是目前支持的型号列表。
- Fireface 800
- Fireface 400
- Fireface UCX
- Fireface 802
欢迎为
- Fireface UFX
该包的状态
该库由 ALSA GObject Introspection 团队 为 snd-firewire-ctl-services 项目开发和维护,目前尚不稳定。其中包含的 Rust 元素可能不兼容。
许可证
该库在尊重反向工程条款的情况下,根据 GNU Lesser General Public License v3.0 或更高版本 发布。
支持
如果发现任何问题,请在此处提交:https://github.com/alsa-project/snd-firewire-ctl-services/。
免责声明
协议的实现是通过逆向工程完成的;通过嗅探连接到目标设备的 IEEE 1394 总线,并分析设备与硬件供应商提供的驱动程序之间的通信。由于开发者使用了黑盒,因此可能无法与您的设备一起使用。
工具
一些程序位于 'src/bin' 目录下。
ff-config-rom-parser.rs
该程序解析 RME 定制的配置 ROM 内容,并打印信息。
如果没有命令行参数,它将打印帮助信息并退出。
$ cargo run --bin ff-config-rom-parser
Usage:
ff-config-rom-parser CDEV | "-"
where:
CDEV: the path to special file of firewire character device, typically '/dev/fw1'.
"-" use STDIN for the content of configuration ROM to parse. It should be aligned to big endian.
请使用 firewire 字符设备参数运行。
$ cargo run --bin ff-config-rom-parser /dev/fw1
...
依赖关系
约 7MB
约 152K SLoC