I am not quite sure yet what to try here with udev. I am not an expert with udev rules, but I do use them. For example when I use XBees with FTDI xbee adapters, I will use a rule to create a device: /dev/ttyXBEE which I reference in the code. This takes care of issues where ttyUSBx the actual device may change numbers depending on how the devices were enumerated...
I first had to install it on the Galileo . When I plug the device into the USB port, All I see from dmesg is:
[ 1084.750197] usb 1-1: new full-speed USB device number 5 using ohci_hcd
and it appears to create an object in the /dev of 1-1
If I look at it with udevadm I see:
root@clanton:~# udevadm info --query=property --name=1-1
BUSNUM=001
DEVNAME=/dev/bus/usb/001/005
DEVNUM=005
DEVPATH=/devices/pci0000:00/0000:00:14.4/usb1/1-1
DEVTYPE=usb_device
DRIVER=usb
MAJOR=189
MINOR=4
PRODUCT=16d0/6a7/0
SUBSYSTEM=usb
TYPE=2/0/0
Now if I look at another one of these devices on my Edison board, Dmesg shows:
[ 1559.764970] usb 1-1: new full-speed USB device number 3 using dwc3-host
[ 1559.789084] usb 1-1: New USB device found, idVendor=16d0, idProduct=06a7
[ 1559.789114] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 1559.789135] usb 1-1: Product: USB2AX
[ 1559.789154] usb 1-1: Manufacturer: Xevelabs
[ 1559.789172] usb 1-1: SerialNumber: 74031303437351D02210
[ 1559.790054] usb 1-1: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 1559.797605] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
When I look at the udevadm stuff I get:
root@Edison:~# udevadm info --query=property --name ttyACM0
DEVLINKS=/dev/serial/by-id/usb-Xevelabs_USB2AX_74031303437351D02210-if00 /dev/serial/by-path/pci-0000:00:11.0-platform-dwc3-host.2-usb-0:1:1.0 /dev/ttyUSB2AX
DEVNAME=/dev/ttyACM0
DEVPATH=/devices/pci0000:00/0000:00:11.0/dwc3-host.2/usb1/1-1/1-1:1.0/tty/ttyACM0
ID_BUS=usb
ID_MODEL=USB2AX
ID_MODEL_ENC=USB2AX
ID_MODEL_ID=06a7
ID_PATH=pci-0000:00:11.0-platform-dwc3-host.2-usb-0:1:1.0
ID_PATH_TAG=pci-0000_00_11_0-platform-dwc3-host_2-usb-0_1_1_0
ID_REVISION=0001
ID_SERIAL=Xevelabs_USB2AX_74031303437351D02210
ID_SERIAL_SHORT=74031303437351D02210
ID_TYPE=generic
ID_USB_CLASS_FROM_DATABASE=Communications
ID_USB_DRIVER=cdc_acm
ID_USB_INTERFACES=:020201:0a0000:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Xevelabs
ID_VENDOR_ENC=Xevelabs
ID_VENDOR_FROM_DATABASE=MCS
ID_VENDOR_ID=16d0
MAJOR=166
MINOR=0
SUBSYSTEM=tty
TAGS=:systemd:
USEC_INITIALIZED=86775
Again unfortunately I don't know enough on why the Galileo is not trying to assign the device to use the cdc_acm driver...