Meine erste selbstgebastelte udev.rule...

15/01/2013 - 14:12 von Edzard Egberts | Report spam
... funktioniert natürlich nicht. ;o(

Ich möchte einen Arduino auf "/dev/ttyACM5" festlegen, weil sich das
Ding gelegentlich als "/dev/ttyACM0" und "/dev/ttyACM1" gleichzeitig
eintràgt und dann kein Zugriff mehr geht. Also unter Fedora im
Verzeichnis "/etc/udev/rules.d" die Datei "20-arduino2.rules" angelegt
mit folgendem Inhalt

SUBSYSTEM=="usb_device", ACTION=="add", SYSFS{idProduct}=="0043",
SYSFS{idVendor}=="2341", NAME="/dev/ttyACM5"

Das ist wahrscheinlich nur knapp daneben (ich tippe auf SUBSYSTEM), aber
wie geht es?

Die lsusb-Deviceinfos:

Bus 001 Device 005: ID 2341:0043
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x2341
idProduct 0x0043
bcdDevice 0.01
iManufacturer 1 Arduino (www.arduino.cc)
iProduct 2
iSerial 220 64934333135351812290
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 62
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 0
CDC Header:
bcdCDC 10.01
CDC ACM:
bmCapabilities 0x06
sends break
line coding and serial state
CDC Union:
bMasterInterface 0
bSlaveInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 255
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Device Status: 0x0000
(Bus Powered)
 

Lesen sie die antworten

#1 Thomas Bächler
15/01/2013 - 14:31 | Warnen spam
Am 15.01.2013 14:12, schrieb Edzard Egberts:
... funktioniert natürlich nicht. ;o(

Ich möchte einen Arduino auf "/dev/ttyACM5" festlegen, weil sich das
Ding gelegentlich als "/dev/ttyACM0" und "/dev/ttyACM1" gleichzeitig
eintràgt und dann kein Zugriff mehr geht. Also unter Fedora im
Verzeichnis "/etc/udev/rules.d" die Datei "20-arduino2.rules" angelegt
mit folgendem Inhalt

SUBSYSTEM=="usb_device", ACTION=="add", SYSFS{idProduct}=="0043",
SYSFS{idVendor}=="2341", NAME="/dev/ttyACM5"

Das ist wahrscheinlich nur knapp daneben (ich tippe auf SUBSYSTEM), aber
wie geht es?



* SYSFS{...} gibts nicht mehr, siehe ATTR bzw. ATTRS.
* Du kannst keine Namen mit NAME= setzen, der Name ist fest vom Kernel
vorgegeben und kann nicht gesetzt werden, siehe SYMLINK+=. (Eine
Ausnahme sind hier Netzwerk-Schnittstellen, bei denen NAME= nach wie vor
zulàssig ist.)

Als weitere Hilfe: udevadm monitor --help, udevadm info --help (hier
insbesondere --attribute-walk).

Mehr Infos u.A. in 'man udev'.

Ähnliche fragen