Software Archive
Read-only legacy content
17061 Discussions

Edison Arduino - Windows .inf Vendor Id's don't match kernel USB

Bill_W_
Beginner
400 Views

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?

 

0 Kudos
1 Reply
Bill_W_
Beginner
401 Views

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.

Bill

0 Kudos
Reply