



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、N720/N720V5版本 1.0日期 2019-02-25有方产品资料N720/N720V5市有方并不得以市有方2019。市有方同意,任何和个人不得擅自摘抄保留所利。本文档内容的部分或全部,。是市有方所有商标。本文档中出现的其他商标,由商标所有者所有。说明本文档对应产品为 N720/N720V5 模块。本文档的使用对象为系统工程师,开发工程师及测试工程师。本设计指南为客户产品设计提供支持,客户须按照本文中的规范和参数进行产品设计和调试。如因客户操作不当造成的人身和损失,有方概不承担责任。由于产品版本升级或其它原因,本文档内容会在不预先通知的情况下进行必要的更新。除非另有约定,本文档中的所有陈
2、述、信息和建议不任何明示或暗示的担保。市有方 至以下邮箱:为客户提供全方位的技术支持,任何垂询请直接联系您的客户经理或发送邮件公司:httiN720/N720V5目录关于本文档iii范围iii读者对象iii修订. iii符号约定iii产品配置1Linux USB 驱动2USB Serial 驱动2修改驱动代码2修改内核配置4CDC ACM 驱动4修改驱动代码4修改内核配置5测试6FAQ7ttyUSB 设备没有生成7拨号不成功8iiN720/N720V5关于本文档范围本文档对应产品为 N720/N720V5 模块,主要介绍如何在 Android/Linux 系统集成有方模块驱动。Android4
3、.0 及以上系统Linux2.6.22 及以上内核版本读者对象本文档的使用对象为系统工程师,开发工程师及测试工程师。修订版本日期变更作者1.02019-02初始版本Li Ting符号约定符号含义或警告,用户必须遵从的规则,否则会造成模块或客户设备不可逆的故障损坏,甚至可能造成身体。注意,警示用户使用模块时应该特别注意的地方,如不遵从,模块或客户设备可能出现故障。说明或提示,提供模块使用的意见或建议。iiiN720/N720V51 产品配置表 1-1产品配置表产品型号VID/Driver端口对应端口功能说明usb0RNDIS 网卡端口ttyACM0口N720V50 x2949/0 x8700CD
4、C ACMttyACM1AT 指令端口ttyACM2数据业务端口ttyUSB0数据业务端口ttyUSB1GPSttyUSB2AT 指令端口N7200 x2949/0 x8247USB SerialttyUSB3口RMNET 网卡RMNET1N720/N720V52 Linux USB 驱动图 2-1 USB 驱动架构主机端设备端USB 主机控制器Device ControllerUSB 总线如图 2-1 所示,从主机侧去看,在 Linux 驱动中,处于 USB 驱动最底层的是 USB 主机控制器硬件,在其上运行的是 USB 主机控制器驱动,在主机控制器上的为 USB层,再上层为 USB 设备驱
5、动层(主机上的 U 盘、鼠标、USB 转串口等设备驱动)。与 4G 设备相关的驱动模块有 USB ACM、 Option 等,有方 N720 V5 需要配置 ACM 驱动,代码位于 cdc-acm.c 中,N720 需要配置 Option 驱动,代码位于 option.c 中。如图 2-1 右侧所示,Linux 内核中 USB 设备侧驱动程序分为 3 个层次:UCD 驱动程序、GadgetFunction API 和 Gadget Function 驱动程序。2.1 USB Serial 驱动N720 配置 USB serial 驱动,修改添加流程如下:2.1.1 修改驱动代码1.添加模块 V
6、ID/2USB 主机控制器驱动HOCI/EHCI/UHCIUDC 驱动(omap/pxa2xx)Gadget Function APIUSBGadget Driver 驱动(mass storage/serial)USB Device Driver Mass storage/CDC/HIDN720/N720V5打开内核源码文件 option.c(路径一般为 drivers/usb/serial/option.c),找到数组 option_ids,添加模块 VID、信息。代码添加如下:sic const struct usb_device_id option_ids = USB_DEVICE(0
7、 x2949, 0 x8247),/*Neoway N720*/ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) , USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) , USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) ,2.过滤端口USB 串口驱动可能被加载成网卡端口(RNDIS/RMNET/ECM 端口),使得主设备将网卡端口枚举成 ttyUSB 设备,加载 RMNET 等网卡驱动后无法正确枚举出网卡设备,导致不能拨号
8、。因此,需要在 USB 串口驱动中过滤网卡端口。由于内核版本不同,请按照对应的内核版本进行过滤端口。内核版本高于 Linux-3.8修改文件:kernel/drivers/usb/serial/option.csic const struct option_blacklist_infoit_le920_blacklist = .;= BIT(1) | BIT(5),/*begin added by Neoway*/sic const struct option_blacklist_info neoway_n720_8247_blacklist = .= BIT(4),;/*end added
9、by Neoway*/sic const struct usb_device_id option_ids = /*begin added by Neoway*/ USB_DEVICE(0 x2949,0 x8247),.driver_info = (kernel_ulong_t)&neoway_n720_8247_blacklist,/*end added by Neoway*/内核版本低于 Linux-3.8修改文件:kernel/drivers/usb/serial/option.c#define SAMSUNG_VENDOR_ID/*begin added by Neoway*/ #de
10、fine NEOWAY_VENDOR_ID #define NEOWAY_PRODUCT_8247/*end added by Neoway*/#define SAMSUNG_PRODUCT_GT_B37300 x04e80 x29490 x82470 x6889sicoption_probe(struct usb_serial *serial,const struct usb_device_id *id)/*begin added by Neoway*/if (dev_desc-idVendor = cpu_to_le16(NEOWAY_VENDOR_ID) & dev_desc-idPro
11、duct = cpu_to_le16(NEOWAY_PRODUCT_8241) &iface_desc-biface_desc-berfaceClass != 0&erfaceClass != 6)return -ENODEV;if (dev_desc-idVendor = cpu_to_le16(NEOWAY_VENDOR_ID) & dev_desc-idProduct = cpu_to_le16(NEOWAY_PRODUCT_8242) &iface_desc-berfaceClass != 0)return -ENODEV;3N720/N720V5if (dev_desc-idVend
12、or = cpu_to_le16(NEOWAY_VENDOR_ID) &dev_desc-idProduct = cpu_to_le16(NEOWAY_PRODUCT_8243) &iface_desc-berfaceClass != 0)return -ENODEV;if (dev_desc-idVendor = cpu_to_le16(NEOWAY_VENDOR_ID) &dev_desc-idProduct = cpu_to_le16(NEOWAY_PRODUCT_8247) &iface_desc-berfaceClass != 4)return -ENODEV;/*end added
13、 by Neoway*/* Store device id so we can use it during attach. */ usb_set_serial_data(serial, (void *)id);2.1.2 修改内核配置1.进入内核目录2.执行 makeconfig3.配置内核Device Drivers -* USB support -USB Serial Converter support -USB driver fSM and CDMA modems4.保存重编内核2.2 CDC ACM 驱动N720V5 配置 CDC ACM 驱动,修改添加流程如下:2.2.1 修改驱动代
14、码1.添加 VID打开内核源码文件 cdc-acm.c(路径一般为/kernel/drivers/usb/class/cdc-acm.c),找到数组acm_ids,添加模块 VID、信息,代码添加如下:sic const struct usb device id acm ids = USB_DEVICE(0 x2949, 0 x8700), /N720V52.过滤端口ACM 驱动可能被加载成网卡端口(RNDIS/RMNET/ECM 端口),使得主设备将网卡端口枚举成ttyACM 设备,加载 RMNET 等网卡驱动后无法正确枚举出网卡设备,导致不能拨号。因此,需要在 ACM 驱动中过滤网卡端口,
15、修改方式如下:在/kernel/drivers/usb/class/cdc-acm.c 文件里添加如下内容:sic void acm_tty_set_termios(struct tty_struct *tty,struct ktermios *termios_old);/*4N720/N720V5* Functions for ACM control messages.*/#if 1/*Added by Neoway*/#define true#define false10#define NEOWAY_VENDOR_ID#define NEOWAY_PRODUCT_N720V50 x2949
16、0 x8700bool detected_neoway_product(struct usb_device *dev)if (NULL = dev) return false;if (le16_to_cpu(dev-descriptor.idVendor) = NEOWAY_VENDOR_ID & le16_to_cpu(dev-descriptor.idProduct) = NEOWAY_PRODUCT_N720V5 )return true;return false;#endifsicacm_probe(struct usb_erface *f,const struct usb_devic
17、e_id *id)struct usb_cdc_union_desc *union_header = NULL;rv = -ENOMEM;#if 1/*Added by Neoway*/struct usb_erface_descriptor *desc = &f-cur_altsetting-desc;if (detected_neoway_product(usb_dev) & (desc-berfaceNumber = 0 |desc-berfaceNumber = 1) dev_err(&f-dev, Neoway quirk, skiperface 0 x%xn, desc-berfa
18、ceNumber);return -ENODEV;#endif2.2.2 修改内核配置1.进入内核目录2.执行 makeconfig3.配置内核Device Drivers - * USB support -* USB Device Class drivers * - USB Modem (CDC ACM) support (CONFIG_USB_ACM=y)4.保存重编内核5N720/N720V53 测试按照上述配置后,在/dev 目录下会生成相应的设备节点:N720rootroot: ls /dev/ttyUSB*/dev/ttyUSB0/dev/ttyUSB1/dev/ttyUSB2 /
19、dev/ttyUSB3N720V5rootroot: ls /dev/ttyACM*/dev/ttyACM0/dev/ttyACM1/dev/ttyACM2此时可以往 AT 口或者 MODEM 口发送 AT 指令rootsupport:/dev# cat /dev/ttyUSB0& 1 7178rootsupport:/dev# echo -en ATrn ttyUSB0 rootsupport:/dev# ATOK6N720/N720V54 FAQ4.1 ttyUSB 设备没有生成1.确认模块是否开机,在系统里可以输入 lsusb 可看到模块是否识别到。rootsupport:/dev# lsusbBus 002 Device 002: ID 8087:8000el Corp.Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长沙市K郡双语实验中学2025年高二化学第二学期期末经典试题含解析
- 重庆西南大学附属中学2025年数学高二下期末学业质量监测模拟试题含解析
- 云南省泸水五中2024-2025学年高二下化学期末复习检测模拟试题含解析
- 特色火锅店承包经营合同模板
- 产城融合厂房出租居间服务合同
- 车辆转让附带原厂保养及救援服务合同
- 桥梁工程-毕业设计开题报告
- 评选新时代好少年的主要事迹(27篇)
- 2024年河北省政务服务管理办公室下属事业单位真题
- 员工语言规范管理制度
- 人教版历史八年级上册知识点
- 麻醉药品和精神药品培训试题
- GB/T 799-2020地脚螺栓
- 非小细胞肺癌寡转移灶中立体定向放疗的运用,放射医学论文
- 远足拉练动员大会课件
- 出租房屋安全检查记录
- 夏季养胃知识课件
- 人教版PEP六年级英语下册单词听写(带四线格)
- 国家开放大学《财务管理#》形考任务1参考答案
- 产程中人文关怀精选课件
- 人力资源工作时间节点表
评论
0/150
提交评论