我有两个系统,一个运行Ubutu 14.04,一个运行raspbian。当我将USB打印机连接到我的Ubuntu机器时,我可以从udevadm获得大量信息:
:~$ udevadm info -q property --export -n /dev/usb/lp2
DEVNAME='/dev/usb/lp2'
DEVPATH='/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.1/3-2.1.1/3-2.1.1:1.0/usbmisc/lp2'
ID_BUS='usb'
ID_MODEL='DYMO_LabelWriter_450'
ID_MODEL_ENC='DYMO\x20LabelWriter\x20450'
ID_MODEL_ID='0020'
ID_REVISION='0112'
ID_SERIAL='DYMO_DYMO_LabelWriter_450_09041413125694'
ID_SERIAL_SHORT='09041413125694'
ID_TYPE='printer'
ID_USB_DRIVER='usblp'
ID_USB_INTERFACES=':070102:'
ID_USB_INTERFACE_NUM='00'
ID_VENDOR='DYMO'
ID_VENDOR_ENC='DYMO'
ID_VENDOR_ID='0922'
MAJOR='180'
MINOR='2'
SUBSYSTEM='usbmisc'
USEC_INITIALIZED='873171356'
但是当我在另一个系统(raspbian)上执行相同的命令时,我几乎得不到任何信息:
:~$ udevadm info -q property --export -n /dev/usb/lp0
DEVNAME='usb/lp0'
DEVPATH='/devices/platform/bcm2708_usb/usb1/1-1/1-1.4/1-1.4:1.0/usbmisc/lp0'
MAJOR='180'
MINOR='0'
SUBSYSTEM='usbmisc'
UDEV_LOG='3'
在第二个(raspbian)系统上,当我连接它时,我可以在系统日志中看到有关设备的信息:
Jun 3 17:24:06 raspberryPi kernel: [ 2517.897717] usb 1-1.4: new full-speed USB device number 9 using dwc_otg
Jun 3 17:24:06 raspberryPi kernel: [ 2518.001031] usb 1-1.4: New USB device found, idVendor=0922, idProduct=0020
Jun 3 17:24:06 raspberryPi kernel: [ 2518.001049] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 3 17:24:06 raspberryPi kernel: [ 2518.001061] usb 1-1.4: Product: DYMO LabelWriter 450
Jun 3 17:24:06 raspberryPi kernel: [ 2518.001072] usb 1-1.4: Manufacturer: DYMO
Jun 3 17:24:06 raspberryPi kernel: [ 2518.001083] usb 1-1.4: SerialNumber: 12092215544125
Jun 3 17:24:06 raspberryPi kernel: [ 2518.003113] usblp 1-1.4:1.0: usblp0: USB Bidirectional printer dev 9 if 0 alt 0 proto 2 vid 0x0922 pid 0x0020
鉴于udev没有报告任何有用的东西(没有序列号,供应商,类型等),似乎不可能在raspbian上编写udev规则。
我也尝试使用lsusb来获取有关该设备的信息,但是:
:~$ sudo lsusb -D /dev/usb/lp0
Cannot open /dev/usb/lp0
然而lsusb -v确实提供了我期望的一些信息(以及一些我不关心其他设备的信息):
:~$ lsusb -v
....
Bus 001 Device 008: ID 0922:0020 Dymo-CoStar Corp. LabelWriter 450
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0922 Dymo-CoStar Corp.
idProduct 0x0020 LabelWriter 450
bcdDevice 1.12
iManufacturer 1 DYMO
iProduct 2 DYMO LabelWriter 450
iSerial 3 14040809283557
....
所以我知道这些信息是可用的,而不是udev。 关于如何向udev提供此信息的任何想法?
修改 我在一个全新的Ubuntu 14.04安装上尝试了相同的命令,它报告了与raspbian设备相同的短信息列表。所以这告诉我在第一个Ubuntu 14.04盒子上发生了一些有趣的事情,这在其他设备上没有发生。