gpt4 book ai didi

linux-device-driver - 在 Linux 中编写 USB 设备驱动程序

转载 作者:行者123 更新时间:2023-12-01 11:05:55 31 4
gpt4 key购买 nike

ALSA 或 libusb api 是两个选择;两者对我来说都是新的;自从我编写设备驱动程序以来已经有好几年了,它是在 80 年代为 Unix 编写的,但我确实知道我可以弄清楚,一旦我知道要使用什么工具,我猜它们仍然使用 C;我看过 libusb api;非常好;但我对 ALSA 项目一无所知;似乎他们正准备将模块放入内核以实现这一目标。

这是一个一般性问题,但我感兴趣的设备是 Roland GR-55;它具有来自同一 USB 连接的 MIDI 和音频;它有 Windows 和 MAC 驱动程序,但没有 Linux。

您更喜欢使用哪些库或工具?

我要编写设备驱动程序还是可加载内核模块 (LKM)?

最佳答案

libusb 很有用并且易于启动和运行。我建议您从那里开始,特别是如果您已经有一段时间没有编写 Linux 驱动程序了。使用 libusb 了解 Roland GR-55 的信令协议(protocol)是什么,并做一些实验。

USB 在同一条物理线路上支持多种类型的逻辑连接。设备可能会提供数据和控制管道,您需要在开始使用适当的驱动程序之前将其映射出来。

正如我所说,libusb 很容易上手,如果您只想编写一个控制接口(interface)并存储来自设备的原始数据,几天后您可能会得到一些有用的东西。但是,如果您想将设备与现有的音乐软件一起使用,ALSA 是您的不二之选。此外,通过更新 ALSA,您将支持更大的社区,因为您可以将您的工作合并到 ALSA 项目中。

从头开始编写内核模块可能很有趣,但 USB 有点像野兽,可能不是一个理想的开始。使用 ALSA,您将拥有一个框架来指导您,而无需为定义您自己的 API 操心。

关于linux-device-driver - 在 Linux 中编写 USB 设备驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973425/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com