2015-02-11 4 views
0

Я запускаю среду chroot Linux на устройстве Android, и я пытаюсь установить связь с микроконтроллером Atmel atmega2560 (Arduino Mega производным). Выполнение "Ls -ld/DEV/ttyACM0" показывает следующие разрешения для модема:Правило Udev не применяется

crw------- 1 root root 166, 0 Feb 11 22:28 /dev/ttyACM0 

"lsusb" говорит мне:

Bus 003 Devices: ID 03eb:204b Atmel Corp. LUFA USB to Serial Adpater Project 

«udevadm Информация --attribute прогулка --name = ttyACM0" говорит:

Udevadm info starts with the device specified by the devpath and then 
walks up the chain of parent devices. It prints for every device 
found, all possible attributes in the udev rules key format. 
A rule to match, can be composed by the attributes of the device 
and the attributes from one single parent device. 

    looking at device '/devices/platform/sunxi_hcd_host0/usb3/3-1/3-1:1.0/tty/ttyACM0': 
    KERNEL=="ttyACM0" 
    SUBSYSTEM=="tty" 
    DRIVER=="" 

    looking at parent device '/devices/platform/sunxi_hcd_host0/usb3/3-1/3-1:1.0': 
    KERNELS=="3-1:1.0" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="cdc_acm" 
    ATTRS{bInterfaceClass}=="02" 
    ATTRS{bmCapabilities}=="6" 
    ATTRS{bInterfaceSubClass}=="02" 
    ATTRS{bInterfaceProtocol}=="01" 
    ATTRS{bNumEndpoints}=="01" 
    ATTRS{supports_autosuspend}=="1" 
    ATTRS{bAlternateSetting}==" 0" 
    ATTRS{bInterfaceNumber}=="00" 

    looking at parent device '/devices/platform/sunxi_hcd_host0/usb3/3-1': 
    KERNELS=="3-1" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bDeviceProtocol}=="00" 
    ATTRS{devpath}=="1" 
    ATTRS{idVendor}=="03eb" 
    ATTRS{speed}=="12" 
    ATTRS{bNumInterfaces}==" 2" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bMaxPacketSize0}=="8" 
    ATTRS{busnum}=="3" 
    ATTRS{devnum}=="20" 
    ATTRS{configuration}=="" 
    ATTRS{bMaxPower}=="200mA" 
    ATTRS{authorized}=="1" 
    ATTRS{bmAttributes}=="c0" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{maxchild}=="0" 
    ATTRS{bcdDevice}=="8888" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{quirks}=="0x0" 
    ATTRS{serial}=="55330343534351415012" 
    ATTRS{version}==" 1.10" 
    ATTRS{urbnum}=="12" 
    ATTRS{manufacturer}=="RRD (www.ru" 
    ATTRS{removable}=="unknown" 
    ATTRS{idProduct}=="204b" 
    ATTRS{bDeviceClass}=="02" 
    ATTRS{product}=="RUMBA - ATmega 2560 co" 

    looking at parent device '/devices/platform/sunxi_hcd_host0/usb3': 
    KERNELS=="usb3" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bDeviceProtocol}=="00" 
    ATTRS{devpath}=="0" 
    ATTRS{idVendor}=="1d6b" 
    ATTRS{speed}=="12" 
    ATTRS{bNumInterfaces}==" 1" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bMaxPacketSize0}=="64" 
    ATTRS{authorized_default}=="1" 
    ATTRS{busnum}=="3" 
    ATTRS{devnum}=="1" 
    ATTRS{configuration}=="" 
    ATTRS{bMaxPower}==" 0mA" 
    ATTRS{authorized}=="1" 
    ATTRS{bmAttributes}=="e0" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{maxchild}=="1" 
    ATTRS{bcdDevice}=="0304" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{quirks}=="0x0" 
    ATTRS{serial}=="sunxi_hcd_host0" 
    ATTRS{version}==" 1.10" 
    ATTRS{urbnum}=="777" 
    ATTRS{manufacturer}=="Linux 3.4.39 sunxi_hcd-hcd" 
    ATTRS{removable}=="unknown" 
    ATTRS{idProduct}=="0001" 
    ATTRS{bDeviceClass}=="09" 
    ATTRS{product}=="sunxi_hcd host driver" 

    looking at parent device '/devices/platform/sunxi_hcd_host0': 
    KERNELS=="sunxi_hcd_host0" 
    SUBSYSTEMS=="platform" 
    DRIVERS=="sunxi_hcd_host0" 

    looking at parent device '/devices/platform': 
    KERNELS=="platform" 
    SUBSYSTEMS=="" 
    DRIVERS=="" 

Таким образом, я создал файл '/etc/udev/rules.d/99-arduino.rules', который содержит:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="204b", MODE:="0666" 

В попытке разрешить разрешение на чтение и запись для моего пользователя. I не может просто запустить мое приложение с правами root, мне нужно владение ttyACM * (обратите внимание, что я также попробовал OWNER = "myusername" вместо MODE: = "0666").

ответ

0

Оказывается, мне просто нужно было выполнить «перезапуск службы udev», и все это внезапно заработало. Раньше я пробовал «udevadm control -reload-rules», «udevadm control -reload», «udevadm control trigger» и перезапуск системы, ни одна из которых не работала.

Смежные вопросы