端口说明 | Linux说明名称 | PC 设备管理器中名称 |
---|---|---|
Modem 端口 | /dev/ttyUSB4 | IOT Connect - 3G Modem |
3G 数据调试端口 | /dev/ttyUSB1 | IOT Connect - 3G Application Interface |
AT 端口 | /dev/ttyUSB0 | IOT Connect - PC UI Interface |
LTE 数据调试端口 | /dev/ttyUSB3 | IOT Connect - Application Interface |
数据调试端口 | /dev/ttyUSB2 | IOT Connect - GPS Interface |
步骤 1 在/drivers/usb/serial/option.c 中增加宏定义
#define HUAWEI_VENDOR_ID 0x12d1 #define HW_USB_DEVICE_AND_INTERFACE_INFO(vend, cl, sc, pr) \ .match_flags = USB_DEVICE_ID_MATCH_INT_INFO \ | USB_DEVICE_ID_MATCH_VENDOR, \ .idVendor = (vend), \ .bInterfaceClass = (cl), \ .bInterfaceSubClass = (sc), \ .bInterfaceProtocol = (pr)
步骤 2 在 static const struct usb_device_id option_ids[ ] id 列表中增加 USB 识别,设备 ID 如下:
{ HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0xff, 0xff) }, { HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x01) }, { HW_USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x01, 0x02) }, ...略
每种型号实际会用到其中几个 ID,不过为了支持后面的扩展产品,建议添加以下附件里的全部 id 代码《USB 设备识别 ID_option_ids.txt》。
步骤 1 修改文件 drivers/usb/serial/usb_wwan.c 增加对 bcdUSB 值的定义:
#define HW_bcdUSB 0x1506
增加对华为 vid 值的定义:
#define HUAWEI_VENDOR_ID 0x12d1
步骤 2 在 usb_wwan_write 函数内增加定义:struct usb_host_endpoint *ep;
在usb_wwan_write 函数增加对零包的判断 增加部分如图所示:
增加零包判断
if((HUAWEI_VENDOR_ID == port->serial->dev->descriptor.idVendor)&&(HW_bcdUSB != port->serial->dev->descriptor.bcdUSB)){ ep = usb_pipe_endpoint(this_urb->dev, this_urb->pipe); if(ep && (0 != this_urb->transfer_buffer_length)&&(0 == this_urb->transfer_buffer_length % ep->desc.wMaxPacketSize)){ this_urb->transfer_flags |= URB_ZERO_PACKET; } }
在内核源码下执行 make menuconfig,打开如图所示并选中配置。
内核 make menuconfig:
检查 .config 里面 USB 串口驱动相关的配
CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_OPTION=y CONFIG_USB_SERIAL_WWAN=y
ls /dev/ttyUSB* 查看是否有如下串口:
/dev/ttyUSB0
/dev/ttyUSB1
/dev/ttyUSB2
/dev/ttyUSB3
/dev/ttyUSB4
—— 一般情况下,默认 ttyUSB0 是 at 口,ttyUSB4 modem 口。
使用 microcom 命令测试:
microcom -t 5000 -s 115200 /dev/ttyUSB0
和
microcom -t 5000 -s 115200 /dev/ttyUSB4
使用minicom命令测试:
minicom -D /dev/ttyUSB0
再输入 AT,返回 ok,串口正常,否则可能有异常
至此,Linux环境搭建成功,可以进行拨号等操作。
< 回到NM28 BRA3资料大全