美格智能4G模块SLM750在开发应用中,USB串口是经常用到的数据通信接口,本文主要介绍4G模块SLM750在Linux系统下增加USB串口的详细操作步骤:
因为内核版本差异,Linux 2.6.30前后增加串口支持修改地方有所不同。
Linux Kernel >2.6.30
1、修改option.c 增加PID ,VID
2、屏蔽option.c 中 ndis和adb 端口
2.6.30> Linux Kernle > 2.6.21
1、修改option.c 增加PID ,VID
2、去掉option.c -> option_send_setup -> if(port->number!=0) return 0;
3、修改端口号限制option.c -> option_send_setup ->
return usb_control_msg(serial->dev,usb_rcvctrlpipe(serial->dev, 0),
0x22,0x21,val,0,NULL,0,USB_CTRL_SET_TIMEOUT);
改为return usb_control_msg(serial->dev,
usb_rcvctrlpipe(serial->dev,0), 0x22,0x21,val,serial->interface->cur_altsetting->desc.bInterfaceNumber,NULL,0,USB_CTRL_SET_TIMEOUT);
4、屏蔽 usb-serial.c 中ndis和adb端口,在usb_serial_probe 函数。
5、增加系统支持 增加系统支持 增加系统支持 增加系统支持
首先配置内核支持USB转串口,参考的配置方法如下:
执行make menuconfig
打开如下组件:
device drivers->usb support->usb serial converter support->USB driver for GSM and CDMA modems
6、增加串口的 增加串口的 增加串口的 ID
打开内核源码文件kernel/drivers/usb/serial/option.c,在option_ids中增加产品的VID和PID。
/* Vendor and product IDs */
美格模块 Linux 串口驱动加载及 Gobinet 拨号指导 第 9 页 共 24 页
//wangbo add
#define MEIG_VENDOR_ID 0x05C6
#define MEIG_PRODUCT_730 0xF601
static const struct usb_device_id option_ids[] = {
//wangbo add
// { USB_DEVICE(0x05C6, 0xF601) },
{ USB_DEVICE(MEIG_VENDOR_ID,MEIG_PRODUCT_730) },
到这里,已经完成了4G模块SLM750在Linux系统下增加USB串口的所有操作步骤了。