Включить виртуальный порт Com, последовательное соединение (обновление)
835
Michael
Я работаю с платой 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 я нашел набор инструкций с некоторыми инструкциями.
Я прошел шаги, чтобы добавить новое правило для 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.
для меня я хотел бы использовать драйвер cp2104 вместо универсального. У меня проблемы с тем, что у меня нет каталога модулей. В каталоге / lib /, где у меня должен быть каталог модулей, его нет. Любое понимание, почему я пропускаю каталог модулей?
Какие-либо предложения?
1 ответ на вопрос
0
djsmiley2k
Во-первых, если нет причин загружать его (или его deps) как модуль, я бы посмотрел на их статическое встраивание в ядро, чтобы вам не нужно было загружать их, или смотрел на используемый вами дистрибутив и то, как он загружается. модули .
Если вы думаете, что загрузили модуль правильно, но не уверены - используйте lsmod.
Если lsmod показывает cp210, значит, модуль уже загружен, и это не ваша проблема.
djsmiley2k, я новичок в yocto и манипулирую ядрами. Когда я попытался загрузить cp210, мне потребовалось сделать это как модуль, когда я нажал и по умолчанию , Я попытался lsmod по вашему предложению, и единственное, что было возвращено, выглядело как этот «Размер модуля, используемый» Это было все.
Michael 6 лет назад
0