如何使用 udevadm 修复无法识别的 USB 设备

如何使用 udevadm 修复无法识别的 USB 设备

我无法让 midi 控制器(钢琴键盘)在树莓派上工作。它可以在我的 Linux 笔记本电脑上运行,另一个 MIDI 键盘也可以在 pi 上运行。它列在 下lsusb,所以我知道供应商/型号 ID,但不知道amidi -l或下aconnect -i。 pi 也有一个几年前的版本。所以我猜测他们udev还不知道这个 USB 设备。我已经发现 udev 使用一些带有很多 USB 设备的内部数据库。但我还找不到向 udev 数据库添加新 USB 设备的方法。

我只看到很多关于如何添加 udev 规则的教程,但我想那是别的东西。我需要告诉系统这个供应商/型号 ID 是一个 MIDI 控制器。

这是如何运作的?

答案1

udevd只负责在 中创建符号链接/dev,在创建或删除设备时运行其他程序等。如果您在 ALSA 中看不到该设备,无论您使用 做什么udevadm,您都将无法以这种方式识别它。

内核对硬件的识别被烘焙到相应的模块中。特别是对于 USB,有一些模式可以对供应商和设备 ID 以及其他内容进行编码。您可以找出特定模块在使用时会触发哪些模式modinfo

因此,在您的情况下,RaspPi 很可能没有适用于您的钢琴键盘的最新模块 - 要么该模块已经存在,但不包含您的钢琴键盘标识符,或者甚至该模块可能不存在。

因此将RaspPi上的内核升级到最新版本。如果这不能解决问题,请确定对笔记本电脑上的键盘做出反应的模块(为此,您可以使用udevadm,或仅使用lsmod)。然后看看modinfoRaspPi 上相应模块的说明。

相关内容