将 ttyACM 分配给 USB

将 ttyACM 分配给 USB

我有一个与此类似的问题ttyUSB?不,ttyACM。如何将 USB 设备分配给 ttyACM,而不是 ttyUSB?

但我的有点困难。

我最近购买了 Feather RP2040 Prop-Maker 设备,例如

我有一段时间使用 ESP32 和 Arduino 设备。我将其连接到我的计算机并从 Arduino IDE 获取读数。因此我知道设备和电缆工作正常。

然而,它也可以用作微型 USB 设备。手册指出可以向其上传文件(它可以播放音乐,并且您应该通过 USB 复制文件)。

但是,当我插入设备时,它不被识别为 USB 设备。

打电话lsusb我看到设备在那里(显然因为我可以从 Arduino IDE 中的串行监视器读取)

Bus 001 Device 022: ID 239a:8131 Adafruit Feather RP2040 Prop-Maker

调用ls -l /dev/serial/by-id它说明了这一点

lrwxrwxrwx 1 root root 13 Sep 16 16:57 usb-Adafruit_Feather_RP2040_Prop-Maker_DF6260785F590937-if00 -> ../../ttyACM0

所以该设备被理解为ACM设备。我认为这是有道理的,因为我可以对其进行编程并从串行连接中读取。

但是,我不知道如何将其连接为 USB 设备以将文件移动到那里。我看了一眼日记,看到这样一条消息:

kernel: usb 1-6.2.4: new full-speed USB device number 23 using xhci_hcd
kernel: usb 1-6.2.4: New USB device found, idVendor=239a, idProduct=8131, bcdDevice= 1.00
kernel: usb 1-6.2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 1-6.2.4: Product: Feather RP2040 Prop-Maker
kernel: usb 1-6.2.4: Manufacturer: Adafruit
kernel: usb 1-6.2.4: SerialNumber: DF6260785F590937
kernel: cdc_acm 1-6.2.4:1.0: ttyACM0: USB ACM device
mtp-probe[191599]: checking bus 1, device 23: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6.2/1-6.2.4"
mtp-probe[191599]: bus: 1, device: 23 was not an MTP device
mtp-probe[191600]: checking bus 1, device 23: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6.2/1-6.2.4"
mtp-probe[191600]: bus: 1, device: 23 was not an MTP device

我能找到的唯一解决方案是创建一个像这样的 udev 规则:

#Adafruit RP2040 Prop-Maker Feather
ATTR{idVendor}=="293a", ATTR{idProduct}=="8131", GOTO="libmtp_rules_end"

我不再收到该错误了,这确实有效。但是该设备仍然没有显示在 lsblk 等中。我无法安装任何东西。

我应该指出,我购买了 Adafruit Soundboard,它是该音板的前身。在那里我可以插入电缆并复制文件。但它不可编程,因此我认为当您想以两种不同的方式使用该设备时(对 ACM 设备进行编程和在 USB 设备上复制文件),会变得很困难。

如果有帮助的话,我可以“切换”事物,复制文件并切换回可编程连接。但我怎样才能告诉我的系统将该设备解释为 USB 驱动器

我正在使用 Manjaro (Arch) Linux。 (我在 Windows 上尝试了同样的操作,但没有成功)。

有任何想法吗?

答案1

好吧,我找到了另一个确实有帮助的文档。事实证明我的系统上无事可做。这不像我需要司机之类的。

事实上,设备本身也有连接方式。另一份手册指出:

要进入引导加载程序,请按住 BOOT/BOOTSEL 按钮(上面以红色突出显示),并在继续按住它的同时(不要松开!),按下并释放重置按钮(上面以蓝色突出显示)。继续按住 BOOT/BOOTSEL 按钮,直到出现 RPI-RP2 驱动器!

因此,如果有人遇到这个问题,这实际上是(简单)的解决方案!

相关内容