我有一个设备,自定义 mp3 播放器,pid 和 vid 显示为 a011:a011。
消息
usb 1-1.1: new high-speed USB device number 4 using ehci-pci
usb 1-1.1: New USB device found, idVendor=a011, idProduct=a011
usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
usb 1-1.1: Product: Custom-Mp3
usb 1-1.1: SerialNumber: 123456789abcdef
usb 1-1.1: USB disconnect, device number 4
usb 3-3: new high-speed USB device number 2 using xhci_hcd
usb 3-3: New USB device found, idVendor=a011, idProduct=a011
usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=5
usb 3-3: Product: Custom-Mp3
usb 3-3: SerialNumber: 123456789abcdef
我可以通过选择通用大容量存储设备驱动程序在 Windows 7 中连接到此设备。它有一个可以读写的 fat32 分区。
我的系统是 Ubuntu 14。一切正常。我连接 USB 拇指驱动器,它会自动加载驱动程序并创建/dev/sdX
点。
如何将此 MP3 播放器连接到我的 Linux 电脑。如果我可以创建该/dev/sdX
点,那么我就可以安装它。
我一直在阅读并尝试使用 modprobe 并创建一个/etc/udev/rules.d/80-mp3_a011.rules
,但它还没有点击。
我想先通过命令行连接一次。
接下来我希望每次插入时都能连接。
最后,我将使用此信息为我在嵌入式系统上使用的 mdev 创建规则。
答案1
第二部分工作了。
“接下来我希望每次插入时它都能连接。”
在以下位置创建了 udev 规则:
sudo vi /etc/udev/rules.d/80-mp3_a011.rules
添加此信息只是简单地 modprobes usb-storage 并将我的 pid:vid 添加到 usb-storage new_id。
ACTION=="add", ATTRS{idVendor}=="a010", ATTRS{idProduct}=="a010", RUN+="/sbin/modprobe usb-storage" RUN+="/bin/sh -c 'echo a011 a011 > /sys/bus/usb/drivers/usb-storage/new_id'"
重新启动udev
sudo /etc/init.d/udev restart
现在,一旦我连接设备,它就会像任何其他 USB 大容量存储设备一样进行处理。
第一部分工作:
“我想先通过命令行连接一次。”
sudo echo a011 a011 > /sys/bus/usb/drivers/usb-storage/new_id
做过不是工作是因为 sudo 应用于 echo 命令而不是 new_id 文件或类似的东西。
首先更改为 root shell,然后将 PID:VID 添加到 new_id。
sudo su
echo a011 a011 > /sys/bus/usb/drivers/usb-storage/new_id