Я работаю с платой IMX6, использую ядро linux, u-boot и rootfs, сгенерированные из yocto. Я использовал одно из основных изображений. core-image-minimal-dev для создания образа ядра. Я добавил в usbutils как image_install в рецепте core-image-minimal-dev.

Я опубликовал предыдущий вопрос о поддержке при подключении к порту USB2.0, и этот вопрос уже решен. Сейчас я хочу добиться того, чтобы устройство распознавалось как VCP. Мне нужно подключить внешнее устройство к USB2.0 и быть распознанным как tty соединение. В этот момент, когда я подключаю устройство все, что я получаю.

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

в каталоге /dev / не происходит никаких изменений, как это должно быть. Я надеюсь увидеть что-то похожее на /dev / ttyUSB0. Где я могу написать приложение, которое будет общаться через последовательный порт, используя этот порт.

в ходе моих исследований я обнаружил несколько ссылок на то, что драйверы виртуальных COM-портов предварительно встроены в ядро Linux. На сайте чипа FTDI я нашел набор инструкций с некоторыми инструкциями.

http://www.ftdichip.com/Support/Documents/AppNotes/AN_220_FTDI_Drivers_Installation_Guide_for_Linux.pdf

Я прошел шаги, чтобы добавить новое правило для VCP FTDI.

Я взял номер idproduct и idvendor с момента, когда устройство было подключено. Поскольку у меня нет команды udevcontrol_reload rules, загруженной в ОС, я просто сделал цикл питания. К сожалению, не было удачи.

Далее я внес изменения в ядро через настройку меню.

bitbake -c menuconfig virtual/kernel USB_SERIAL_CONSOLE уже был включен на плате. Был помечен как поддержка USB Serial Converter. Я пошел и включил USB_SERIAL_CP210X, который был помечен как семейство контроллеров моста UART USB CP210x. когда я нажал, я получил всплывающее окно.

Эта функция зависит от другого, который был настроен как модуль. В результате эта функция будет построена как модуль.

после того, как USB CP210x был отмечен как выход из конфигурации меню и продолжил компиляцию ядра с помощью bitbake -f -c compile virtual/kernel, за которым следует bitbake core-image-minimal-dev

Я до сих пор не вижу vcp заполнить в /dev /

Я посетил базу данных драйверов ядра Linux и сообщил, что семейство контроллеров моста UART USB CP210x не имеет зависимостей. Поэтому я не понимаю, почему всплывающее окно говорит, что у него были другие зависимости.

Следующим, что я обнаружил в своем исследовании, была необходимость загрузки модуля в linux через insmod или mknod. Так что я посмотрел на это. Каждая из ссылок, которые я нашел, указала мне на компиляцию некоторых файлов .ko, которые находились в каталоге lib/modules/ ... / serial /. Тем не менее, пройдя через rootfs для ОС, я не могу найти каталог модулей. либо ~ / lib/, либо / usr / lib

(ОБНОВИТЬ)

Итак, я настроил defconfig так, чтобы

config_usb_serial 
config_usb_serial_ftdi_sio

оба должны быть загружены, а не как модули.

Я нашел некоторую полезную информацию, которая включает создание mknod и затем 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

для меня я хотел бы использовать драйвер cp2104 вместо универсального. У меня проблемы с тем, что у меня нет каталога модулей. В каталоге /lib /, где у меня должен быть каталог модулей, его нет. Любое понимание, почему я пропускаю каталог модулей?

Какие-либо предложения?

1 ответ1

0

Во-первых, если нет причин загружать его (или его deps) как модуль, я бы посмотрел на их статическое встраивание в ядро, чтобы вам не нужно было загружать их, или смотрел на используемый вами дистрибутив и то, как он загружается. модули.

Если вы думаете, что загрузили модуль правильно, но не уверены - используйте lsmod .

Если lsmod показывает cp210, значит, модуль уже загружен, и это не ваша проблема.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .