I'm working with an IMX6 board, running a linux kernel, u-boot, and rootfs that were generated from yocto. I used one of the core images. core-image-minimal-dev to build the kernel image. I added in usbutils to as an image_install within the core-image-minimal-dev recipe.
I posted a previous question looking for support on getting power to the USB2.0 port, and that has now been addressed. What I'm looking to accomplish now is to get the device recognizable as a VCP. I need to connect a external device to the USB2.0 and be recognized as a tty connection. At this point when I plug the device in all i get is.
new full-speed USB device number 5 using ci_hdrc usb 2-1: New USB device found, idVendor-10c4, idProduct=ea60 usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 2-1: Product: CP2104 USB to UART Bridge Controller usb 2-1: Manufacturer: Silicon Labs usb2-1: SerialNumber: 013C2C09
no changes occur in /dev/ directory as it should. I'm hoping to see something along the lines of /dev/ttyUSB0. Where I can then write an application that will communicate over serial using that port.
through my research I came across several references that virtual com port drivers are pre-built into the linux kernel. I found a set of instructions on the FTDI chip website with some instructions.
I went through the steps to add a new rule for the FTDI VCP.
I grabbed the idproduct number and idvendor number from when the device was plugged in. As I don't have the command udevcontrol_reload rules loaded into the os, I just did a power cycle. Unfortunately there was no luck.
Next I made changes to the kernel via menu configuration.
bitbake -c menuconfig virtual/kernel USB_SERIAL_CONSOLE was already enabled on the board. Was labeled USB Serial Converter support So I went and enable USB_SERIAL_CP210X which was labeled as USB CP210x family of UART Bridge Controllers. when I pressed, , I received a pop up.
This feature depends on another which has been configured as a module. As a result, this feature will be built as a module.
after USB CP210x was marked with an exited out of menu config and proceeded to compile the kernel with bitbake -f -c compile virtual/kernel followed by bitbake core-image-minimal-dev
I still don't see a vcp populate in /dev/
I visited the linux kernel driver database and its reporting the USB CP210x family of UART Bridge Controllers has no dependences. So I don't understand why the popup said it had other dependencies.
The next thing I found in my research was the need to load the module into linux either via insmod or mknod. So I looked into that. Each of the references I found were directing me to compile some .ko files that were located in lib/modules/... /serial/ directory. However, going through the rootfs for the os, I can't find a modules directory. either by ~/lib/ or by /usr/lib
So I've configured the defconfig so that
are both to be loaded and not as modules.
I found some helpful information that includes creating a mknod and then insmod.
$ mknod /dev/ttyUSB0 c 188 0 $ insmod /lib/modules/4.1.15-1.0.0+g3924425/kernel/drivers/usb/serial/usbserial.ko vendor=0x067b product=0x2303
for me I would want to use the cp2104 driver, instead of the generic. What I'm having issues with now is that I don't have a modules directory. Within the /lib/ directory where I should have a modules directory, there isn't one. Any insight into why im missing the modules directory?