Estou trabalhando com uma placa IMX6, executando um kernel Linux, u-boot e rootfs que foram gerados a partir do yocto. Eu usei uma das imagens principais. core-image-minimal-dev para construir a imagem do kernel. Eu adicionei no usbutils como um image_install dentro da receita core-image-minimal-dev.
Eu postei uma pergunta anterior procurando suporte para obter energia para a porta USB2.0, e isso já foi resolvido. O que estou procurando agora é fazer com que o dispositivo seja reconhecido como um VCP. Eu preciso conectar um dispositivo externo ao USB2.0 e ser reconhecido como uma conexão tty. Neste momento, quando eu ligar o dispositivo em tudo que eu recebo é.
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
nenhuma alteração ocorre no diretório / dev / como deveria. Eu estou esperando para ver algo nos moldes de / dev / ttyUSB0. Onde eu posso escrever um aplicativo que irá se comunicar em série usando essa porta.
através da minha pesquisa me deparei com várias referências que os drivers port com port virtuais são pré-construídos no kernel do linux. Eu encontrei um conjunto de instruções no site do chip FTDI com algumas instruções.
link
Eu passei pelas etapas para adicionar uma nova regra para o FTDI VCP.
Eu peguei o número do idproduct e o número do idvendor de quando o dispositivo estava conectado. Como eu não tenho o comando udevcontrol_reload rules carregado no sistema operacional, acabei de fazer um ciclo de energia. Infelizmente não houve sorte.
Em seguida, fiz alterações no kernel por meio da configuração do menu.
bitbake -c menuconfig virtual / kernel
USB_SERIAL_CONSOLE já estava ativado no fórum. Foi rotulado como suporte ao Conversor serial USB
Então eu fui e ativar USB_SERIAL_CP210X que foi rotulado como família USB CP210x de controladores de ponte UART.
quando eu pressionei, recebi um pop up.
Esse recurso depende de outro que tenha sido configurado como um módulo. Como resultado, esse recurso será criado como um módulo.
depois que o USB CP210x foi marcado com um
saiu da configuração do menu e começou a compilar o kernel com
bitbake -f -c compila virtual / kernel
seguido por bitbake core-image-minimal-dev
Ainda não vejo um vcp em / dev /
Eu visitei o banco de dados do driver do kernel do linux e o fato de ele relatar que a família de controladores do UART Bridge USB CP210x não tem dependências. Então eu não entendo porque o popup disse que tinha outras dependências.
A próxima coisa que eu encontrei na minha pesquisa foi a necessidade de carregar o módulo no linux via insmod ou mknod. Então eu olhei para isso. Cada uma das referências que encontrei estava me direcionando para compilar alguns arquivos .ko que estavam localizados no diretório lib / modules / ... / serial /. No entanto, passando pelo rootfs para o sistema operacional, não consigo encontrar um diretório de módulos. seja por ~ / lib / ou por / usr / lib
(UPDATE)
Então eu configurei o defconfig para que
config_usb_serial
config_usb_serial_ftdi_sio
são ambos carregados e não como módulos.
Eu encontrei algumas informações úteis que incluem a criação de um mknod e 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
para mim eu gostaria de usar o driver cp2104, em vez do genérico. O que estou tendo problemas agora é que eu não tenho um diretório de módulos. Dentro do diretório / lib / onde eu deveria ter um diretório de módulos, não há um. Alguma idéia de por que estou perdendo o diretório de módulos?
Alguma sugestão?