After building and installing Yocto on my Arduino for Edison, the Windows device driver for "CDC Serial" no longer works with the drivers provided by Intel. I also installed ubilinux and had the same results. In \Program Files (x86)\Intel Edison Device USB driver\intc_cdcserial.inf, I see USB\VID_8087&PID_0A9E&MI_02 which does not match the hardware ID's in the Windows Device Manager. Windows Device Manager did show the same hardware ID's, VID/PID 1d6b/0104, as specified in the kernel source, linux/drivers/usb/gadget/multi.c, included in the Intel release, edison-GPL_LGPL-sources-rel1-maint-rel1-ww42-14.zip. The VID/PID 1D6B/0104 from the kernel driver source does correspond with the hardware id's found in the Windows device manager and also in the . It looks as if some of the Intel binary OS distributions must contain a non-standard version of the gadget USB drivers with the 8087/0A9E hardware ID's. I don't know how else the Windows .inf files with hardware id's 8087/0A9E would have worked. I was able to load the linux-cdc-acm.inf from the Linux Documentation by rebooting Windows and turning off the requirement for drivers to be signed. The device showed up in Device Manager, but I couldn't connect to the Edison Arduino through the serial port after installing it.
In summary, if I use a Yocto build, the gadget USB drivers wont install because the hardware ids detected by Windows Device Manager don't match the hardware ids specified in the Windows .inf. I can think of several possible workarounds such as patching the kernel drivers, changing the .inf file and forcing an unsigned driver install, possibly hacking sysfs, but there must be a cleaner solution. I must be missing something and it's probably very simple. Anyone? Am I doing something really dumb and just missing it?
Well DUH! It was something very simple.
From edison-image-rel1-maint-rel1-ww42-14, hardware ID's were specified as follows in /etc/modprobe.d/g_multi.conf:
options g_multi file=/dev/mmcblk0p9 stall=0 idVendor=0x8087 idProduct=0x0A9E iProduct=Edison iManufacturer=Intel
My bad, sorry.