Descobri que 0x1130 para o atributo idVendor deve ser apenas 1130. Não é necessário sinalizá-lo como hexadecimal. Problema resolvido.
Eu tenho uma estação meteorológica IROX Pro-X e estou executando o software wview weather no Ubuntu 12.04.
Eu o tenho usado no meu velho laptop por alguns meses sem problemas, mas estou tentando executá-lo em uma placa Beaglebone para reduzir o consumo de energia, etc.
No meu laptop eu tenho uma regra do udev que cria um dispositivo tty para ele quando ele é iniciado ou está conectado. Isso porque o programa de configuração precisa ter uma visão consistente de onde o dispositivo está. A regra funciona de maneira perfeita e consistente.
Eu criei wview para o beaglebone, mas a regra do udev não funciona, então estou apontando o software para o dispositivo bruto. Eu preciso da regra do udev para criar um nome de dispositivo consistente, pois ocasionalmente acho que o nome do dispositivo mudou.
O que estou perdendo - ou o udev está quebrado em armários rodando Ubuntu? O fornecedor e o ID do dispositivo estão sendo detectados corretamente, mas o dispositivo não foi criado.
Minha regra em /etc/udev/rules.d/te923.rules é simples.
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0x1130" ATTRS{idProduct}=="6801", SYMLINK+="ttyWeather", MODE:="0666"
Quando executo o teste do udevadm, obtenho:
root@omap:/sys/bus/usb/devices/1-1/usb_device/usbdev1.5# udevadm test -a -p /devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1
run_command: calling: test
adm_test: version 175
This program is for debugging only, it does not run any program,
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.
parse_file: reading '/lib/udev/rules.d/40-gnupg.rules' as rules file
... other parse_file lines with standard rules deleted ... THe USB Vendor and device ID are bei
parse_file: reading '/lib/udev/rules.d/95-udev-late.rules' as rules file
parse_file: reading '/etc/udev/rules.d/te923.rules' as rules file
udev_rules_new: rules use 33264 bytes tokens (2772 * 12 bytes), 17116 bytes buffer
udev_rules_new: temporary index used 20520 bytes (1026 * 20 bytes)
udev_device_new_from_syspath: device 0x40300748 has devpath '/devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1'
udev_device_new_from_syspath: device 0x402fb6d0 has devpath '/devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1'
udev_device_read_db: device 0x402fb6d0 filled with db file data
udev_rules_apply_to_event: MODE 0664 /lib/udev/rules.d/50-udev-default.rules:55
udev_rules_apply_to_event: IMPORT builtin 'usb_id' /lib/udev/rules.d/50-udev-default.rules:56
udev_builtin_add_property: ID_VENDOR=1130
udev_builtin_add_property: ID_VENDOR_ENC=1130
udev_builtin_add_property: ID_VENDOR_ID=1130
udev_builtin_add_property: ID_MODEL=
udev_builtin_add_property: ID_MODEL_ENC=\x20
udev_builtin_add_property: ID_MODEL_ID=6801
udev_builtin_add_property: ID_REVISION=0302
udev_builtin_add_property: ID_SERIAL=1130_
udev_builtin_add_property: ID_BUS=usb
udev_builtin_add_property: ID_USB_INTERFACES=:030000:
udev_device_new_from_syspath: device 0x402fc4b0 has devpath '/devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1'
udev_device_new_from_syspath: device 0x402fc970 has devpath '/devices/platform/omap/musb-ti81xx/musb-hdrc.1'
udev_device_new_from_syspath: device 0x402fcce0 has devpath '/devices/platform/omap/musb-ti81xx'
udev_device_new_from_syspath: device 0x402fd038 has devpath '/devices/platform/omap'
udev_device_new_from_syspath: device 0x402fd328 has devpath '/devices/platform'
udev_event_execute_rules: no node name set, will use kernel supplied name 'bus/usb/001/019'
udev_node_add: creating device node '/dev/bus/usb/001/019', devnum=189:18, mode=0664, uid=0, gid=0
udev_node_mknod: preserve file '/dev/bus/usb/001/019', because it has correct dev_t
udev_node_mknod: preserve permissions /dev/bus/usb/001/019, 020664, uid=0, gid=0
node_symlink: preserve already existing symlink '/dev/char/189:18' to '../bus/usb/001/019'
udev_device_update_db: created db file '/run/udev/data/c189:18' for '/devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1'
ACTION=-p
BUSNUM=001
DEVICE=/proc/bus/usb/001/019
DEVNAME=/dev/bus/usb/001/019
DEVNUM=019
DEVPATH=/devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_MODEL=
ID_MODEL_ENC=\x20
ID_MODEL_ID=6801
ID_REVISION=0302
ID_SERIAL=1130_
ID_USB_INTERFACES=:030000:
ID_VENDOR=1130
ID_VENDOR_ENC=1130
ID_VENDOR_ID=1130
MAJOR=189
MINOR=18
PRODUCT=1130/6801/302
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=6
USEC_INITIALIZED=83307186210
Descobri que 0x1130 para o atributo idVendor deve ser apenas 1130. Não é necessário sinalizá-lo como hexadecimal. Problema resolvido.