linux usb ttygs,usb gadget 串口(serial)的配置和使用
usb gadget 串口(serial)的配置和使用usb gadget 串口(serial)的配置和使用本篇文章主要是配置内核并使用 usb 的 gadget 的串口,即将带有usb口的linux平台,虚拟成一个串口设备。包括内核配置,加载和使用方法。最终在linux平台上会在创建出一个 /dev/ttyGS*节点。首先保证平台设备树中的相应的usb口的配置是slave模式,可以是 perip
usb gadget 串口(serial)的配置和使用
usb gadget 串口(serial)的配置和使用
本篇文章主要是配置内核并使用 usb 的 gadget 的串口,即将带有usb口的linux平台,虚拟成一个串口设备。包括内核配置,加载和使用方法。最终在linux平台上会在创建出一个 /dev/ttyGS*节点。
首先保证平台设备树中的相应的usb口的配置是slave模式,可以是 peripheral 模式,或者 otg。例子如下:
usb相关的节点中属性 dr_mode = "otg"; ,或者 dr_mode = "peripheral";
然后配置menuconfig中的相关项,我配置成的是模块加载的形势
make menuconfig
> Device Drivers > USB support > USB Gadget Support
make 时,生成的文件所在位置 drivers/usb/gadget/libcomposite.ko 和 drivers/usb/gadget/legacy/下的 u_serial.ko 和 drivers/usb/gadget/function/ 下的u_serial.ko usb_f_serial.ko usb_f_acm.ko。
在系统起来后分别按顺序加载
> insmod libcomposite.ko
> insmod u_serial.ko
> insmod usb_f_serial.ko
> insmod usb_f_acm.ko
> insmod u_serial.ko
注:如果没有acm,需要配置上
menuconfig中的 > Device Drivers > USB support >
USB Modem (CDC ACM) support
即使勾选上编译进内核了,仍然需要 usb_f_acm.ko 模块的加载。
让window识别可能还需要这个文件 linux-cdc-acm.inf ,这个文件是在内核源码的 Documentation\usb目录下,电脑识别后的现象是自动识别出了com口
波特率等的配置不影响通信,
当我们用串口助手打开并发送数据时,是自发自收,当我们在板子中向节点发送数据时,串口助手能收到
自发自收
板子向电脑发送
/dev 下自动创建了设备节点,如果需要手动创建,需要查看下设备节点主设备号
> cat /sys/class/tty/ttyGS0/dev
usb gadget 串口(serial)的配置和使用相关教程
更多推荐
所有评论(0)